Cara Install PHP dengan Nginx di CentOS 8
PHP adalah salah satu bahasa pemrograman paling populer di dunia yang digunakan untuk membangun website. PHP menjadi bagian dari LAMP (Linux Apache MariaDB PHP) / LEMP (Linux Nginx MariaDB PHP) stack.
0.Install Nginx
Install Nginx terlebih dahulu.
1 2 3 4 | dnf install nginx systemctl enable --now nginx systemctl start nginx systemctl status nginx |
Baca tutorial lengkap Cara Install Nginx di CentOS 8
1.FirewallD Service
Masukkan service http ke dalam FirewallD agar web server dapat diakses.
1 2 3 | firewall-cmd --add-service=http --permanent firewall-cmd --reload firewall-cmd --list-services |
Baca tutorial lengkap Cara Setting Firewall dengan FirewallD di CentOS 8
2.Install PHP
Versi PHP yang tersedia secara default di CentOS 8 adalah PHP versi 7.2.11.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | dnf info php Name : php Version : 7.2.11 Release : 1.module_el8.0.0+56+d1ca79aa Arch : x86_64 Size : 4.9 M Source : php-7.2.11-1.module_el8.0.0+56+d1ca79aa.src.rpm Repo : @System From repo : AppStream Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD and MIT and ASL 1.0 Description : PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated web pages. PHP : also offers built-in database integration for several commercial and : non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server. |
Install paket PHP beserta extension yang sering digunakan.
1 | dnf install php php-mysqlnd php-pdo php-gd php-mbstring |
Aktifkan dan jalankan service php-fpm.
1 2 3 | systemctl enable php-fpm systemctl start php-fpm systemctl status php-fpm |
3.Pengujian
Mengecek hasil install PHP.
1 2 3 4 5 | php -v PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies |
Mengecek hasil install PHP dengan membuat file PHPInfo.
1 2 | cd /usr/share/nginx/html echo "<?php phpinfo(); ?>" > info.php |
Lalu browsing http://ip-server/info.php.
4.Nginx + Server Block Nginx
Selanjutnya mencoba melakukan konfigurasi server block untuk domain superuser.web.id.
Buat Document Root terlebih dahulu dan file testing PHP.
1 2 | mkdir /var/www/superuser.web.id echo "<?php phpinfo(); ?>" > /var/www/superuser.web.id |
Lalu file konfigurasi server block dengan nama file superuser.web.id.conf.
1 | vi /etc/nginx/conf.d/superuser.web.id.conf |
Isi dari file konfigurasi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | server { listen 80; server_name superuser.web.id; root /var/www/superuser.web.id; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; } access_log /var/log/nginx/superuser.web.id.access.log; error_log /var/log/nginx/superuser.web.id.error.log warn; } |
Restart service Nginx.
1 2 | systemctl restart nginx systemctl status nginx |
Cek hasilnya dengan browsing http://superuser.web.id/info.php.
5.Mencari Extension PHP
Jika membutuhkan extension atau module PHP yang lain, cari nama paketnya dengan perintah dnf search
.
1 2 3 4 5 6 7 | dnf search php- php-gd.x86_64 : A module for PHP applications for using the gd graphics library php-cli.x86_64 : Command-line interface for PHP php-fpm.x86_64 : PHP FastCGI Process Manager php-cli.x86_64 : Command-line interface for PHP ... |
Selamat mencoba 🙂
saya pakai centos 7 install nginx bagaimana suapya .htaccess dapat berjalan?
.htaccess itu untuk apache
Terimakasih atas tutorialnya, sangat membantu. setlah install php dan saya run php script di main folder (vps), ternyata file php di download bukan di execute. artinya setiap saya panggil file .php maka file tersebut akan terdownload secara otomatis… ada solusi
cek kembali konfigurasi nginx, opsi yang berhubungan dgn php-fpm. jangan lupa restart nginx setelah konfigurasi
Tolong buatkan cara install Moodle v3.8/v.39 dengan Nginx, PHP dan MariaDB di Centos 8 ini pak Musa.
coba saja install satu persatu, nginx + php, mariadb, moodle dgn nginx.
sudah pak Musa, gagal saat instalasi moodlenya. gak tahu setingan yang tepat pada Nginx, PHP dan MariaDB tersebut untuk moodle tersebut.
settingan nginx untuk moodle sama saja dgn di Ubuntu. gagal ditahap yang mana? apa pesan errornya?
Saya pemula pak Musa, maaf banyak tanya karena baru ini belajar install moodle di centos 8.
Ini setingan konfigurasi mariadb pada ubuntu dari https://musaamin.web.id/cara-install-moodle-dengan-nginx-di-ubuntu-18-04/
–> nano /etc/mysql/mariadb.conf.d/50-server.cnf
Kalau pada CentOS 8 dimana padanannya?
Mohon Pencerahannya.
coba cek di
/etc/my.cnf
[root@localhost administrator]# nginx -t
nginx: [emerg] open() “/etc/nginx/snippets/fastcgi-php.conf” failed (2: No such file or directory) in /etc/nginx/conf.d/moodle.conf:17
nginx: configuration file /etc/nginx/nginx.conf test failed
ini pesan kesalahan saat mengadaptasi file config dari ubuntu untuk moodle di centos 8 yang ada di /etc/nginx/conf.d
bagaimana dengan file ini pak Musa, “/etc/nginx/snippets/fastcgi-php.conf”?
file
fastcgi-php.conf
tidak ditemukan. cek konfigurasimoodle.conf
pada baris ke-17.ini isi file moodle.conf nya
server {
listen 80;
server_name 192.168.1.20;
root /var/www/moodle;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /dataroot/ {
internal;
alias /var/moodledata;
}
location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
file fastcgi-php.conf tidak ada di dalam directory /etc/nginx/snippets
directory snippets pun tidak ada di dalam directory /etc/nginx
Apa yang harus saya lakukan?
coba hapus baris yang error
Melalui web ini saya bisa belajar banyak tentang linux. Terutama install moodle. Saya sudah berhasil install moodle di linux debian dan ubuntu dengan apache atau nginx dan mariadb atau postgresql bisa semua. Ketika coba di Centos 8 masih gagal. Terutama konfigrasi nginx. Kayake belum bisa sambung dengan installer moodle nya. Install di virtualbox. Jadi saat ini yang saya pakai debian 10, nginx, mariadb 10.5, php,74. Terima kasih untuk tutor-tutornya.