GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come compilare e installare PHP 7.4 come PHP-FPM e FastCGI per ISPConfig 3 su Ubuntu 18.04 LTS

Ubuntu 18.04 viene fornito con PHP 7.2 come versione predefinita di PHP. Le versioni principali di PHP non sono compatibili al 100% tra loro, quindi un sito Web potrebbe richiedere una versione PHP più recente o precedente per funzionare. ISPConfig supporta l'utilizzo di più versioni PHP sullo stesso server, la versione PHP può essere selezionata per ciascun sito Web individualmente nelle impostazioni del sito Web. Questo tutorial mostra come installare PHP 7.4 in modalità FPM e FCGI insieme a PHP 7.2 su un server Ubuntu 18. Le versioni PHP aggiuntive sono installate nella cartella /opt, quindi la loro installazione non influisce sulla versione PHP predefinita

1 Nota preliminare

Installerò PHP 7.4. Tieni presente che PHP-FPM può essere utilizzato su entrambi i server Apache e Nginx mentre FastCGI è disponibile solo per i server Apache.

2 Installa i prerequisiti

Installa i prerequisiti per la creazione di PHP e il nano editor che userò per modificare i file di configurazione:

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 libpng-dev libfreetype6- 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

(L'ultimo comando è necessario se crei PHP con --with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

controllo della crittografia in -lcrypt... sì
configure:errore:impossibile trovare la libreria imap (libc-client.a). Controlla l'installazione di c-client.
[email protected]:/tmp/php-7.4.0

)

3 Compila PHP 7.4 come PHP-FPM e Fastcgi

Scarica ed estrai l'archivio 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

Configura e compila PHP 7.4 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un'occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se utilizzi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive o il processo di compilazione non riuscirà):

./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

L'ultima opzione (--enable-fpm) assicura che questa versione di PHP funzioni con PHP-FPM.

make
make install

Copia i file nelle posizioni corrette:

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

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

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

Quindi aggiorna /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

Se hai già installato versioni PHP aggiuntive, controlla che la porta non sia già in uso:

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

Se usi nginx come server web, modifica /opt/php-7.4/lib/php.ini:

sed -i 's/;date.timezone =/date.timezone ="Europa\/Berlino"/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 Creare il file dell'unità systemd

Successivamente, creeremo il file dell'unità di sistema che viene utilizzato per avviare e arrestare il demone PHP-FPM.

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

con il seguente contenuto:

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

[Service]
Type=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

[Installa]
WantedBy=multi-user.target

Abilita il servizio e ricarica systemd:

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

Infine, avvia PHP-FPM.

systemctl avvia php-7.4-fpm.service

Per abilitare Zend OPcache:

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

3.2 Abilita Memcache (opzionale)

Installa memcache con questi comandi.

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

e abilita memache

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

3.3 Installare l'estensione xDebug (opzionale)

Il modulo xDebug è un'estensione di debug per PHP. L'installazione è facoltativa.

Installa xDebug con questi comandi.

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

e abilita 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

Infine riavvia il demone php-fpm:

systemctl start php-7.4-fpm.service

Testare la versione PHP:

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

3.4 Abilita PHP 7.4 in ISPConfig

In ISPConfig 3.1, puoi configurare la nuova versione PHP in Sistema> Versioni PHP aggiuntive. Nella scheda Nome, inserisci semplicemente un nome per la versione PHP (ad es. PHP 7.4):questa versione PHP sarà elencata con questo nome nelle impostazioni del sito Web in ISPConfig:

Vai alla scheda Impostazioni FastCGI e compila i campi come segue:

Percorso al binario PHP FastCGI: /opt/php-7.4/bin/php-cgi
Percorso della directory php.ini: /opt/php-7.4/lib

Quindi vai alla scheda Impostazioni PHP-FPM e compila i campi come segue:

Percorso dello script di inizializzazione PHP-FPM: php-7.4-fpm
Percorso della directory php.ini: /opt/php-7.4/lib
Percorso della directory del pool PHP-FPM: /opt/php-7.4/etc/php-fpm.d
 

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

Ubuntu
  1. Come installare PHP 7.4 e 8.0 su Ubuntu 18.04 o 20.04

  2. Come installare PHP 7 (PHP-FPM e FastCGI) per ISPConfig 3 su Debian 8 (Jessie)

  3. Come installare PHP 7 come PHP-FPM e FastCGI per ISPConfig 3 su Debian 8 (Jessie)

  4. Come installare PHP 5.6 su Ubuntu 16.04 LTS

  5. Come installare PHP 7.4 su Ubuntu 20.04 LTS

Come installare PHP 5.6, PHP 8.0 e PHP 8.1 su Ubuntu 20.04 LTS

Come installare Apache/PHP-FPM su Ubuntu 16.04 LTS

Come installare Lighttpd con PHP e MariaDB su Ubuntu 16.04 LTS

Come installare Lighttpd, PHP e MariaDB su Ubuntu 20.04 LTS

Come installare ISPConfig su Ubuntu 20.04 LTS

Come utilizzare più versioni di PHP (PHP-FPM e FastCGI) con ISPConfig 3 (Ubuntu 12.04 LTS)