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-develSelanjutnya kita buat direktori untuk menyimpan source dari PHP7. Agar tidak bingung, kita buat direktori PHP7 di /usr/local .
sudo mkdir /usr/local/php7Lalu download source code dari github.
cd /usr/local/php7
git clone https://github.com/php/php-src.gitDisini 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.6Lanjut 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.confSelanjutnya 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.iniSelanjutnya masukkan baris berikut :
zend_extension=opcache.soUntuk memudahkan, kita symlink juga php-fpm binary ke direktori /usr/sbin
sudo ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php-fpmBuat juga systemd file nya .
sudo nano /usr/lib/systemd/system/php-fpm.serviceIsinya :
[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.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
sudo mkdir /run/php-fpm
systemctl start php-fpmSelanjutnya kita buat php-fpm langsung berjalan saat server di reboot.
chkconfig --levels 235 php-fpm onTerakhir, kita buat symlink juga binary php ke direktori /usr/sbin
sudo ln -s /usr/local/php7/sbin/php /usr/sbin/phpKita cek memaui terminal, versi php yang terinstall.
php -vUntuk 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"
Posting Komentar
Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.