GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal WordPress di Ubuntu 20.04 dengan Nginx, MariaDB, PHP7.4 (LEMP)

Tutorial ini akan menunjukkan cara menginstal WordPress di Ubuntu 20.04 dengan Nginx, MariaDB dan PHP7.4 (LEMP 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 LEMP di Ubuntu 20.04. Jika belum, silakan lihat tutorial berikut.

  • Cara Memasang LEMP Stack (Nginx, MariaDB, PHP7.4) di Ubuntu 20.04

Setelah menyelesaikan instalasi LEMP, 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 prompt 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 zip menggunakan perintah di bawah ini.

sudo apt install unzip

sudo mkdir -p /usr/share/nginx

sudo unzip latest.zip -d /usr/share/nginx/

Arsip akan diekstrak ke /usr/share/nginx/ direktori. Direktori baru bernama wordpress akan dibuat (/usr/share/nginx/wordpress). Sekarang kita bisa rename seperti di bawah ini, sehingga memudahkan kita untuk mengidentifikasi setiap direktori. Ganti example.com dengan nama domain asli Anda.

sudo mv /usr/share/nginx/wordpress /usr/share/nginx/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.)

create 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.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

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

flush privileges;

exit;

Langkah 3:Konfigurasi WordPress

Buka direktori WordPress Anda.

cd /usr/share/nginx/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.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

Kemudian gulir ke bawah untuk menemukan baris berikut.

$table_prefix = 'wp_';

Secara default, setiap nama tabel database WordPress dimulai dengan wp_ sebagai awalan. Sangat disarankan untuk mengubahnya menjadi sesuatu yang lain untuk meningkatkan keamanan. Gunakan karakter acak seperti di bawah ini.

$table_prefix = '9OzB3g_';

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 Nginx (www-data ) sebagai pemilik direktori situs WordPress dengan menggunakan perintah berikut.

sudo chown www-data:www-data /usr/share/nginx/example.com/ -R

Langkah 4:Buat Blok Server Nginx untuk WordPress

Kami akan membuat file blok server di /etc/nginx/conf.d/ direktori. Nama file harus diakhiri dengan .conf .

sudo nano /etc/nginx/conf.d/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.

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /usr/share/nginx/example.com/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

   location ~ ^/wp-json/ {
     rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
   }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  client_max_body_size 20M;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  #enable gzip compression
  gzip on;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_comp_level 5;
  gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
  gzip_proxied any;

  # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika tes berhasil, muat ulang Nginx.

sudo systemctl reload nginx

Masukkan nama domain Anda di bilah alamat browser.

example.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 php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip

Kemudian muat ulang PHP-FPM dan Nginx. Wizard sekarang akan ditampilkan.

sudo systemctl reload php7.4-fpm nginx

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-nginx

Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.

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

Dimana

  • --nginx :Gunakan plugin Nginx.
  • --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 terhadap SSL/TLS Stripping.
  • --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.

Cara Mengarahkan 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. Ini 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.

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.

Meningkatkan Batas Ukuran File Unggah

Secara default, file seperti gambar, file PDF yang diunggah ke perpustakaan media WordPress tidak boleh lebih besar dari 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 = 20M

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.ini

sudo 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

Nginx juga menetapkan batas ukuran file unggahan. Batas ukuran file unggahan maksimum default yang ditetapkan oleh Nginx adalah 1MB. Untuk mengizinkan pengunggahan file besar ke situs WordPress Anda, edit file konfigurasi Nginx.

sudo nano /etc/nginx/conf.d/example.com.conf

Kami telah menetapkan ukuran file maksimum dalam file ini, seperti yang ditunjukkan oleh

client_max_body_size 2M;

Anda dapat mengubahnya jika mau, seperti 20 juta.

client_max_body_size 20M;

Simpan dan tutup file. Kemudian muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Langkah Selanjutnya

  • Anda mungkin juga ingin menggunakan alat baris perintah WP-CLI untuk mengelola situs WordPress Anda.
  • Anda dapat menggunakan WPScan untuk memindai kerentanan situs WordPress Anda.
  • Untuk memantau kinerja back-end situs WordPress Anda, Anda dapat menggunakan Nginx Amplify.

Saya harap tutorial ini membantu Anda menginstal WordPress di Ubuntu 20.04 dengan Nginx, MariaDB dan PHP7.4 (LEMP stack). Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Ubuntu
  1. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  2. Instal WordPress dengan Memcached dan Nginx di Ubuntu

  3. Cara Menginstal WordPress dengan LEMP di Ubuntu 20.04

  1. Cara Menginstal SuiteCRM dengan Nginx di Ubuntu 16.04

  2. Cara menginstal Wordpress dengan Nginx, MariaDB dan HHVM di Ubuntu 16.04 LTS

  3. Cara Menginstal OroCRM dengan Nginx di Ubuntu 16.04 LTS

  1. Instal Beberapa Instance Drupal dengan Nginx di Ubuntu 20.04

  2. Cara Menginstal Wordpress dengan Nginx, MariaDB dan HHVM di Ubuntu 15.04

  3. Cara Menginstal Banyak WordPress dengan Nginx di Ubuntu 18.04