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

So ersetzen Sie alle Tags im HTML-Text

(?i) bedeutet, dass die Groß-/Kleinschreibung nich...

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

Detaillierte Erklärung zur Verwendung von Vue.prototype in Vue

Inhaltsverzeichnis 1. Einfaches Beispiel 2. Legen...

Implementierung der mobilen Postcss-pxtorem-Anpassung

Führen Sie den Befehl aus, um das Plugin postcss-...

Grafisches Tutorial zur Installation von MySQL 8.0.12

MySQL8.0.12-Installationstutorial, mit allen teil...

CentOS8-Installationstutorial für JDK8/Java8 (empfohlen)

Vorwort Zuerst wollte ich es mit wget auf CentOS8...

mysql charset=utf8 verstehen Sie wirklich, was es bedeutet

1. Schauen wir uns zunächst eine Anweisung zur Ta...

So verwenden Sie die Lotteriekomponente des WeChat Mini-Programms

Es wird in Form von WeChat-Komponenten bereitgest...

Lösung für langsame Netzwerkanforderungen im Docker-Container

Bei der Verwendung von Docker wurden mehrere Prob...

Detaillierte Erläuterung der grundlegenden Verwendung von Apache POI

Inhaltsverzeichnis Grundlegende Einführung Erste ...

Tiefgreifendes Verständnis der Verwendung von Vue

Inhaltsverzeichnis Verstehen Sie das Kernkonzept ...