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.confTambahkan 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 apache2Agar 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 -eKemudian tambahkan baris berikut di bagian bawah.
@daily certbot perbarui --quiet &&systemctl reload Apache2Memuat 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.iniTemukan baris berikut (baris 846).
upload_max_filesize =2MUbah nilainya seperti di bawah ini:
upload_max_filesize =20MKemudian cari baris berikut (baris 694).
post_max_size =8MUbah ukuran maksimum data POST yang akan diterima PHP.
post_max_size =20 jutaSimpan 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.iniKemudian restart PHP-FPM.
sudo systemctl restart php7.4-fpmCara 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.