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.

Posting Komentar untuk "Compile PHP7 dan Mengaktifkan PHP-FPM di CentOS"