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.confKemudian 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.confJika 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.inised -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini3.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.servicedengan 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.targetAktifkan layanan dan muat ulang systemd:
systemctl mengaktifkan php-7.4-fpm.service
systemctl daemon-reloadTerakhir, mulai PHP-FPM.
systemctl start php-7.4-fpm.serviceUntuk mengaktifkan Zend OPcache:
echo zend_extension=opcache.so>> /opt/php-7.4/lib/php.ini3.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 memcachedan aktifkan memache
echo extension=memcached.so>> /opt/php-7.4/lib/php.ini3.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 xdebugdan 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.iniTerakhir restart daemon php-fpm:
systemctl start php-7.4-fpm.serviceUji 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/libLalu 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
5 Tautan
- PHP:http://www.php.net/
- ISPConfig:http://www.ispconfig.org/
- Debian:http://www.debian.org/