GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara mengkompilasi dan menginstal PHP 7.4 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Ubuntu 18.04 LTS

Ubuntu 18.04 dikirimkan dengan PHP 7.2 sebagai versi PHP default. Versi PHP utama tidak 100% kompatibel satu sama lain, jadi situs web mungkin memerlukan versi PHP yang lebih baru atau lebih lama agar berfungsi. ISPConfig mendukungnya untuk menggunakan beberapa versi PHP di server yang sama, versi PHP dapat dipilih untuk setiap situs web satu per satu di pengaturan situs web. Tutorial ini menunjukkan cara menginstal PHP 7.4 sebagai mode FPM dan FCGI bersama PHP 7.2 di server Ubuntu 18. Versi PHP tambahan dipasang di folder /opt, jadi pemasangannya tidak mempengaruhi versi PHP default

1 Catatan Awal

Saya akan menginstal PHP 7.4. Harap diperhatikan bahwa PHP-FPM dapat digunakan di server Apache dan Nginx, sedangkan FastCGI hanya tersedia untuk server Apache.

2 Instal prasyarat

Instal prasyarat untuk membangun PHP dan editor nano yang akan saya gunakan untuk mengedit file konfigurasi:

apt -y install build-essential nano net-tools autoconf
apt -y install libfcgi-dev libfcgi0ldbl libjpeg-turbo8-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl

(Perintah terakhir diperlukan jika Anda membuat PHP dengan --with-imap, karena jika tidak ./configure akan berhenti dengan kesalahan berikut:

memeriksa crypt di -lcrypt... yes
configure:error:Cannot find imap library (libc-client.a). Harap periksa penginstalan c-client Anda.
[email protected]:/tmp/php-7.4.0

)

3 Kompilasi PHP 7.4 sebagai PHP-FPM dan Fastcgi

Unduh dan ekstrak arsip PHP:

cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
cd php-7.4.0

Konfigurasi dan build PHP 7.4 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat

./configure --help

untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):

./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable -sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli - -with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data - -with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm

Sakelar terakhir (--enable-fpm) memastikan versi PHP ini akan bekerja dengan PHP-FPM.

make
make install

Salin file ke lokasi yang benar:

cp php.ini-production /opt/php-7.4/lib/php.inicp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm. confcp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Sesuaikan /opt/php-7.4/etc/php-fpm.conf

sed -i 's/;pid =run\/php-fpm.pid/pid =run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf 

Kemudian perbarui /opt/php-7.4/etc/php-fpm.d/www.conf:

cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Jika Anda telah menginstal versi PHP tambahan, harap periksa apakah port tersebut belum digunakan:

netstat -tapn | grep -E ".*899.*php-fpm"

Jika Anda menggunakan nginx sebagai server web Anda, sesuaikan /opt/php-7.4/lib/php.ini:

sed -i 's/;date.timezone =/date.timezone ="Europe\/Berlin"/g' /opt/php-7.4/lib/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini

3.1 Buat file unit systemd

Selanjutnya, kita akan membuat file unit sistem yang digunakan untuk memulai dan menghentikan daemon PHP-FPM.

nano /lib/systemd/system/php-7.4-fpm.service

dengan isi sebagai berikut:

[Unit]
Description=Pengelola Proses FastCGI PHP 7.4
After=network.target

[Layanan]
Tipe=simple
PIDFile =/opt/php-7.4/var/run/php-fpm.pid
ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/ etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Aktifkan layanan dan muat ulang systemd:

systemctl mengaktifkan php-7.4-fpm.service
systemctl daemon-reload

Terakhir, mulai PHP-FPM.

systemctl start php-7.4-fpm.service

Untuk mengaktifkan Zend OPcache:

echo zend_extension=opcache.so>> /opt/php-7.4/lib/php.ini

3.2 Aktifkan Memcache (opsional)

Instal memcache dengan perintah ini.

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install memcache

dan aktifkan memache

echo extension=memcached.so>> /opt/php-7.4/lib/php.ini

3.3 Instal ekstensi xDebug (opsional)

Modul xDebug adalah ekstensi debug untuk PHP. Instalasi bersifat opsional.

Instal xDebug dengan perintah ini.

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebug

dan aktifkan xDebug

echo zend_extension=/opt/php-7.4/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so>> /opt/php-7.4/lib/php.ini

Terakhir restart daemon php-fpm:

systemctl start php-7.4-fpm.service

Uji versi PHP:

cd /opt/php-7.4/bin
./php --version

3.4 Aktifkan PHP 7.4 di ISPConfig

Di ISPConfig 3.1, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 7.4) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:

Buka tab FastCGI Settings dan isi kolom sebagai berikut:

Jalur ke biner PHP FastCGI: /opt/php-7.4/bin/php-cgi
Jalur ke direktori php.ini: /opt/php-7.4/lib
 

Lalu buka tab Setelan PHP-FPM dan isi kolom sebagai berikut:

Jalur ke skrip init PHP-FPM: php-7.4-fpm
Jalur ke direktori php.ini: /opt/php-7.4/lib
Jalur ke direktori kumpulan PHP-FPM: /opt/php-7.4/etc/php-fpm.d
 

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • Debian:http://www.debian.org/

Ubuntu
  1. Cara Menginstal PHP 7.4 dan 8.0 Di Ubuntu 18.04 atau 20.04

  2. Cara Menginstal PHP 5.6 di Ubuntu 16.04 LTS

  3. Cara Menginstal PHP 7.4 di Ubuntu 20.04 LTS

  1. Cara menginstal PHP 7 (PHP-FPM &FastCGI) untuk ISPConfig 3 di Debian 8 (Jessie)

  2. Cara menginstal PHP 7 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Debian 8 (Jessie)

  3. Cara Menginstal Drupal 8.1 dengan Nginx, PHP-FPM dan SSL di Ubuntu 16.04

  1. Cara menginstal PHP 5.6 sebagai tambahan PHP-FPM &FastCGI untuk ISPConfig 3.1 di Ubuntu 16.04

  2. Cara menginstal PHP 7.1.16 sebagai PHP-FPM &FastCGI untuk ISPConfig 3.1 di Debian 8 (Jessie)

  3. Cara menginstal PHP 7.1, 7.2 dan 5.6 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Debian 9