GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Banyak WordPress dengan Nginx di Ubuntu 18.04

Bayangkan, jika Anda hanya memiliki satu server tetapi 2 atau lebih situs WordPress, Anda pikir Anda membutuhkan lebih banyak server untuk menjalankan setiap situs wordpress di dalamnya. Tidak apa-apa, tapi bagaimana jika Anda tidak memiliki banyak biaya untuk memelihara banyak server.

Artikel ini akan menunjukkan cara menjalankan beberapa situs WordPress di satu server host, menggunakan Nginx + Mariadb + php-fpm di Ubuntu 18.04 LTS.

Prasyarat

1) Nginx untuk server web

2) Mariadb untuk database mysql

3) php-fpm untuk Manajer Proses php FastCGI

Perintah di bawah ini akan memperbarui sistem Anda dan menambahkan repositori baru untuk paket php

# apt-get update
# apt-get install software-properties-common 
# add-apt-repository ppa:ondrej/php

Instal Nginx, Mariadb dan php-fpm

Kami akan menginstal Webserver Nginx, server mysql Mariadb dan php7-fpm serta ekstensi php7 yang diperlukan untuk menjalankan situs WordPress

# apt-get install nginx mariadb-server mariadb-client \ 
php7.0-fpm php7.0-common php7.0-mbstring php7.0-xmlrpc \
php7.0-soap php7.0-gd php7.0-xml php7.0-intl php7.0-mysql \
php7.0-cli php7.0-mcrypt php7.0-ldap php7.0-zip php7.0-curl -y

Konfigurasi server Mariadb

Untuk menyegarkan instalasi server database, kita memerlukan konfigurasi untuk kata sandi root mysql dan opsi lainnya

Perintah ini berjalan dalam mode wizard, cukup jawab pertanyaan dan terapkan dengan 'Enter'

# mysql_secure_installation

...

Enter current password for root (enter for none): #< Enter
...

Change the root password? [Y/n] y #< type 'y' then Enter
New password: #< Type mysql root password
Re-enter new password: #< Retype mysql root password
Password updated successfully!
Reloading privilege tables..
... Success!

...

Remove anonymous users? [Y/n] y #< type 'y' then Enter
... Success!

...

Disallow root login remotely? [Y/n] y #< type 'y' then Enter
... Success!

...

Remove test database and access to it? [Y/n] y #< type 'y' then Enter
...

Reload privilege tables now? [Y/n] y #< type 'y' then Enter
...

Thanks for using MariaDB!

Periksa layanan Mariadb dan aktifkan layanan saat boot

Untuk memastikan mariadb-server berjalan dan konfirmasi semua pengaturan yang Anda lakukan di langkah sebelumnya.

Jika tidak ada error, Mariadb-server siap melayani layanan database

# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-07-16 03:11:48 UTC; 4h 19min ago
Main PID: 10781 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2322)
CGroup: /system.slice/mariadb.service
└─10781 /usr/sbin/mysqld

Ganti 'password' dengan password yang Anda masukkan pada langkah sebelumnya

# mysql -uroot -p'password'

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.1.29-MariaDB-6 Ubuntu 18.04

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Terlihat bagus, sekarang aktifkan layanan mysql saat boot

# systemctl enable mariadb

Konfigurasi php-fpm

Nginx tidak mendukung untuk menjalankan php seperti mod_php di Apache.

Jadi kita perlu menginstal (kami melakukannya) dan mengkonfigurasi daemon php-fpm yang mendukung menjalankan kode sumber php

Edit file /etc/php/7.0/fpm/php.ini dengan beberapa parameter seperti dibawah ini

# vim /etc/php/7.0/fpm/php.ini

upload_max_filesize = 100M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Asia/Ho_Chi_Minh

Periksa file konfigurasi pool php-fpm /etc/php/7.0/fpm/pool.d/www.conf

Pastikan konfigurasi ini sudah ada, biarkan default opsi lain jika Anda tidak pandai sama sekali:

user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data

Sekarang restart saja daemon php-fpm dan periksa statusnya, lalu aktifkan layanan saat boot

# systemctl restart php7.0-fpm
# systemctl status php7.0-fpm
# systemctl enable php7.0-fpm

Buat beberapa situs wordpress

Contoh, kami memiliki 3 situs wordpress, nama:

- situs1.contoh.com
- situs2.contoh.com
- site3.example.com

Buat basis data

Kami akan membuat db untuk site1, site2, site3 dan memberikan pengguna db untuk database tersebut

site1.example.com akan menjalankan nama database 'site1' dengan pengguna database 'site1'@'localhost'

mysql -u root -p'password' -e "CREATE DATABASE site1;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site1.* TO 'site1'@'localhost' IDENTIFIED BY 'site1password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"

Lakukan tindakan yang sama untuk database site1, site2, ganti 'site1' dengan site2, site3. Ganti kata sandi pengguna db jika Anda mau

mysql -u root -p'password' -e "CREATE DATABASE site2;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site2.* TO 'site2'@'localhost' IDENTIFIED BY 'site2password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"
mysql -u root -p'password' -e "CREATE DATABASE site3;"
mysql -u root -p'password' -e "GRANT ALL PRIVILEGES ON site3.* TO 'site3'@'localhost' IDENTIFIED BY 'site3password';"
mysql -u root -p'password' -e "FLUSH PRIVILEGES;"

Buat file konfigurasi nginx untuk setiap situs

Setiap kali Anda ingin menambahkan situs baru, cukup tambahkan blok server baru untuk situs tersebut

# cat > /etc/nginx/sites-available/site1.conf <<EOF
server {
listen 80;
root /var/www/site1;
index index.php index.html index.htm;
server_name site1.example.com www.site1.example.com;

client_max_body_size 100M;

location / {
try_files \$uri \$uri/ /index.php?\$args; 
}

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

Lakukan tindakan yang sama untuk site2 dan situs3

Kemudian kita akan memiliki 3 file konfigurasi baru di /etc/nginx/sites-available/. Anda dapat memeriksa untuk memverifikasi ruang konfigurasi cat perintah

#cat  /etc/nginx/sites-available/site2.conf
server {
listen 80;
root /var/www/site2;
index index.php index.html index.htm;
server_name site2.linoxide.com www.site2.linoxide.com;

client_max_body_size 100M;

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

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

Buat root Dokumen untuk setiap situs

CATATAN :Jalur root dokumen harus sama dalam konfigurasi Nginx (parameter 'root' di blok{} server) dan pemilik adalah www-data

Jika Anda ingin mengubah direktori root dokumen, cukup ubah opsi 'root' di konfigurasi nginx dan buat jalur yang sama.

# mkdir -p /var/www/site{1,2,3}
# chown -R www-data:www-data /var/www/site*

Aktifkan konfigurasi nginx untuk setiap situs dan periksa konfigurasi

Karena secara default Nginx hanya membaca konfigurasi di /etc/nginx/sites-enabled/

Jadi jika Anda ingin Nginx membaca konfigurasi di /etc/nginx/sites-available/

Cukup buat symlink, seperti ini:

# ln -s /etc/nginx/sites-enabled/site1.conf /etc/nginx/sites-available/site1.conf
# ln -s /etc/nginx/sites-enabled/site2.conf /etc/nginx/sites-available/site2.conf
# ln -s /etc/nginx/sites-enabled/site3.conf /etc/nginx/sites-available/site3.conf

Kemudian verifikasi konfigurasi Nginx dengan menjalankan perintah ini:

# nginx -t -c /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Lihat konfigurasi yang bagus, muat ulang daemon Nginx

# nginx -s reload -c /etc/nginx/nginx.conf

atau

# systemctl reload nginx

Unduh sumber dan tempat wordpress ke /var/www/site*

CATATAN:Jika Anda sudah memiliki sumber wordpress, letakkan saja di jalur root Dokumen ikuti konfigurasi nginx.

# cd /tmp
# wget http://wordpress.org/latest.tar.gz
# tar -xzvf latest.tar.gz
# cp -r wordpress/* /var/www/site1/
# cp -r wordpress/* /var/www/site2/
# cp -r wordpress/* /var/www/site3/
# chown -R www-data:www-data /var/www/site*

Awal untuk instalasi wordpress baru

Akses setiap situs yang Anda inginkan untuk memulai WordPress dengan menggunakan browser. Setelah memilih bahasa Anda, klik 'Lanjutkan ' tombol

Kemudian isikan nama database, user database, password database untuk menjalankan konfigurasi untuk setiap situs, seperti di bawah ini

Kemudian kirimkan konfigurasi Anda dan 'jalankan instalasi' dengan mengklik 'Jalankan instalasi '.

Baca juga:

  • Cara Menginstal Baris Perintah WordPress menggunakan WP-CLI
  • Cara Menginstal LEMP di Ubuntu 18.04

Sekarang, dengan Nginx, Mysql dan php-fpm, Anda dapat menjalankan banyak situs WordPress dalam satu server. Tidak hanya WordPress tetapi Anda juga dapat melakukan langkah yang sama untuk sumber cms lainnya.

Artikel selanjutnya, kami akan menjelaskan dan memandu cara mengoptimalkan nginx, konfigurasi php-fpm untuk server web yang menjalankan Nginx dan php-fpm


Ubuntu
  1. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal WordPress Menggunakan Nginx di Ubuntu 18.04

  3. Cara Menginstal Nextcloud dengan Nginx di Ubuntu 18.04 LTS

  1. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal SuiteCRM dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  1. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10

  2. Cara Instal Redmine 3 dengan Nginx di Ubuntu 15.10

  3. Cara Menginstal Piwik dengan Nginx di Ubuntu 15.10