GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal WordPress di Ubuntu 18.04 dengan Nginx, MariaDB, PHP7.2 (LEMP)

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

Prasyarat

Untuk mengikuti tutorial ini, Anda harus memiliki server Ubuntu 18.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 18.04. Jika belum, silakan lihat tutorial berikut.

  • Cara Memasang LEMP Stack (Nginx, MariaDB, PHP7.2) di Ubuntu 18.04

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

Langkah 1:Unduh WordPress

SSH ke server Ubuntu 18.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 18.04 Anda.

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

Selanjutnya, ekstrak arsip zip menggunakan perintah di bawah ini.

sudo apt install unzip

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 mengganti namanya seperti di bawah ini. 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');

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.

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-sitemap.*\.xml {
     try_files $uri $uri/ /index.php$is_args$args;
  }

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

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.2-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.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-cli php7.2-curl php7.2-zip

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

sudo systemctl reload php7.2-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 18.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.

Mencegah Permintaan Berbahaya

Setelah WordPress terinstal, tidak perlu mengakses /wp-admin/setup-config.php dan /wp-admin/install.php URL lagi. Namun, pelaku jahat dapat mengakses kedua URL ini dan jika ditemukan kerentanan, pelaku jahat dapat masuk ke bagian belakang WordPress Anda. Untuk mencegah akses ke dua URL ini, tambahkan baris berikut di blok server Nginx. Tambahkan sebelum location ~ \.php$ { baris.

location ~* ^/wp-admin/(setup-config|install)\.php$ {
       deny all;
}

Jika Anda tidak ingin orang lain mendaftarkan akun di situs WordPress Anda, Anda dapat menambahkan baris berikut untuk membatasi akses ke /wp-login.php URL, jadi hanya alamat IP Anda yang dapat mengakses URL ini. Ganti 78.56.34.12 dengan alamat IP Anda sendiri.

location = /wp-login.php {
    try_files $uri $uri/ /index.php?$args;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    include snippets/fastcgi-php.conf; 
 
    allow 78.56.34.12;
    deny all;
}

Jangan lupa untuk memuat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Jika Anda tidak memiliki alamat IP statis di jaringan rumah, Anda dapat menyiapkan server VPN di pusat data.

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.

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 18.04 dengan Nginx, MariaDB dan PHP7.2 (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. Cara Menginstal SuiteCRM dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal WordPress dengan LEMP di Ubuntu 20.04

  1. Cara Menginstal Magento dengan Nginx di Ubuntu 16.04

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

  3. Instal Beberapa Instance Drupal dengan Nginx di Ubuntu 20.04

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

  2. Cara Menginstal Banyak WordPress dengan Nginx di Ubuntu 18.04

  3. Instal WordPress dengan LAMP Stack di Ubuntu 20.04