Cara Install phpMyAdmin Dengan Nginx di CentOS 7
Update Server
Login sebagai root ke server dan update server dengan perintah berikut:
$ yum update -y
$ reboot
Install Packages
Install beberapa packages yang dibutuhkan CentOS 7.
$ yum install wget nano perl zip unzip -y
Install Firewall
Sebelum memulainya, perlu instalasi Firewall supaya lebih secure. Pada Firewall ini menggunakan CSF (ConfigServer Security & Firewall). Instalasinya dengan perintah di bawah ini:
$ cd /usr/src
$ wget https://download.configserver.com/csf.tgz
$ tar -xzf csf.tgz
$ cd csf/
$ sh install.sh
Pada konfigurasi CSF rubah “make TESTING=’1’ menjadi 0”.
$ nano /etc/csf/csf.conf
Kemudian tambahkan port 9000 pada TCP_Out dan TCP_In untuk keperluan phpMyAdmin.
Kemudian restart CSF supaya reload konfigurasi yang ter-update.
$ csf -r
Install Nginx WebServer
Karena di artikel ini tentang Nginx, maka perlu install Nginx WebServer dengan perintah di bawah ini.
$ yum install nginx -y
Cek versi nginx yang kamu gunakan:
$ nginx -v
nginx version: nginx/1.16.1
Versi yang kami install saat ini 1.16.1, mungkin akan ada perbedaan dengan yang kamu install nantinya, tergantung pada update terbaru versi nginx-nya.
Start dan enable on-boot nginx:
$ systemctl start nginx
$ systemctl enable nginx
Install PHP 7.2
Untuk PHP nya, kami menggunakan versi 7.2, install php 7.2 beserta beberapa extension yang dibutuhkan. Sebelum instal PHP 7.2, perlu enable Repo Remi terlebih dahulu.
$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
$ yum install yum-utils -y
$ yum update -y
$ yum install php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache -y
Install PHP-FPM
PHP-FPM (FastCGI Process Manager) adalah alternatif untuk implementasi FastCGI untuk bahasa pemrograman PHP. PHP-FPM juga merupakan interpreter PHP yang terpisah dari web server, sehingga setiap request atas script PHP yang masuk ke web server akan diteruskan atau di forward ke FastCGI melalui socket koneksi TCP/IP. Untuk instalasi PHP-FPM seperti perintah di bawah ini.
$ yum install php-fpm -y
Start dan enable on-boot php-fpm:
$ systemctl start php-fpm
$ systemctl enable php-fpm
Cek status php-fpm sudah aktif atau belum:
$ systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2020-11-17 16:32:52 UTC; 18min ago Main PID: 6922 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 32, slow: 0, Traffic: 0req/sec" CGroup: /system.slice/php-fpm.service ├─6922 php-fpm: master process (/etc/php-fpm.conf) ├─6924 php-fpm: pool www ├─6925 php-fpm: pool www ├─6926 php-fpm: pool www ├─6927 php-fpm: pool www └─6928 php-fpm: pool www
Restart php-fpm:
$ systemctl restart php-fpm
Install Database Server
Untuk database server, kami menggunakan MariaDB, karena MariaDB paling up-to-date dan kompatibel saat ini.
$ yum install mariadb-server mariadb -y
Start dan enable on-boot untuk MariaDB services dan kemudian lakukan secure installation
$ systemctl enable mariadb
$ systemctl start mariadb
$ mysql_secure_installation
Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! Remove anonymous users? [Y/n] y ... Success! Disallow root login remotely? [Y/n] y ... Success! Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Pada current password for root langsung enter saja, kemudian pada set root password pilih Y. Kemudian selanjutnya pilih Y semua sampai proses secure selesai.
Cek status MariaDB sudah aktif atau belum:
$ systemctl status mariadb
● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2020-11-17 17:21:53 UTC; 24s ago Process: 9625 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 9542 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 9624 (mysqld_safe)
Install phpMyAdmin
Instalasi phpMyAdmin ada 2 cara, yang pertama langsung menggunakan YUM package manager yaitu dari official CentOS atau wget packages dari website resmi phpMyAdmin. Untuk instalasi phpMyAdmin pada artikel ini, kami menggunakan cara pertama; yaitu install melalui YUM package manager.
$ yum install phpmyadmin -y
Config phpMyAdmin
Setelah selesai instalasi phpMyAdmin, maka perlu buat konfigurasi virtual host untuk phpMyAdmin pada Nginx. Karena virtual host harus dibuat secara manual, tidak otomatis.
Buat directory snippets:
$ mkdir -p /etc/nginx/snippets
Buat file phpMyAdmin.conf
$ nano /etc/nginx/snippets/phpMyAdmin.conf
Pastekan script di bawah ini ke file konfigurasi di atas.
location /phpMyAdmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpMyAdmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpmyadmin { rewrite ^/* /phpMyAdmin last; } Tambahkan include snippets/phpMyAdmin.conf pada virtual host domain kamu. $ nano /etc/nginx/conf.d/vps201.dewiweb.net server { # . . .code #phpMyAdmin include snippets/phpMyAdmin.conf; # . . . code }
Ditengah-tengah code lainnya, tambahkan include snippets/phpMyAdmin.conf.
Jika sudah save dan exit.
Cek konfigurasi yang dilakukan apakah ada syntax error atau tidak:
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload nginx:
$ systemctl reload nginx
Buat directory session untuk keperluan session phpMyAdmin:
$ mkdir -p /var/lib/php/session/
$ chown -R nginx:nginx /var/lib/php/session/
$ chmod 777 /var/lib/php/session/
Testing
Jika sudah, akses domain/phpMyAdmin maka akan terlihat halaman login seperti di bawah ini.
Username gunakan root.
Sedangkan untuk Password gunakan saat kamu melakukan secure installation Mariadb sebelumnya.
Maka hasilnya akan seperti di bawah ini.