Heim > Backend-Entwicklung > PHP-Tutorial > So führen Sie mehrere Versionen von PHP auf einem Server aus

So führen Sie mehrere Versionen von PHP auf einem Server aus

William Shakespeare
Freigeben: 2025-02-19 09:02:13
Original
430 Leute haben es durchsucht

So führen Sie mehrere Versionen von PHP auf einem Server aus

In diesem speziellen Beitrag werden wir eine Lösung für die Installation mehrerer Versionen von Phalcon und PHP demo demo demo demo wir auf einem einzelnen Webserver. PHP 5.5.x und 5.6.x werden hier verwendet, aber Sie können sie durch andere Versionen ersetzen. Alle Server, die PHP-FPM unterstützen, sollten ausreichen, wir empfehlen jedoch, Nginx zu verwenden. Die in diesem Tutorial verwendete Umgebung ist Fedora OS - ein Linux -System, aber die Anweisungen sind für jedes andere *Nix OS.

fast identisch

Key Takeaways

  • Verwenden
  • Stellen Sie sicher, dass alle notwendigen Entwicklungstools und Bibliotheken wie GCC, Make und Libtool installiert werden, um PHP erfolgreich aus Quelle zu erstellen.
  • Klonen Sie den PHP-Quellcode von GitHub klonen, um auf mehrere PHP-Versionen zuzugreifen und sie mit dem Skript `./Configure` mit spezifischen Optionen wie` –Enable-fpm` für PHP-FPM-Unterstützung zu konfigurieren.
  • installieren und konfigurieren Sie verschiedene PHP-Versionen in separaten Verzeichnissen (`/opt/php-5.5`,`/opt/php-5.6`), um sie zu isolieren und Konflikte zu vermeiden.
  • Ändern Sie die NGINX -Konfiguration, um den Datenverkehr auf verschiedenen PHP -Versionen basierend auf Servernamen zu lenken, sodass die gleichzeitige Hosting mehrerer Anwendungen, die unterschiedliche PHP -Umgebungen erfordern
  • vorläufige Note

Dieses Tutorial behandelt die Installation von PHP 5.5.x mit Phalcon 1.3.x und PHP 5.6.x mit Phalcon 2.0.0. Wir erstellen auch einige zusätzliche PHP -Erweiterungen wie APC, Memcache, Memcached und Ioncube.

Installieren von nginx

nginx ist ein verfügbares Paket im Fedora -Betriebssystem, das wir wie folgt installieren können:

Dann erstellen wir die Systemstart -Links für Nginx und starten sie
sudo yum install nginx
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

bauen php
sudo chkconfig nginx on
  sudo service nginx start
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Bevor Sie mit PHP beginnen, müssen wir die Voraussetzungen für den Bau von PHP5 installieren:

gcc oder eine andere Compiler -Suite.
  • libc-dev, liefert die C-Standardbibliothek, einschließlich Headers.
  • make, das Build-Management-Tool PHP verwendet.
  • autoconf (2.59 oder höher) zum Generieren des Konfigurationsskripts.
  • Automake (1.4 oder höher) erzeugt makefile.in -Dateien.
  • libtool, hilft uns, gemeinsam genutzte Bibliotheken zu verwalten.
  • Bison (2,4 oder höher) zum Erzeugen des PHP -Parsers.
  • (optional) re2c, mit dem der PHP -Lexer erzeugt wird. Da das Git -Repository bereits einen generierten Lexer enthält, benötigen Sie nur RE2C, wenn Sie Änderungen daran vornehmen möchten.
  • auf CentOS/Fedora Sie können alle diese mit dem folgenden Befehl installieren:

Dann müssen wir seinen Quellcode erhalten. Es gibt zwei Möglichkeiten, dies zu tun: Sie können entweder ein Archiv von der Downloadseite von PHP herunterladen oder das Git -Repository von Github klonen.
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir empfehlen, den Quellcode von Git zu überprüfen, da Sie eine einfache Möglichkeit bieten, Ihre Installation auf dem neuesten Stand zu halten und Ihren Code mit verschiedenen Versionen auszuprobieren. Eine Git -Checkout ist auch erforderlich, wenn Sie Patches einreichen oder Anfragen für PHP abrufen möchten.

Um das Repository zu klonen, führen Sie die folgenden Befehle in Ihrem Terminal aus:

sudo yum install nginx
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

standardmäßig befinden Sie sich in der Master -Filiale. Wenn Sie also zu einer Entwicklungsversion wechseln möchten, müssen Sie sich die stabile Filiale ansehen. Zum Beispiel.

sudo chkconfig nginx on
  sudo service nginx start
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Bevor wir zu den einzelnen Build -Schritten gehen, müssen wir einige Befehle für einen Standard -PHP -Build ausführen. Dies ist nur für Builds aus Git erforderlich.

sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

./ BuildConf generiert das Konfigurationsskript. Dies kann einige Minuten dauern.

Meiner Meinung nach ist es am besten, den gesamten Webserver in einem einzigen Verzeichnis zu speichern. Öffnen Sie den Terminal und geben Sie den folgenden Befehl ein.

sudo mkdir /opt/source && cd /opt/source
  git clone git@github.com:php/php-src.git && cd php-src
Nach dem Login kopieren
Nach dem Login kopieren

Sobald das Skript ./Configure über den obigen Schritt generiert wird, können Sie es verwenden, um Ihr PHP -Build anzupassen. Sie können alle unterstützten Optionen mit –help:

auflisten
<span>  PHP 5.3:  git checkout PHP-5.3
</span><span>  PHP 5.4:  git checkout PHP-5.4
</span><span>  PHP 5.6:  git checkout PHP-5.6
</span><span>  PHP HEAD: git checkout master </span>
Nach dem Login kopieren
Nach dem Login kopieren

In dem obigen Befehl werden verschiedene generische Optionen aufgeführt, die von allen autoconf-basierten Konfigurationsskripten unterstützt werden. Einer von ihnen ist bereits erwähnt - Prefix = dir, das das durch Made Installation verwendete Installationsverzeichnis ändert. Eine weitere nützliche Option ist -c, die das Ergebnis verschiedener Tests in der Datei config.cache zwischenspeichert und nachfolgend ./Configure -Anrufe beschleunigen. Die Verwendung dieser Option ist nur sinnvoll, sobald Sie bereits über einen Arbeitsbau verfügen und schnell zwischen verschiedenen Konfigurationen ändern möchten.

Hier sind einige nützliche Einstellungen:

sudo ./buildconf
Nach dem Login kopieren
Nach dem Login kopieren

Nach Abschluss der Vorbereitung installieren wir die PHP -Version 5.6. Führen Sie Folgendes aus:

sudo mkdir -p /opt/php-5.6
  sudo mkdir -p /opt/php-5.5
Nach dem Login kopieren
Nach dem Login kopieren

Der letzte Switch (–Enable-fpm) funktioniert diese PHP-Version mit PHP-FPM. Wenn Sie diese PHP-FPM-Version mit Apache verwenden möchten, verwenden Sie bitte-with-fpm-user = apache und--with-fpm-group = apache. Wenn Sie diese PHP-FPM-Version mit Nginx verwenden möchten, verwenden Sie bitte-with-fpm-user = nginx und-with-fpm-gruppen = nginx.

Eine erfolgreiche Nachricht sollte im Terminal wie SO gedruckt werden:

./configure --help
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt können Sie Make verwenden, um die tatsächliche Zusammenstellung durchzuführen:

[...]

  Usage: ./configure [OPTION]... [VAR=VALUE]...

  To assign environment variables (e.g., CC, CFLAGS...), specify them as
  VAR=VALUE.  See below for descriptions of some of the useful variables.

  Defaults for the options are specified in brackets.

  Configuration:
    -h, --help              display this help and exit
        --help=short        display options specific to this package
        --help=recursive    display the short help of all the included packages
    -V, --version           display version information and exit
    -q, --quiet, --silent   do not print `checking ...' messages
        --cache-file=FILE   cache test results in FILE [disabled]
    -C, --config-cache      alias for `--cache-file=config.cache'
    -n, --no-create         do not create output files
        --srcdir=DIR        find the sources in DIR [configure dir or `..']

  Installation directories:
    --prefix=PREFIX         install architecture-independent files in PREFIX
                            [/usr/local]
    --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                            [PREFIX]

  By default, `make install' will install all the files in
  `/usr/local/bin', `/usr/local/lib' etc.  You can specify
  an installation prefix other than `/usr/local' using `--prefix',
  for instance `--prefix=$HOME'.

  For better control, use the options below.

  Fine tuning of the installation directories:
    --bindir=DIR            user executables [EPREFIX/bin]
    --sbindir=DIR           system admin executables [EPREFIX/sbin]
    --libexecdir=DIR        program executables [EPREFIX/libexec]
    --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
    --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
    --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
    --libdir=DIR            object code libraries [EPREFIX/lib]
    --includedir=DIR        C header files [PREFIX/include]
    --oldincludedir=DIR     C header files for non-gcc [/usr/include]
    --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
    --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
    --infodir=DIR           info documentation [DATAROOTDIR/info]
    --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
    --mandir=DIR            man documentation [DATAROOTDIR/man]
    --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
    --htmldir=DIR           html documentation [DOCDIR]
    --dvidir=DIR            dvi documentation [DOCDIR]
    --pdfdir=DIR            pdf documentation [DOCDIR]
    --psdir=DIR             ps documentation [DOCDIR]
 
  [...]
Nach dem Login kopieren
Nach dem Login kopieren

Das Hauptergebnis dieser Operation sind PHP-Binärdateien für die aktivierten SAPIs (standardmäßig SAPI/CLI/PHP und SAPI/CGI/PHP-CGI) sowie gemeinsame Erweiterungen in den Modulen/Verzeichnissen.

.

Jetzt können Sie "Installation" ausführen, um PHP in /usr /local (Standard) oder andere Verzeichnisse mit der Konfiguration -Prefix zu installieren. In diesem Fall ist es /opt/php-5.6
./configure \
--prefix=/opt/php-5.6 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--with-gd \
--with-jpeg-dir=/usr/lib/
--enable-fpm
Nach dem Login kopieren
Nach dem Login kopieren

Bitte beachten Sie, dass die Installation keine INI -Datei erstellt.
[...]

creating libtool
appending configuration tag "CXX" to libtool

Generating files
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
Nach dem Login kopieren
Nach dem Login kopieren

kopieren Sie php.ini und php-fpm.conf in das richtige Verzeichnis:
make
Nach dem Login kopieren
Nach dem Login kopieren

Wir überprüfen und überprüfen die PHP -Version noch einmal.
sudo yum install nginx
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

öffnen /opt/php-5.6/etc/php-fpm.conf und passen Sie die Einstellungen in der Listenzeile an. Sie müssen in einen ungenutzten Port umwandeln (z. B. 9001; der Port 9000 kann von Fedora verwendet werden)

sudo chkconfig nginx on
  sudo service nginx start
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Init Skript Setup

Sie möchten wahrscheinlich ein Init-Skript für Ihren neuen PHP-FPM erstellen. Glücklicherweise liefert PHP 5.3 es bereits für Sie. Kopieren Sie das Init -Skript einfach in Ihr Verzeichnis und ändern Sie die Berechtigungen:

sudo mkdir /opt/source && cd /opt/source
  git clone git@github.com:php/php-src.git && cd php-src
Nach dem Login kopieren
Nach dem Login kopieren

Ihr Init -Skript ist bereit. Jetzt können Sie Php-FPM starten, anhalten und neu laden:

<span>  PHP 5.3:  git checkout PHP-5.3
</span><span>  PHP 5.4:  git checkout PHP-5.4
</span><span>  PHP 5.6:  git checkout PHP-5.6
</span><span>  PHP HEAD: git checkout master </span>
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen des zweiten PHP (5.5.x)

Wir öffnen den Terminal und geben den folgenden Befehl ein.

sudo ./buildconf
Nach dem Login kopieren
Nach dem Login kopieren

bauen pHP phalcon -Erweiterungen

Um mehrere Versionen von Phalcon einschließlich Phalcon 2.0 zu installieren, müssen wir Zephir

installieren
sudo mkdir -p /opt/php-5.6
  sudo mkdir -p /opt/php-5.5
Nach dem Login kopieren
Nach dem Login kopieren

Es gibt viele Möglichkeiten, PHP -Erweiterungen zu installieren. Wir werden Phpize Build It verwenden.

Phpize spielt eine ähnliche Rolle wie das für PHP -Builds verwendete Skript. Unter diesen Dateien befinden sich Acinclude.m4 (M4-Macros von PHP), phpize.m4 (die in Ihrer Erweiterung in Ihrer Erweiterung umbenannt werden und die Hauptbauanweisungen enthält) und run-tests.php.

Anschließend ruft Phpize AutoConf auf, um eine ./Configure -Datei zu generieren, mit der der Erweiterungsaufbau angepasst werden kann. Wie beispielsweise die Installationsmemcached müssen Sie hinzufügen-anable Memcache.

Erinnere dich! Sie müssen die Option-mit Php-Konfiguration beim Erstellen der Erweiterungen angeben (es sei denn, Sie haben nur eine einzige globale Installation von PHP). Andernfalls kann. Darüber hinaus stellt das Php-Config-Skript sicher, dass der Befehl „Installieren“ die generierte *.so-Datei in das richtige Erweiterungsverzeichnis verschiebt.

Erstellen des ersten Php Phalcon (2.0)

./configure --help
Nach dem Login kopieren
Nach dem Login kopieren

Bitte überprüfen Sie, ob es erfolgreich ist

[...]

  Usage: ./configure [OPTION]... [VAR=VALUE]...

  To assign environment variables (e.g., CC, CFLAGS...), specify them as
  VAR=VALUE.  See below for descriptions of some of the useful variables.

  Defaults for the options are specified in brackets.

  Configuration:
    -h, --help              display this help and exit
        --help=short        display options specific to this package
        --help=recursive    display the short help of all the included packages
    -V, --version           display version information and exit
    -q, --quiet, --silent   do not print `checking ...' messages
        --cache-file=FILE   cache test results in FILE [disabled]
    -C, --config-cache      alias for `--cache-file=config.cache'
    -n, --no-create         do not create output files
        --srcdir=DIR        find the sources in DIR [configure dir or `..']

  Installation directories:
    --prefix=PREFIX         install architecture-independent files in PREFIX
                            [/usr/local]
    --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                            [PREFIX]

  By default, `make install' will install all the files in
  `/usr/local/bin', `/usr/local/lib' etc.  You can specify
  an installation prefix other than `/usr/local' using `--prefix',
  for instance `--prefix=$HOME'.

  For better control, use the options below.

  Fine tuning of the installation directories:
    --bindir=DIR            user executables [EPREFIX/bin]
    --sbindir=DIR           system admin executables [EPREFIX/sbin]
    --libexecdir=DIR        program executables [EPREFIX/libexec]
    --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
    --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
    --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
    --libdir=DIR            object code libraries [EPREFIX/lib]
    --includedir=DIR        C header files [PREFIX/include]
    --oldincludedir=DIR     C header files for non-gcc [/usr/include]
    --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
    --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
    --infodir=DIR           info documentation [DATAROOTDIR/info]
    --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
    --mandir=DIR            man documentation [DATAROOTDIR/man]
    --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
    --htmldir=DIR           html documentation [DOCDIR]
    --dvidir=DIR            dvi documentation [DOCDIR]
    --pdfdir=DIR            pdf documentation [DOCDIR]
    --psdir=DIR             ps documentation [DOCDIR]
 
  [...]
Nach dem Login kopieren
Nach dem Login kopieren

nach der Installation der Erweiterung. Sie müssen es noch aktivieren, indem Sie es in die Php.ini -Datei aufnehmen.

./configure \
--prefix=/opt/php-5.6 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--with-gd \
--with-jpeg-dir=/usr/lib/
--enable-fpm
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen des zweiten Php Phalcon (1.3.x)

[...]

creating libtool
appending configuration tag "CXX" to libtool

Generating files
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
Nach dem Login kopieren
Nach dem Login kopieren

wir überprüfen erneut, um sicherzustellen, dass die Installation erfolgreich ist

make
Nach dem Login kopieren
Nach dem Login kopieren

Konfigurieren von nginx

sudo make install
Nach dem Login kopieren

Die folgende Konfiguration erstellt zwei Server: Die Phalcon-Prd.LocalHost läuft auf PHP 5.5.x und Phalcon-dev.localHost funktioniert mit PHP 5.6.x. Dies ist ein Beispiel. Sie können es an alles anpassen, was Sie wollen, siehe Nginx -Dokumentation

/opt/php-5.6/bin/php --ini
Configuration File (php.ini) Path: /opt/php-5.6/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
Nach dem Login kopieren

Einrichten der lokalen Hosts -Datei

Wenn Sie ein Linux -System verwenden, können Sie die Hostdatei bearbeiten:

sudo cp <span>/opt/source/php-src/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf
</span>sudo cp <span>/opt/source/php-src/php.ini-production /opt/php-5.6/lib/php.ini</span>
Nach dem Login kopieren

Die neue Host -Datei sieht aus.

/opt/php-5.6/bin/php --ini
  Configuration File (php.ini) Path: /opt/php-5.6/lib
  Loaded Configuration File:         /opt/php-5.6/lib/php.ini
  Scan for additional .ini files in: (none)
  Additional .ini files parsed:      (none)

  ### Checking php
  /opt/php-5.6/bin/php --version
  PHP 5.6.2-dev (cli) (built: Oct  2 2014 17:20:23) 
  Copyright (c) 1997-2014 The PHP Group
  Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
Nach dem Login kopieren

Dieser fängt alle Anfragen für phalcon-dev.localhost und phalcon-prd.localhost an und sendet sie dann an Ihren Server.

testen

Für das Testen erstellen wir eine neue Datei namens test.php und setzen sie in den Ordner ein, der der obigen Konfiguration von Nginx entspricht. In jeder Datei fügen wir den folgenden Befehl hinzu.

sudo yum install nginx
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Ausführen der test.php-Datei in jedem Server sehen wir einen Phalcon 1.3.x phpinfo () unter http: //phancon-prd.localhost/test.php, während sie unter http: //phancon-dev.lokalhost /test.php Es sollte phpinfo () von phalcon 2.0.x.

geben

So führen Sie mehrere Versionen von PHP auf einem Server aus

Abschließend

In diesem Tutorial haben wir gelernt, wie wir bei Bedarf leicht mehrere aktiv ausgeführte Versionen von PHP auf unserem Server haben können. Dies kann nützlich sein, wenn Sie gemeinsames Hosting durchführen oder wenn Sie alte Legacy -Apps unterstützen müssen, während Sie beispielsweise in der Lage sind, in der Lage zu sein.

Hinterlassen Sie Ihr Feedback in den Kommentaren unten und wie immer teilen Sie diesen Artikel, wenn Ihnen es gefallen hat!

häufig gestellte Fragen zum Ausführen mehrerer PHP -Versionen auf einem Server

Wie kann ich mehrere PHP Installieren Sie die erforderlichen PHP -Versionen und Apache. Anschließend müssen Sie Apache so konfigurieren, dass sie für jede Website die PHP-FPM-Version verwenden. Sie können dies tun, indem Sie die Apache-Konfigurationsdatei für jede Site bearbeiten und die ProxypassMatch-Anweisung festlegen, um den richtigen PHP-FPM-Pool zu verwenden. Danach müssen Sie für jede PHP-Version einen PHP-FPM-Pool erstellen. Schließlich können Sie Apache und PHP-FPM neu starten, um die Änderungen anzuwenden.

Wie kann ich zwischen verschiedenen PHP-Versionen auf meinem Server wechseln? und A2Dismod -Befehle. Der Befehl a2enmod ermöglicht ein Modul, und der Befehl a2dismod deaktiviert ein Modul. Um zu einer anderen PHP -Version zu wechseln, müssen Sie die aktuelle PHP -Version deaktivieren und die gewünschte PHP -Version aktivieren. Danach müssen Sie Apache neu starten, um die Änderungen anzuwenden. Konfigurieren Sie jede Website so, dass sie eine andere PHP -Version verwendet. Sie können dies tun, indem Sie die Apache-Konfigurationsdatei für jede Website bearbeiten und die ProxypassMatch-Anweisung festlegen, um den richtigen PHP-FPM-Pool zu verwenden. Danach müssen Sie für jede PHP-Version einen PHP-FPM-Pool erstellen. Starten Sie schließlich Apache und PHP-FPM neu, um die Änderungen anzuwenden.

Wie kann ich mehrere PHP-Versionen auf Fedora 35 unter Verwendung von Apache und PHP-FPM? Apache. Anschließend müssen Sie Apache so konfigurieren, dass sie für jede Website die PHP-FPM-Version verwenden. Sie können dies tun, indem Sie die Apache-Konfigurationsdatei für jede Site bearbeiten und die ProxypassMatch-Anweisung festlegen, um den richtigen PHP-FPM-Pool zu verwenden. Danach müssen Sie für jede PHP-Version einen PHP-FPM-Pool erstellen. Schließlich starten Sie Apache und PHP-FPM neu, um die Änderungen anzuwenden.

Wie kann ich PHPENV verwenden, um mehrere PHP-Versionen zu verwalten? Erforderliche PHP -Versionen. Anschließend können Sie den Befehl PHPENV verwenden, um zwischen verschiedenen PHP -Versionen zu wechseln. Sie können auch den Befehl PHPENV Global verwenden, um die globale PHP -Version und den Befehl PHPENV lokal festzulegen, um die lokale PHP -Version für ein bestimmtes Verzeichnis festzulegen.

Wie kann ich die aktuelle PHP -Version auf meinem Server überprüfen? 🎜>

Sie können die aktuelle PHP -Version auf Ihrem Server überprüfen, indem Sie den Befehl PHP -v im Terminal ausführen. In diesem Befehl wird die aktuelle PHP -Version und andere Informationen zur PHP -Installation angezeigt.

Wie kann ich eine bestimmte PHP -Version auf meinem Server installieren? Durch die Verwendung des APT-Get-Installationsbefehls gefolgt vom Paketnamen für die gewünschte PHP-Version. Um beispielsweise PHP 7.2 zu installieren, werden Sie den Befehl APT-Get ausführen. Installieren Sie Php7.2.

Wie kann ich Apache so konfigurieren, dass Sie eine bestimmte PHP-Version verwenden? Verwenden Sie eine bestimmte PHP-Version, indem Sie die Apache-Konfigurationsdatei bearbeiten und die ProxypassMatch-Anweisung einstellen, um den richtigen PHP-FPM-Pool zu verwenden. Danach müssen Sie Apache neu starten, um die Änderungen anzuwenden. Spezifische PHP -Version durch Erstellen einer neuen Poolkonfigurationsdatei im Verzeichnis /etc/php/7.2/fpm/pool.d/. Die Konfigurationsdatei sollte die Einstellungen für den PHP-FPM-Pool enthalten, z. Ein Server? Die Fehlerprotokolle können Informationen zu Problemen mit der Apache-Konfiguration oder den PHP-FPM-Pools liefern. Sie können auch den Befehl PHP -V verwenden, um die aktuelle PHP -Version und den Befehl a2enmod zu überprüfen, um zu überprüfen, welche PHP -Module aktiviert sind.

Das obige ist der detaillierte Inhalt vonSo führen Sie mehrere Versionen von PHP auf einem Server aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage