Heim >Backend-Entwicklung >PHP-Tutorial >Verwendung mehrerer PHP-Versionen unter Linux
In diesem Beitrag besprechen wir, wie man mehrere PHP-Versionen verwendet. Manchmal sind wir auf Fälle gestoßen, in denen wir an verschiedenen App-Projekten mit unterschiedlichen Technologien und PHP-Versionen arbeiten müssen. Beispielsweise möchten wir die Projekte Laravel 11 PHP8 und CodeIgniter 4 PHP7 ausführen, die beide unterschiedliche Versionen von PHP ausführen. Eigentlich gibt es einen einfacheren Weg, nämlich die Verwendung eines Docker-Containers, aber darauf gehen wir im nächsten Beitrag ein. Zunächst besprechen wir, wie man mehrere PHP auf dem Host installiert, konfiguriert und ausführt.
Okay, zuerst müssen wir unseren Webserver mit Apache2 einrichten und das PHP einrichten, das wir verwenden werden.
apt install apache2
Wir werden aus dem PPA-Repository installieren, daher müssen wir zuerst das Repository hinzufügen
apt-get install software-properties-common -y
Dies ist nützlich, damit Sie den Befehl add-apt-repository ausführen können. Als nächstes fügen Sie das Repository mit dem folgenden Befehl hinzu
add-apt-repository ppa:ondrej/php
apt update -y
Wir installieren PHP Version 7.2
apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 libapache2-mod-fcgid -y
Dann installieren wir PHP Version 8, da mein VPS Ubuntu 24.04 ist, also ist der Standard PHP 8.3. Um es zu installieren, ohne die Version anzugeben, gehen Sie wie folgt vor.
apt-get install php php-fpm php-mysql libapache2-mod-php libapache2-mod-fcgid -y
Führen Sie php-fpm aus
systemctl start php7.2-fpm
systemctl start php8.3-fpm
Aktivieren Sie dann die folgenden Module, damit Sie mehrere PHP-Versionen nutzen können
a2enmod actions fcgid alias proxy_fcgi
Dann starten Sie den Apache-Dienst neu, um alle Änderungen zu übernehmen.
systemctl restart apache2
Okay, lass uns mit der Einrichtung von Virtualhost auf dem Webserver fortfahren.
mkdir /var/www/app1 mkdir /var/www/app2
Legen Sie außerdem die Berechtigungen und den Besitzer fest
chown -R www-data:www-data /var/www/app1 chown -R www-data:www-data /var/www/app2 chmod -R 775 /var/www/app1 chmod -R 775 /var/www/app2
Fahren Sie mit der Konfiguration der Site-verfügbaren Seite auf Apache2 fort. Wir erstellen zuerst die Konfigurationsdatei.
Da wir keine Domain haben, unterscheiden wir zwischen Vhosts und Ports. Port 80 mit PHP7.2 und Port 90 mit PHP8.3
nano /etc/apache2/sites-available/app1.conf
Fügen Sie dann die folgende Konfiguration ein
+<VirtualHost *:80> + ServerAdmin app1 + ServerName app1.com + DocumentRoot /var/www/app1 + DirectoryIndex info.php + <Directory /var/www/app1> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <FilesMatch \.php$> # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server + SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined </VirtualHost>
Erstellen Sie eine weitere Konfigurationsdatei für PHP Version 8
nano /etc/apache2/sites-available/server2.conf
Fügen Sie auch die Konfiguration ein
+<VirtualHost *:90> + ServerAdmin site2 + ServerName site2.com + DocumentRoot /var/www/app2 + DirectoryIndex info.php + <Directory /var/www/app2> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <FilesMatch \.php$> # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server + SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined </VirtualHost>
Im grünen Bereich gibt es mehrere Konfigurationszeilen, die entsprechend unseren Bedingungen und Bedürfnissen geändert werden müssen
Testen Sie dann, ob die Konfiguration falsch ist oder nicht, stellen Sie sicher, dass die Syntax in Ordnung ist, damit Sie mit der nächsten Stufe fortfahren können
apachectl configtest
Als nächstes aktivieren wir die Virtualhost-Konfiguration
a2ensite app1.conf a2ensite app2.conf
Vergessen Sie nicht, die Standardkonfiguration zu deaktivieren
a2dissite 000-default.conf
Da wir einen anderen Port auf dem virtuellen Host verwenden, müssen wir ihn zuerst registrieren.
nano /etc/apache2/ports.conf
Zur Zeile hinzufügen, die ich grün gefärbt habe
apt install apache2
Wenn alles erledigt ist, müssen wir nur noch den Server neu starten und einen Test durchführen
apt-get install software-properties-common -y
Führen Sie einen Test durch, indem Sie auf die IP-Adresse und den Port zugreifen. Ich schlage vor, eine info.php-Datei zu erstellen, die die Funktion phpinfo(); enthält. in jedem Dokumentstamm.
Bitte greifen Sie zum Testen auf http://ip-server:port zu
Hoffentlich ist das nützlich und viel Glück beim Ausprobieren
Das obige ist der detaillierte Inhalt vonVerwendung mehrerer PHP-Versionen unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!