GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal WordPress di Ubuntu 20.04 dengan Apache, MariaDB, PHP7.4 (LAMP)

Tutorial ini akan menunjukkan cara menginstal WordPress di Ubuntu 20.04 dengan Apache, MariaDB dan PHP7.4 (LAMP Stack). WordPress adalah CMS (Content Management System) paling populer di dunia. Diperkirakan lebih dari sepertiga situs web saat ini didukung oleh WordPress. PHP7.4 dibuat menjadi repositori Ubuntu 20.04 dan WordPress berjalan sempurna dengannya.

Prasyarat

Untuk mengikuti tutorial ini, Anda harus memiliki server Ubuntu 20.04 dengan setidaknya 1GB RAM. Jika Anda mencari VPS (Virtual Private Server), maka Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $50 di DigitalOcean. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis senilai $50 di Vultr (hanya untuk pengguna baru).

Anda juga memerlukan nama domain, sehingga pengunjung dapat mengetikkan nama domain di bilah alamat browser web untuk mengakses situs Anda. Saya mendaftarkan nama domain saya di NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

Tutorial ini mengasumsikan bahwa Anda telah menyiapkan tumpukan LAMP di Ubuntu 20.04. Jika belum, silakan lihat tutorial berikut.

  • Cara Memasang LAMP Stack (Apache, MariaDB, PHP7.4) di Ubuntu 20.04

Setelah menyelesaikan instalasi LAMP, kembali ke sini dan baca terus.

Langkah 1:Unduh WordPress

SSH ke server Ubuntu 20.04 Anda dan perbarui perangkat lunak yang ada.

sudo apt update &&sudo apt upgrade

Selanjutnya, buka halaman unduh wordpress.org dan unduh arsip zip. Anda dapat memperoleh tautan unduhan langsung dengan mengeklik kanan tombol unduh dan memilih copy link location .

Kemudian pada baris perintah, ketik wget diikuti dengan tautan unduhan langsung untuk mengunduh WordPress ke server Ubuntu 20.04 Anda.

wget https://wordpress.org/latest.zip

Selanjutnya, ekstrak arsip ke /var/www/ direktori dengan unzip .

sudo apt install unzipsudo mkdir -p /var/www/sudo unzip recent.zip -d /var/www/

-d opsi menentukan direktori target. File web WordPress akan diekstrak ke /var/www/wordpress . Kita dapat mengganti nama direktori ini seperti di bawah ini, sehingga mudah bagi kita untuk mengidentifikasi setiap direktori. Ganti example.com dengan nama domain asli Anda.

sudo mv /var/www/wordpress /var/www/example.com

Langkah 2:Buat Database dan Pengguna untuk Situs WordPress

Masuk ke shell MariaDB sebagai root dengan perintah berikut.

sudo mariadb -u root

atau

sudo mysql -u root

Setelah Anda masuk, buat database untuk WordPress menggunakan perintah berikut. Saya menamakannya wordpress , tetapi Anda dapat menggunakan nama apa pun yang Anda suka seperti nama situs Anda. (Jangan tinggalkan titik koma.)

membuat database wordpress;

Kemudian masukkan perintah di bawah ini untuk membuat pengguna database untuk WordPress. Perintah ini juga memberikan semua hak istimewa database WordPress kepada pengguna. Ganti wpuser dan your-password dengan nama pengguna dan kata sandi pilihan Anda.

berikan semua hak istimewa di wordpress.* ke wpuser@localhost yang diidentifikasi dengan 'kata sandi Anda';

Bersihkan tabel hak istimewa agar perubahan diterapkan, lalu keluar dari shell MariaDB.

hak flush;keluar;

Langkah 3:Konfigurasi WordPress

Buka direktori WordPress Anda.

cd /var/www/example.com/

Salin contoh file konfigurasi dan ganti namanya menjadi wp-config.php .

sudo cp wp-config-sample.php wp-config.php

Sekarang edit file konfigurasi baru dengan editor teks baris perintah seperti Nano.

sudo nano wp-config.php

Temukan baris berikut dan ganti teks merah dengan nama database, nama pengguna, dan kata sandi yang Anda buat pada langkah sebelumnya.

/** Nama database untuk WordPress */define('DB_NAME', 'database_name_here');/** Nama pengguna database MySQL */define('DB_USER', 'username_here');/** Database MySQL kata sandi */define('DB_PASSWORD', 'password_here');

Simpan dan tutup file. Untuk menyimpan file di editor teks Nano, tekan Ctrl+O , lalu tekan Enter untuk mengkonfirmasi. Selanjutnya, tekan Ctrl+X untuk keluar.

Kita juga perlu mengatur pengguna Apache (www-data ) sebagai pemilik direktori situs WordPress menggunakan perintah berikut.

sudo chown www-data:www-data /var/www/example.com/ -R

Langkah 4:Buat file Apache Virtual Host untuk WordPress

Jalankan perintah berikut untuk membuat file host virtual untuk situs WordPress Anda di /etc/apache2/sites-available/ direktori.

sudo nano /etc/apache2/sites-available/example.com.conf

Masukkan teks berikut ke dalam file. Ganti teks merah dengan nama domain Anda sendiri. Jangan lupa untuk membuat catatan A untuk nama domain Anda di pengelola DNS Anda.

 ServerName www.example.com ServerAlias ​​example.com DocumentRoot /var/www/example.com #Ini mengaktifkan file .htaccess, yang diperlukan agar Permalink WordPress berfungsi.  AllowOverride All  ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log digabungkan 

Simpan dan tutup file. Kemudian uji konfigurasi.

sudo apache2ctl configtest

Jika Anda melihat “Sintaks OK”, maka aktifkan host virtual ini.

sudo a2ensite example.com.conf

Dan muat ulang Apache agar perubahan diterapkan.

sudo systemctl reload apache2

Tetapkan catatan A yang benar untuk nama domain Anda, lalu masukkan nama domain Anda di bilah alamat browser.

contoh.com

atau

example.com/wp-admin/install.php

Anda akan melihat wizard instalasi WordPress. Pilih bahasa.

Jika wizard penginstalan tidak ditampilkan, Anda mungkin perlu menginstal beberapa ekstensi PHP7.

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4- curl php7.4-zip

Kemudian muat ulang Apache dan wizard sekarang akan ditampilkan.

sudo systemctl reload apache2

Sebelum memasukkan informasi sensitif Anda di wizard penyiapan, sebaiknya aktifkan HTTPS untuk mencegah pembajakan lalu lintas.

Langkah 5:Mengaktifkan HTTPS

Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 20.04.

sudo apt install certbot python3-certbot-apache

Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

Dimana

  • --apache :Gunakan plugin Apache.
  • --agree-tos :Menyetujui persyaratan layanan.
  • --redirect :Memaksa HTTPS dengan pengalihan 301.
  • --hsts :Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.
  • --uir :Tambahkan header “Content-Security-Policy:upgrade-insecure-requests” ke setiap respons HTTP.
  • --staple-ocsp :Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
  • --email :Email yang digunakan untuk pendaftaran dan kontak pemulihan.
  • -d flag diikuti oleh daftar nama domain, dipisahkan dengan koma. Anda dapat menambahkan hingga 100 nama domain.

Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.

Sekarang jika Anda memuat ulang wizard penyiapan WordPress, Anda dapat melihat bahwa HTTP secara otomatis dialihkan ke koneksi HTTPS.

Langkah 6:Selesaikan Instalasi dengan Setup Wizard

Buat akun admin dan klik tombol Instal WordPress tombol.

Dan sekarang situs WordPress baru Anda telah terpasang.

Mengalihkan WWW ke Non-WWW (Atau Sebaliknya)

Kami telah mengaktifkan pengalihan HTTP ke HTTPS, yang tersisa untuk dilakukan adalah mengarahkan ulang www ke non-www, atau sebaliknya. Jika Anda menggunakan WordPress, maka itu sangat mudah. Cukup buka Dasbor WordPress> Setelan> Umum dan atur versi pilihan Anda (www atau non-www) di Alamat WordPress dan Alamat Situs . Pastikan untuk menyertakan https:// awalan.

Memperbaiki Pengalihan 301 Ganda

Kami menyetel versi domain pilihan di Alamat WordPress dan Alamat Situs bidang. Namun, ada masalah pengalihan 301 ganda. Pertama, server Apache mengalihkan HTTP ke HTTPS, lalu WordPress mengalihkan ke domain www atau non-www.

Beberapa orang mungkin berpendapat bahwa Anda dapat kehilangan jus tautan SEO saat melakukan pengalihan 301 ganda. Jika Anda khawatir tentang itu, maka Anda dapat menggunakan metode di bawah ini untuk membuat semua versi domain langsung menuju tujuan akhir, sehingga akan ada pengalihan 301 tunggal.

Edit file host virtual Anda. (Bukan host virtual SSL)

sudo nano /etc/apache2/sites-enabled/example.com.conf

Klien CertBot menambahkan baris berikut ke file untuk mengarahkan HTTP ke HTTPS.

RewriteEngine onRewriteCond %{SERVER_NAME} =example.com [OR]RewriteCond %{SERVER_NAME} =www.example.comRewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 

Untuk mengarahkan ulang ke domain www atau non-www, Anda perlu mengubah baris terakhir. Ganti %{SERVER_NAME} dengan versi domain pilihan Anda seperti di bawah ini. (domain www)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Jika Anda lebih suka domain non-www, ubah ke berikut ini.

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Kemudian simpan dan tutup file. Kami juga perlu mengedit host virtual SSL.

sudo nano /etc/Apache2/sites-enabled/example.com-le-ssl.conf

Tambahkan baris berikut di atas tag penutup untuk mengalihkan non-www ke domain www.

RewriteEngine onRewriteCond %{SERVER_NAME} =example.comRewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Jika Anda ingin mengalihkan www ke domain non-www, tambahkan baris berikut sebagai gantinya.

RewriteEngine onRewriteCond %{SERVER_NAME} =www.example.comRewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Simpan dan tutup file. Muat ulang layanan Apache agar perubahan diterapkan.

sudo systemctl reload apache2

Agar lebih jelas, di bawah ini adalah screenshot dari file virtual host Apache saya dan file host virtual SSL untuk mengarahkan non-www ke domain www.

File Host Virtual Apache

File Host Virtual SSL Apache

Pastikan Anda menyetel versi domain pilihan Anda di Alamat WordPress dan Alamat Situs sebelum mengedit file host virtual Apache. Jika pengaturan WordPress bertentangan dengan konfigurasi Apache, situs Anda akan berakhir di redirect loop.

Perpanjangan Otomatis Sertifikat TLS

Untuk memperbarui sertifikat Let's Encrypt secara otomatis, cukup edit file crontab pengguna root.

sudo crontab -e

Kemudian tambahkan baris berikut di bagian bawah.

@daily certbot perbarui --quiet &&systemctl reload Apache2

Memuat ulang Apache diperlukan untuk menampilkan sertifikat baru kepada klien.

Meningkatkan Batas Ukuran File Unggah

Jika Anda menggunakan modul Apache PHP untuk menjalankan skrip PHP, maka tidak ada batasan ukuran file unggahan. Jika Anda menggunakan PHP-FPM untuk menjalankan skrip PHP, ubah batas ukuran file sehingga Anda dapat mengunggah file besar ke perpustakaan media WordPress. Ukuran file maksimum default untuk mengunggah di PHP-FPM adalah 2MB. Untuk meningkatkan batas ukuran upload, edit file konfigurasi PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Temukan baris berikut (baris 846).

upload_max_filesize =2M

Ubah nilainya seperti di bawah ini:

upload_max_filesize =20M

Kemudian cari baris berikut (baris 694).

post_max_size =8M

Ubah ukuran maksimum data POST yang akan diterima PHP.

post_max_size =20 juta

Simpan dan tutup file. Atau, Anda dapat menjalankan dua perintah berikut untuk mengubah nilai tanpa membuka file secara manual.

sudo sed -i 's/upload_max_filesize =2M/upload_max_filesize =20M/g' /etc/php/7.4/fpm/php.inisudo sed -i 's/post_max_size =8M/post_max_size =20M/g' /etc /php/7.4/fpm/php.ini

Kemudian restart PHP-FPM.

sudo systemctl restart php7.4-fpm

Cara Mengirim Email di WordPress

Situs WordPress Anda perlu mengirim email seperti email pendaftaran akun, email pengaturan ulang kata sandi, email pemberitahuan komentar, dll. Daripada menggunakan solusi pihak ketiga yang mahal seperti Gsuite untuk membuat alamat email profesional untuk situs web Anda, Anda dapat mengikuti tutorial iRedMail ini untuk mengatur siapkan server email Anda sendiri dengan nama domain Anda sendiri, sehingga Anda dapat memiliki kotak surat tak terbatas dan mengirim email tak terbatas tanpa menghabiskan banyak uang.

Perhatikan bahwa ini adalah praktik yang baik untuk menginstal server email dan WordPress di dua server pribadi virtual yang berbeda karena Anda tidak ingin server email memperlambat kecepatan situs WordPress Anda, dan server email akan membocorkan alamat IP situs WordPress Anda jika mereka berada di server pribadi virtual yang sama, yang berarti peretas dapat melewati CDN (Content Delivery Network) apa pun yang Anda gunakan dan meluncurkan serangan DDoS langsung di server asal Anda.

Setelah server email Anda aktif dan berjalan, Anda dapat menginstal plugin SMTP di WordPress, sehingga dapat terhubung ke server email Anda dan mengirim email. Buka dasbor WordPress Anda -> Plugin , klik Tambah Baru untuk memasang plugin baru.

Kemudian ketik WP Mail SMTP di kotak pencarian. Instal dan aktifkan WP Mail SMTP oleh WPForms pengaya.

Muat ulang halaman web dashboard WordPress, Anda akan melihat WP Mail SMTP di bilah menu kiri. Klik dan pilih Setelan .

Kemudian gulir ke bawah ke bagian Mailer. Secara default, mailer PHP dipilih. Kita perlu mengubahnya ke SMTP Lainnya .

Gulir ke bawah dan Anda harus memasukkan pengaturan SMTP.

  • Masukkan nama host server email Anda.
  • Pilih TLS sebagai Enkripsi.
  • Gunakan port 587.
  • Aktifkan Otentikasi.
  • Masukkan alamat email domain Anda dan sandinya.

Setelah menyimpan pengaturan, Anda dapat menguji pengiriman email dengan keluar dari dasbor WordPress, dan klik kehilangan kata sandi Anda tautan untuk mengirim email penyetelan ulang sandi.


Ubuntu
  1. Cara Menginstal WordPress dengan Apache di Ubuntu 18.04

  2. Cara Menginstal Joomla dengan Apache di Ubuntu 18.04

  3. Cara Menginstal Banyak WordPress dengan Nginx di Ubuntu 18.04

  1. Instal WordPress dengan LAMP Stack di Ubuntu 20.04

  2. Cara Instal phpBB dengan Apache di Ubuntu 20.04

  3. Instal LAMP Stack (Apache, MariaDB, PHP) di Ubuntu 22.04

  1. Instal WordPress di Ubuntu 16.04 / Ubuntu 14.04 dengan LAMP

  2. Cara Menginstal WordPress 5.x Dengan Nginx Di Ubuntu 18.04 / Ubuntu 16.04

  3. Cara Menginstal NextCloud di Ubuntu 20.04 dengan Apache