GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So kompilieren und installieren Sie PHP 7.4 als PHP-FPM &FastCGI für ISPConfig 3 auf Ubuntu 18.04 LTS

Ubuntu 18.04 wird mit PHP 7.2 als Standard-PHP-Version ausgeliefert. Die wichtigsten PHP-Versionen sind nicht zu 100 % miteinander kompatibel, sodass eine Website möglicherweise eine neuere oder ältere PHP-Version benötigt, um zu funktionieren. ISPConfig unterstützt es, mehrere PHP-Versionen auf demselben Server zu verwenden, die PHP-Version kann für jede Website einzeln in den Website-Einstellungen ausgewählt werden. Dieses Tutorial zeigt, wie man PHP 7.4 im FPM- und FCGI-Modus neben PHP 7.2 auf einem Ubuntu 18-Server installiert. Die zusätzlichen PHP-Versionen werden im /opt-Ordner installiert, sodass ihre Installation die Standard-PHP-Version nicht beeinflusst

1 Vorbemerkung

Ich werde PHP 7.4 installieren. Bitte beachten Sie, dass PHP-FPM sowohl auf Apache- als auch auf Nginx-Servern verwendet werden kann, während FastCGI nur für Apache-Server verfügbar ist.

2 Installieren Sie die Voraussetzungen

Installieren Sie die Voraussetzungen zum Erstellen von PHP und den Nano-Editor, den ich zum Bearbeiten der Konfigurationsdateien verwenden werde:

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

(Der letzte Befehl wird benötigt, wenn Sie PHP mit --with-imap erstellen, da sonst ./configure mit folgendem Fehler stoppt:

prüfe auf crypt in -lcrypt... ja
konfiguriere:Fehler:Kann imap-Bibliothek (libc-client.a) nicht finden. Bitte überprüfen Sie Ihre C-Client-Installation.
[email protected]:/tmp/php-7.4.0

)

3 Compilieren Sie PHP 7.4 als PHP-FPM und Fastcgi

Laden Sie das PHP-Archiv herunter und extrahieren Sie es:

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

Konfigurieren und bauen Sie PHP 7.4 wie folgt (Sie können den Befehl ./configure Ihren Bedürfnissen anpassen, werfen Sie einen Blick auf

./configure --help

um alle verfügbaren Optionen zu sehen; Wenn Sie einen anderen ./configure-Befehl verwenden, werden möglicherweise zusätzliche Bibliotheken benötigt oder der Erstellungsprozess schlägt fehl):

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

Der letzte Schalter (--enable-fpm) stellt sicher, dass diese PHP-Version mit PHP-FPM funktioniert.

make
make install

Kopieren Sie die Dateien an die richtigen Speicherorte:

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

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

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

Aktualisieren Sie dann /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

Falls Sie bereits weitere PHP-Versionen installiert haben, prüfen Sie bitte, ob der Port nicht bereits belegt ist:

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

Wenn Sie nginx als Webserver verwenden, passen Sie /opt/php-7.4/lib/php.ini:

an
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 Erstellen Sie die systemd-Unit-Datei

Als nächstes erstellen wir die System-Unit-Datei, die verwendet wird, um den PHP-FPM-Daemon zu starten und zu stoppen.

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

mit folgendem Inhalt:

[Unit]
Description=Der 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

[Installieren]
WantedBy=multi-user.target

Aktivieren Sie den Dienst und laden Sie systemd neu:

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

Starten Sie schließlich PHP-FPM.

systemctl start php-7.4-fpm.service

So aktivieren Sie den Zend OPcache:

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

3.2 Memcache aktivieren (optional)

Installieren Sie Memcache mit diesen Befehlen.

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf installieren Zwischenspeicher

und memache aktivieren

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

3.3 Installation der xDebug-Erweiterung (optional)

Das xDebug-Modul ist eine Debugging-Erweiterung für PHP. Die Installation ist optional.

Installieren Sie xDebug mit diesen Befehlen.

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

und aktivieren Sie 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

Starten Sie abschließend den php-fpm-Daemon neu:

systemctl start php-7.4-fpm.service

Testen Sie die PHP-Version:

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

3.4 Aktivieren Sie PHP 7.4 in ISPConfig

In ISPConfig 3.1 können Sie die neue PHP-Version unter System> Zusätzliche PHP-Versionen konfigurieren. Auf der Registerkarte Name geben Sie einfach einen Namen für die PHP-Version ein (z. B. PHP 7.4) - diese PHP-Version wird unter diesem Namen in den Website-Einstellungen in ISPConfig aufgeführt:

Gehen Sie zur Registerkarte FastCGI-Einstellungen und füllen Sie die Felder wie folgt aus:

Pfad zur PHP FastCGI-Binärdatei: /opt/php-7.4/bin/php-cgi
Pfad zum php.ini-Verzeichnis: /opt/php-7.4/lib

Gehen Sie dann zum Tab „PHP-FPM-Einstellungen“ und füllen Sie die Felder wie folgt aus:

Pfad zum PHP-FPM-Init-Skript: php-7.4-fpm
Pfad zum php.ini-Verzeichnis: /opt/php-7.4/lib
Pfad zum PHP-FPM-Pool-Verzeichnis: /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. So installieren Sie PHP 7.4 und 8.0 auf Ubuntu 18.04 oder 20.04

  2. So installieren Sie PHP 7 (PHP-FPM &FastCGI) für ISPConfig 3 auf Debian 8 (Jessie)

  3. So installieren Sie PHP 7 als PHP-FPM &FastCGI für ISPConfig 3 auf Debian 8 (Jessie)

  4. So installieren Sie PHP 5.6 auf Ubuntu 16.04 LTS

  5. So installieren Sie PHP 7.4 auf Ubuntu 20.04 LTS

So installieren Sie PHP 5.6, PHP 8.0 und PHP 8.1 auf Ubuntu 20.04 LTS

So installieren Sie Apache/PHP-FPM unter Ubuntu 16.04 LTS

So installieren Sie Lighttpd mit PHP und MariaDB unter Ubuntu 16.04 LTS

So installieren Sie Lighttpd, PHP und MariaDB unter Ubuntu 20.04 LTS

So installieren Sie ISPConfig unter Ubuntu 20.04 LTS

Verwendung mehrerer PHP-Versionen (PHP-FPM &FastCGI) mit ISPConfig 3 (Ubuntu 12.04 LTS)