LINUXSEC

Compile PHP7 dan Mengaktifkan PHP-FPM di CentOS

Pada tutorial kali ini saya akan membahas mengenai cara compile PHP7 dari source codenya, beserta modul PHP-FPM yang nantinya akan digunakan untuk proses pada Nginx. Kenapa gak langsung install paket dari repository saja? Itu juga bisa, namun adakalanya kita memilih untuk menginstall dari source karena kita bisa memilih sendiri amna paket atau modul yang ingin dicompile dan mana yang tidak. Jadi tidak terlalu buang buang space.

Pertama, kita install terlebih dahulu dependensi yang digunakan untuk meng-compile source code PHP.

sudo yum install git gcc gcc-c++ libxml2-devel pkgconfig openssl-devel bzip2-devel curl-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel autoconf bison re2c libicu-devel

Selanjutnya kita buat direktori untuk menyimpan source dari PHP7. Agar tidak bingung, kita buat direktori PHP7 di /usr/local .

sudo mkdir /usr/local/php7

Lalu download source code dari github.

cd /usr/local/php7
git clone https://github.com/php/php-src.git

Disini kita akan emmilih versi berapa yang akan kita install. Saya akan menginstall versi stabil terbaru yang pada saat tutorial ini dibuat adalah versi 71.6 .

cd php-src && git checkout PHP-7.1.6

Lanjut ke proses build.

./buildconf --force
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/conf.d --enable-bcmath --with-bz2 --with-curl --enable-filter --enable-fpm --with-gd --enable-gd-native-ttf --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-intl --enable-mbstring --with-mcrypt --enable-mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --disable-phpdbg --disable-phpdbg-webhelper --enable-opcache --with-openssl --enable-simplexml --with-sqlite3 --enable-xmlreader --enable-xmlwriter --enable-zip --with-zlib

Jika semua nya oke, lanjut ke proses compile.

make && make install

Sekarang kita konfigurasikan PHP agar menggunakan PHP-FPM.

sudo mkdir /usr/local/php7/etc/conf.d
sudo cp -v ./php.ini-production /usr/local/php7/lib/php.ini
sudo cp -v ./sapi/fpm/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
sudo cp -v ./sapi/fpm/php-fpm.conf /usr/local/php7/etc/php-fpm.conf

Selanjutnya kita aktifkan modul opcache. Agak berbeda dari step step saat kita install php-fpm dari paket di repository.

sudo nano /usr/local/php7/etc/conf.d/modules.ini

Selanjutnya masukkan baris berikut :

zend_extension=opcache.so

Untuk memudahkan, kita symlink juga php-fpm binary ke direktori /usr/sbin

sudo ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php-fpm

Buat juga systemd file nya .

sudo nano /usr/lib/systemd/system/php-fpm.service

Isinya :

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/sbin/php-fpm —nodaemonize —fpm-config /usr/local/php7/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Buat direktori tempat proses id dari php-fpm brjalan.

sudo mkdir /run/php-fpm
systemctl start php-fpm

Selanjutnya kita buat php-fpm langsung berjalan saat server di reboot.

 chkconfig --levels 235 php-fpm on

Terakhir, kita buat symlink juga binary php ke direktori /usr/sbin

sudo ln -s /usr/local/php7/sbin/php /usr/sbin/php

Kita cek memaui terminal, versi php yang terinstall.

php -v

Untuk konfigurasi dengan nginx nya, sama saja dngan konfigurasi biasa. Hanya saja listen nya ke /var/run/php-fpm.sock

Oke sekian tutorial kali ini, semoga bermafaat. Jika ada yang kurang jelas silahkan ditanyakan melalui kolom komentar.

Komentar

    Tinggalkan Komentar

    Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.