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
anpassensed -i 's/;pid =run\/php-fpm.pid/pid =run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.confAktualisieren 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.confFalls 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:
ansed -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 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.servicemit 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.targetAktivieren Sie den Dienst und laden Sie systemd neu:
systemctl enable php-7.4-fpm.service
systemctl daemon-reloadStarten Sie schließlich PHP-FPM.
systemctl start php-7.4-fpm.serviceSo aktivieren Sie den Zend OPcache:
echo zend_extension=opcache.so>> /opt/php-7.4/lib/php.ini3.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 Zwischenspeicherund memache aktivieren
echo extension=memcached.so>> /opt/php-7.4/lib/php.ini3.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 xdebugund 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.iniStarten Sie abschließend den php-fpm-Daemon neu:
systemctl start php-7.4-fpm.serviceTesten 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
5 Links
- PHP:http://www.php.net/
- ISPConfig:http://www.ispconfig.org/
- Debian:http://www.debian.org/