13 Dec 2019

Instalasi wordpress multisite subdomain menggunakan nginx, php-fpm di centos 7

Halo kamu yang sedang membaca artikel ini. Jadi artikel kali ini gue akan membahas bagaimana cara instalasi wordpress multisite pada sistem operasi centos 7 dengan web server nginx dan php versi 73.

Contoh kasusnya adalah saya akan membuat domain wordpress multisite dengan nama :

wpsaml.telkomuniversity.ac.id

Sebelum instalasi baiknya kita allow dahulu service http dan https pada firewalld dengan cara seperti di bawah ini:

firewall-cmd --zone=public --add-service={http,https} --permanent
firewall-cmd --reload

Kemudian instalasi kebutuhan paket seperti wget, nginx, php, dan mariadb.

yum -y install wget nginx mariadb mariadb-server php73 php73-php php73-php-cli php73-php-mbstring ph p73-php-mcrypt php73-php-cli php73-php-mysql php73-php-pdo php73-php-xml php73-php-common php73-php-fpm php73-php-devel -y

jangan lupa pula untuk me non-aktifkan SElinux. dengan cara

setenforce 0
sed -i "/^SELINUX/s/enforcing/disabled/g" /etc/sysconfig/selinux

Jalankan service nginx, mariadb, dan php-fpm

systemctl enable --now {nginx,mariadb,php73-php-fpm}

Selanjutnya kita membuat database untuk wordpress multisite. Tahapannya adalah masuk ke database mariadb, buat database, dan buat hak akses user untuk mengakses database. Contohnya seperti di bawah ini:

[root@dalton ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

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

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

MariaDB [(none)]> create database hanang_wpmu;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on hanang_wpmu.* to 'wpuser'@'localhost' identified by 'Tentang Kamu';

MariaDB [(none)]> flush privileges

MariaDB [(none)]> exit

Selanjutnya adalah mendownload wordpress versi terbaru dan melakukan instalasi. 

cd /var/www/html/
wget https://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz
cp wordpress/wp-config-sample.php wordpress/wp-config.php

Selanjutanya adalah konfigurasi file wp-config.php. edit beberapa baris yang ada file tersebut seperti di bawah ini:

vi wordpress/wp-config.php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'hanang_wpmu' );

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

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

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

jika sudah selesai simpan dan keluar dari file wp-config.php. selanjutanya ubah hak kepemilikan folder wordpress beserta isinya.

chown nginx:nginx wordpress -R

Selanjutanya buat file pada nginx dengan nama seperti di bawah ini:

vi /etc/nginx/conf.d/wpmu.conf

Kemudian isi seperti di bawah ini:

server {
listen 80;
server_name wpsaml.telkomuniversity.ac.id;
root /var/www/html/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html/wordpress;
}
location ~ .php$ {
root /var/www/html/wordpress;
fastcgi_pass unix:/opt/remi/php73/root/run/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Lakukan pengecekan konfigurasi nginx dengan cara mengetik pada terminal konsol nginx -t

nginx -t

Jika hasilnya seperti di bawah ini maka konfigurasi baik dan benar.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Selanjutanya edit file php.ini untuk mengaktifkan dan merubah cgi.fix_pathinfo menjadi 0 dengan cara seperti di bawah ini

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/opt/remi/php73/php.ini

Selajutnya merubah beberapa file pada www.conf yang berada pada php-fpm. baris yang dirubah adalah

  • user menjadi nginx
  • grop menjadi nginx
  • listen menjadi /opt/remi/php73/root/run/www.sock
  • listen.owner menjadi nginx
  • listen.group menjadi nginx

Rubah dengan cara seperti berikut

sed -i "/^user/s/apache/nginx/g" /etc/opt/remi/php73/php-fpm.d/www.conf
sed -i "/^nginx/s/apache/nginx/g" /etc/opt/remi/php73/php-fpm.d/www.conf
sed -i "/^listen/s/127\.0\.0\.1\:9000/\/var\/run\/www\.sock/g" /etc/opt/remi/php73/php-fpm.d/www.conf
sed -i "/^;listen.owner/s/;listen.owner\ =\ nobody/listen.owner\ =\ nginx/g" /etc/opt/remi/php73/php-fpm.d/www.conf
sed -i "/^;listen.group/s/;listen.group\ =\ nobody/listen.group\ =\ nginx/g" /etc/opt/remi/php73/php-fpm.d/www.conf

Selanjutanya lakukan restart pada service nginx dan php-fpm

systemctl restart {nginx,php73-php-fpm}

Setelah berhasi di restart buka browser akan muncul halaman seperti di bawah ini : 

Biarkan tetap English (United States) kemudian klik tombol continue. Akan tampil halaman seperti di bawah ini:

Isi semua kolom kemudian klik tombol Install WordPress. Halaman berikutnya akan tampil seperti di bawah ini :

Klik Log In Jika ingn masuk kedalam dashboard wordpress. Instalasi wordpress telah selesai. Selanjutnya adalah konfigurasi wordpress agar menjadi multisite website.

Langkah pertama yaitu dengan menambahkan script define( ‘WP_ALLOW_MULTISITE’, true ); sebelum kalimat /* That’s all, stop editing! Happy blogging. */. pada file wp-config.php

vi wordpress/wp-config.php
/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

Ingat tambahkan sebelum

/* That’s all, stop editing! Happy blogging. */

Kemudian simpan dan keluar.

Jika sudah login kedalam dashboard wordpress, maka log-out terlebih dahulu kemudian log-in. pada halaman sebelah kiri, pilih menu Tools kemudian network setup.

pilih opsi Sub-domains kemudian klik tombol install

Setelah itu buka file wp-config.php kembali dan tambahkan beberapa script di bawah ini sebelum baris “That’s all, stop editing! Happy blogging”

define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'wpsaml.telkomuniversity.ac.id'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);

Setelah selesai keluar kembali dari dashboard wordpress dan masuk kembali. Lihat pada kanan atas ada menu My Sites. Klik menu tersebut jika ada menu Network Admin maka instalasi berhasil.

Catatan : jika wordpress multisite menggunakan subdomains maka pada dns server kamu. harus di tambahkan seperti di bawah ini :

*.wpsaml.telkomuniversity.ac.id. IN CNAME wpsaml.telkomuniversity.ac.id.

Instalasi dan konfigurasi telah selesai. Seharusnya wordpress multisite sudah dapat di gunakan.

Leave a Reply