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

Detaillierte Fehlerbehebung bei Docker.service-Startfehlern

Führen Sie den folgenden Befehl aus, um einen Feh...

So verwenden Sie tcpdump zum Erfassen von Paketen im Linux-System

Lassen Sie mich zunächst einen Blick auf den Beis...

Erstellen Sie Schritt für Schritt ein Dateiverwaltungssystem mit nginx+FastDFS

Inhaltsverzeichnis 1. Einführung in FastDFS 1. Ei...

Beispiele für neue Selektoren in CSS3

Struktureller (Position) Pseudoklassenselektor (C...

Docker-Fallanalyse: Erstellen eines MySQL-Datenbankdienstes

Inhaltsverzeichnis 1 Konfigurations- und Datenver...

Müssen Designer das Programmieren lernen?

Oftmals wird nach der Fertigstellung eines Webdes...

So verstehen Sie die semantische HTML-Struktur

Ich glaube, jeder kennt HTML und CSS, kennt die T...

Richtiger Einsatz von MySQL-Partitionstabellen

Übersicht über partitionierte MySQL-Tabellen Wir ...

Zusammenfassung der XHTML-Anwendung im Webdesign-Studium

<br />Im Allgemeinen ist die Dateiorganisati...

Detaillierte Erläuterung der allgemeinen Schritte zur SQL-Anweisungsoptimierung

Vorwort In diesem Artikel erfahren Sie hauptsächl...