Cara Install PHP di CentOS 7

PHP merupakan bahasa pemograman cukup populer yang digunakan untuk membuat web dinamis. PHP atau Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP dapat digunakan untuk membangun sebuah CMS. Langsung aja ke tutorialnya..

Installing PHP

Untuk menginstal repositori Remi untuk CentOS 7, jalankan:

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Setelah instalasi selesai harus menjalankan perintah untuk mengaktifkan repositori yang berisi versi PHP pilihan. Untuk memeriksa rilis PHP 7+ mana yang tersedia di repositori Remi, jalankan:

yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

Outputnya seperti ini:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64           2.0-1.el7.remi             remi-safe
php71.x86_64           2.0-1.el7.remi             remi-safe
php72.x86_64           2.0-1.el7.remi             remi-safe
php73.x86_64           2.0-1.el7.remi             remi-safe
php74.x86_64           1.0-3.el7.remi             remi-safe
php80.x86_64           1.0-3.el7.remi             remi-safe

Disini kita akan menginstal PHP 7.4, yang saat ini merupakan versi stabil dari PHP terbaru. Untuk mengaktifkan paket Remi yang benar agar PHP 7.4 diinstal, jalankan:

sudo yum-config-manager --enable remi-php74

Sekarang kita dapat melanjutkan menggunakan yum untuk menginstal PHP seperti biasa. Perintah berikut akan menginstal semua paket yang diperlukan untuk membuat PHP 7.4 yang diatur dalam Nginx dan memungkinkannya untuk terhubung ke database MySQL:

sudo yum install php php-mysqlnd php-fpm

Untuk mengonfirmasi bahwa PHP sudah terinstall, jalankan:

php --version

Outputnya seperti ini:

PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

PHP sekarang berhasil diinstal selanjutnya, kita perlu melakukan beberapa penyesuaian pada konfigurasi default, Buka file konfigurasi /etc/php-fpm.d/www.conf menggunakan nano atai vi, dalam hal ini saya menggunakan vi:

sudo vi /etc/php-fpm.d/www.conf

Sekarang cari user dan group. Jika menggunakan nano, dapat menekan CTRL + W untuk mencari istilah-istilah ini di dalam file tersebut, kalo pake vi /kata yg dicari. /etc/php-fpm.d/www.conf

…
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
…

Variabel user dan group diatur ke apache. Kita perlu mengubahnya ke nginx:/etc/php-fpm.d/www.conf

…
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
…

Selanjutnya kita cari listen, secara default, php-fpm akan mengarahkan ke host dan port tertentu melalui TCP. Kita ingin mengubah pengaturan ini sehingga ia mengarahkan ke file socket lokal, karena ini meningkatkan kinerja keseluruhan server. Ubah baris listen sebagai berikut: /etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock;

Terakhir, kita perlu mengubah pengaturan user dan group untuk file socket yang baru saja kita tentukan dalam pada listen. Temukan listen.ownerlisten.group dan direct.mode directives. Baris-baris ini dikomentari secara default. Batalkan komentar dengan menghapus tanda ; di awal baris. Kemudian, ubah user dan group menjadi nginx:/etc/php-fpm.d/www.conf

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Simpan dan tutup file ketika selesai mengedit. Jika menggunakan nano, lakukan dengan menekan CTRL + X, lalu Y dan ENTER. Kalau pake vi tekan :wq

Untuk mengaktifkan dan memulai layanan php-fpm, jalankan:

sudo systemctl start php-fpm

PHP sekarang sudah siap. Selanjutnya mengkonfigurasi Nginx sehingga mengirimkan semua permintaan untuk skrip PHP untuk diproses oleh php-fpm.

Konfigurasi Nginx ke Proses PHP

Sekarang, kita sudah menginstal semua komponen yang diperlukan. Satu-satunya perubahan konfigurasi yang masih perlu kita lakukan adalah memberi tahu Nginx untuk menggunakan prosesor PHP untuk konten dinamis.

Nginx memiliki direktori khusus di mana kita dapat mendefinisikan setiap situs web yang di-host sebagai file konfigurasi terpisah, menggunakan blok server. Ini mirip dengan host virtual Apache.

Namun, dengan instalasi default, direktori ini kosong. Kita akan membuat file baru untuk berfungsi sebagai situs web PHP default di server ini, yang akan menimpa blok server default yang ditentukan dalam file /etc/nginx/nginx.conf.

Pertama, buka file baru di direktori /etc/nginx/conf.d:

sudo nano /etc/nginx/conf.d/default.conf

Salin blok definisi server PHP berikut ke file konfigurasi yang kita mau, dan jangan lupa untuk mengganti direktif nama server sehingga menunjuk ke nama domain atau alamat IP server:/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  server_domain_or_IP;

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

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

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Simpan dan tutup file setelah selesai.

Selanjutnya, restart Nginx untuk menerapkan perubahan:

sudo systemctl restart nginx

Test PHP di Web Server

Sekarang setelah server web sudah diatur, untuk dapat membuat skrip pengujian PHP untuk memastikan Nginx menangani skrip .php dengan bantuan php-fpm.

Sebelum membuat skrip, kita akan melakukan perubahan pada pengaturan kepemilikan default pada root dokumen Nginx, sehingga pengguna sudo lain dapat membuat file di lokasi itu.

Perintah berikut akan mengubah kepemilikan root dokumen Nginx default menjadi user dan group bernama sammy, jadi pastikan untuk mengganti nama user dan group yang disorot dalam perintah ini untuk mencerminkan username dan group sistem.

sudo chown -R sammy.sammy /usr/share/nginx/html/

Sekarang kita akan membuat halaman PHP untuk memastikan server web berfungsi seperti yang diharapkan.

Buat file PHP baru bernama info.php di direktori /usr/share/nginx/html:

nano /usr/share/nginx/html/info.php

Kode PHP berikut akan menampilkan informasi tentang PHP saat ini yang berjalan di server:/usr/share/nginx/html/info.php

<?php
phpinfo();

Setelah selesai, simpan dan tutup file.

Sekarang kita dapat menguji apakah server web kita dapat menampilkan konten yang dihasilkan oleh skrip PHP dengan benar. Buka browser dan akses nama host atau alamat IP server, diikuti oleh /info.php:

http://server_host_or_IP/info.php

Setelah memeriksa informasi yang relevan tentang server PHP melalui halaman itu, yang terbaik adalah menghapus file yang dibuat karena berisi informasi sensitif tentang PHP dan server CentOS. Anda dapat menggunakan rm untuk menghapus file itu:

rm /usr/share/nginx/html/info.php

Recommended Articles

Leave a Reply

Your email address will not be published. Required fields are marked *