Verwenden Sie Docker, um mehrere PHP-Versionen auf dem Server auszuführen

Verwenden Sie Docker, um mehrere PHP-Versionen auf dem Server auszuführen

PHP7 ist bereits seit einiger Zeit auf dem Markt und es ist allgemein bekannt, dass es eine erhebliche Leistungssteigerung mit sich bringt. Nehmen wir nun an, wir haben einen älteren Server mit einem CentOS6-System, auf dem einige alte Projekte laufen, und die Standard-PHP-Version ist 5.3.

Obwohl wir auf die PHP7-Version aktualisieren können, ist die alte Version nicht mit PHP7 kompatibel. Daher können wir keinen einheitlichen Ansatz verfolgen. Am besten ist die Koexistenz von PHP 5.3 und PHP 7. Daher können wir in Betracht ziehen, Docker zu verwenden, um andere PHP-Versionen zu installieren. Dadurch wird die Unabhängigkeit von der Umgebung sichergestellt und es kommt nur zu geringen Leistungseinbußen.

Nachfolgend werden die einzelnen Schritte anhand der Installation der PHP7-Version als Beispiel vorgestellt.

Installieren Sie Docker auf CentOS6:

yum install -y https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
 Dienst Docker starten
 chkconfig Docker ein

Ziehen Sie das php7.2-Image

docker pull php:7.2-fpm

Erstellen Sie ein neues Verzeichnis und eine neue Datei /usr/local/docker-php7/zz-docker.conf und speichern Sie den folgenden Inhalt:

[global]
daemonisieren = nein
[www]
hören = 9001

;Um die Variablen in php.ini zu ändern, ändern Sie einfach die entsprechenden Attribute des php_value-Arrays

php_value[session.save_handler] = redis
php_value[Sitzung.Speicherpfad] = tcp://127.0.0.1:6379
php_value[max_post_size] = 20M
php_value[maximale_Uploaddateigröße] = 20 M
php_value[Datum.Zeitzone] = Asien/Shanghai
php_value[opcache.enable] = 1
php_value[opcache.enable_cli] = 1

Führen Sie den Container aus und verwenden Sie den Hostmodus, um mit dem Host zu kommunizieren

docker run -d -v /var/www/html:/var/www/html -v /usr/local/docker-php7/zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf --net=host --name php7.2 php:7.2-fpm

Installieren Sie verschiedene gängige PHP-Erweiterungen

docker exec php7.2 apt-get update -y
docker exec php7.2 apt-get install -y libfreetype6-dev
docker exec php7.2 apt-get install -y libjpeg62-turbo-dev
docker exec php7.2 apt-get install -y libpng-dev
Docker Exec PHP7.2 Docker-PHP-Ext-Installieren PDO_MYSQL
Docker Exec PHP7.2 Docker-PHP-Ext-Install MySQLI
Docker Exec PHP7.2 Docker-PHP-Ext-Install Iconv 
Docker Exec PHP7.2 Docker-PHP-Ext-Install GD
Docker Exec PHP7.2 Docker-PHP-Ext-Installieren von MBstring
Docker Exec PHP7.2 Docker-PHP-Ext-Install Opcache
#Ändern Sie übrigens die Konfiguration docker exec php7.2 mv /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini

Da die Redis-Erweiterung nicht über docker-php-ext-install installiert werden kann, müssen Sie sie manuell installieren.

#Geben Sie die Befehlszeile im Container docker exec -it php7.2 sh ein 
Docker-PHP-Quellcode-Extrakt
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz
tar -zxvf /tmp/redis.tar.gz -C /usr/src/php/ext
mv /usr/src/php/ext/phpredis-* /usr/src/php/ext/phpredis
docker-php-ext-install phpredis
#Drücken Sie hier Strg+P und Strg+Q, um den Container zu verlassen. Docker startet php7.2 neu

Der obige Befehl hat php7.2 erfolgreich auf Port 9001 ausgeführt. Als nächstes richten Sie das PHP-Skript einfach auf Port 9001 in der Nginx-Konfiguration (ursprünglich zeigte es auf Port 9000).

Zusammenfassen

Oben habe ich Ihnen die Verwendung von Docker zum Ausführen mehrerer PHP-Versionen auf dem Server vorgestellt. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So führen Sie PostgreSQL mit Docker aus
  • So führen Sie MySQL mit Docker-Compose aus
  • So fügen Sie einem laufenden Docker-Container dynamisch ein Volume hinzu
  • K3s-Erste-Schritte-Handbuch - Detailliertes Tutorial zum Ausführen von K3s in Docker

<<:  Analyse des Prinzips von Vue nextTick

>>:  Detaillierte Schritte zur Installation der dekomprimierten Version von MySQL 5.7.20 (zwei Methoden)

Artikel empfehlen

Der Unterschied zwischen HTML-Block-Level-Tags und Inline-Tags

1. Blockebenenelement: bezieht sich auf die Fähigk...

Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)

1. Kurze Einführung in die Veranstaltung Ein Erei...

Eine kurze Zusammenfassung von Vue Keep-Alive

1. Funktion Wird hauptsächlich verwendet, um den ...

Tabellen dynamisch in HTML hinzufügen_PowerNode Java Academy

Ohne weitere Umschweife werde ich den Code direkt...

So stellen Sie Confluence und Jira-Software in Docker bereit

Version: centos==7.2 jdk==1.8 Zusammenfluss == 6....

25 Beispiele für Website-Design im Nachrichtenstil

bmi Voyager Heugabel Ulster Lebensmittelhändler F...

Verwendung der Zabbix-API in einer Linux-Shell-Umgebung

Sie können es direkt in der Linux-Shell-Umgebung ...

Beispielcode für kreisförmigen Hover-Effekt mit CSS-Übergängen

Dieser Artikel stellt vor Online-Vorschau und Dow...

Beispielanalyse zum Beheben von Problemen in historischen Linux-Images

Fix für Probleme mit historischen Linux-Images De...

Häufige Fehler und Gründe für MySQL-Verbindungsfehler

=================================================...