Lösung für die Koexistenz mehrerer PHP-Versionen unter Linux-Systemen (super einfach)

Lösung für die Koexistenz mehrerer PHP-Versionen unter Linux-Systemen (super einfach)

Als PHP7 herauskam, habe ich als Fan der neuesten Version sofort ein Upgrade durchgeführt, um es auszuprobieren. Da jedoch auf dem Server immer noch alte Programme ausgeführt werden, musste ich eine PHP-Umgebung für die Koexistenz mehrerer Versionen bereitstellen.

Die vorhandene Umgebung ist lnmp
CentOS 6.7
– nginx 1.10.1
– MariaDB-10.0.26
- php 7.0.8

Um eine bessere Kompatibilität mit alten PHP-Programmen zu gewährleisten, wird empfohlen, 5.4.45 zu verwenden. Es ist hauptsächlich mit der MySQL-Erweiterung kompatibel.

Installation starten

Laden Sie zuerst das Quellpaket php-5.4.45.tar.gz herunter.

Von der Quelle installieren

# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45

# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl

# mache ZEND_EXTRA_LIBS='-liconv'
# make installieren
# cp php.ini-Produktion /usr/local/php/etc/php.ini

php.ini-Konfiguration

post_max_size = 50M
upload_max_filesize = 50M
Datum.Zeitzone = VR China
short_open_tag = Ein
cgi.fix_pathinfo=0
maximale Ausführungszeit = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

php-fpm.conf-Konfiguration

# vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
Fehlerlog = /usr/local/php54/var/log/php-fpm.log
log_level = Hinweis

[www]
hören = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
Listenmodus = 0666
Benutzer = www
Gruppe = www
pm = dynamisch
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
langsamlog = var/log/slow.log

Hinweis: Der Schlüssel liegt in der Konfiguration des Abhörports und des Prozesses

Starten Sie php-fpm

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm starten

Ändern Sie die Nginx-Konfiguration und verwenden Sie php-5.4.45 für die erforderliche Dienstkonfiguration

Standort ~ [^/]\.php(/|$)
 {
  versuche_dateien $uri =404;
  fastcgi_pass unix:/tmp/php54-cgi.sock;
  fastcgi_index index.php;
  fastcgi.conf einschließen;
 }

Konfigurieren Sie php54-fpm von php-5.4.45 so, dass es beim Booten automatisch startet

# chkconfig --add php54-fpm
# chkconfig php54-fpm ein

chkconfig Funktionsbeschreibung: Überprüfen und Einrichten verschiedener Systemdienste.
Syntax: chkconfig [–add][–del][–list][Systemdienst]
chkconfig [–level <Levelcode>][Systemdienst][ein/aus/zurücksetzen]

Der Schwerpunkt dieses Programms liegt

Jede PHP-Version sollte in einem neuen separaten Ordner installiert werden

Die Konfigurationsdatei php-fpm.conf jeder PHP-Version muss einen anderen Prozessnamen und einen anderen Abhörport festlegen

Der zu verwendende PHP-Versions-Abhörport oder Prozessname wird in der nginx-Konfigurationsdatei angegeben

Das könnte Sie auch interessieren:
  • So führen Sie Linux-Befehle in PHP aus
  • So installieren Sie Redis in PHP7 unter Linux
  • So erstellen Sie phpMyAdmin in Linux basierend auf der PHP-FPM-Moduslampe
  • Installieren Sie mehrere PHP-Versionen für Nginx unter Linux
  • Schutzmethode zur Verstärkung der Sicherheitskonfiguration des PHP-Websiteservers unter Linux [empfohlen]
  • Tutorial zur Migration von MySQL von phpstudy nach Linux
  • Installieren Sie das neueste PHP7 auf einem VMware Linux-System

<<:  So implementieren Sie einen Animationsübergangseffekt im Frontend

>>:  MySQL-Optimierung: InnoDB-Optimierung

Artikel empfehlen

MySQL-Datentabellenpartitionierungsstrategie und Vor- und Nachteileanalyse

Inhaltsverzeichnis Warum brauchen wir Partitionen...

Drei Beispiele für Node.js-Methoden zum Abrufen von Formulardaten

Vorwort Nodejs ist eine serverseitige Sprache. Wä...

CSS-Leistungsoptimierung - detaillierte Erklärung der Will-Change-Verwendung

will-change teilt dem Browser mit, welche Änderun...

Miniprogramm zur Implementierung des Slider-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Fehler beim reduzierten Tabellenzeilenelement

Nehmen wir ein Beispiel: Der Code ist sehr einfach...

Detaillierte Erklärung des CSS3-Rotationswürfelproblems

3D-Koordinatenkonzept Wenn sich ein Element dreht...

Zusammenfassung der Unterschiede zwischen Get- und Post-Anfragen in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...

So stellen Sie über Navicat eine Remoteverbindung zu MySQL her

Wenn Sie Navicat direkt für die Verbindung über I...

Implementierung der Installation von Docker in einer Win10-Umgebung

1. Rufen Sie die offizielle Docker-Website auf Ge...

MySQL-Abfrageoptimierung: Eine Tabellenoptimierungslösung für 1 Million Daten

1. Abfragegeschwindigkeit von zwei Abfrage-Engine...

JavaScript-Entwurfsmuster, Lernadaptermuster

Inhaltsverzeichnis Überblick Code-Implementierung...