In genere, il gestore hos utilizzava un server separato per ogni distribuzione dell'applicazione della versione PHP. Che aumenta il costo di hosting. Alcuni dei gestori host utilizzano Docker per eseguire più versioni di PHP sul singolo server. Inoltre, la maggior parte di voi è a conoscenza della configurazione che ho usato in questo tutorial. Ma alcuni degli amministratori di sistema non ne sono a conoscenza. Questo tutorial ti aiuterà a installare più versioni di PHP con Apache sul sistema Ubuntu 18.04 e 16.04 senza cambiare le versioni di PHP.
Questo tutorial descrive l'installazione e la configurazione di due VirtualHost su Apache con versioni PHP separate. Il primo VirtualHost funzionerà con PHP 5.6 e un altro VirtualHost funzionerà con PHP 7.2. Quindi segui questo tutorial. Puoi anche utilizzare più di due versioni di PHP con Apache come richiesto, ma questo tutorial ne copre solo due.
Installazione di Apache
Installa il server web Apache dal repository ufficiale. Avvia il terminale sul tuo sistema o accedi con ssh per i sistemi remoti. Esegui i seguenti comandi per installare l'ultima versione disponibile del server Web Apache.
sudo apt update sudo apt install apache2 libapache2-mod-fastcgi Ubuntu 18.04 Users: sudo apt install apache2 libapache2-mod-fcgid
Installazione PHP
Per l'installazione delle versioni PHP, utilizziamo il PPA mantenuto qui. Usa i seguenti due comandi per aggiungere il PPA al tuo sistema.
### On Ubuntu 18.04 sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php ### On Ubuntu 16.04 sudo apt install python-software-properties sudo add-apt-repository ppa:ondrej/php
Per questo tutorial, utilizziamo PHP 5.6 e PHP 7.2 per la configurazione con il server Web Apache. Per utilizzare le versioni multiple di PHP, utilizzeremo PHP FPM e FastCGI. Installiamo i seguenti pacchetti sul tuo sistema.
apt update sudo apt install php5.6 php5.6-fpm sudo apt install php7.2 php7.2-fpm
Dopo l'installazione, i servizi php-fpm verranno avviati automaticamente. Utilizza i seguenti comandi per assicurarti che entrambi i servizi siano in esecuzione.
sudo systemctl status php5.6-fpm sudo systemctl status php7.2-fpm
- Consigliato:come abilitare/disabilitare i moduli PHP su Ubuntu
Configurazione Apache
Ora abilita alcuni moduli necessari per la configurazione di più versioni di PHP con Apache. Questi moduli sono necessari per integrare PHP FPM e FastCGI con il server Apache.
sudo a2enmod actions fastcgi alias proxy_fcgi Ubuntu 18.04 Users: sudo a2enmod actions fcgid alias proxy_fcgi
Preparati per la configurazione dei siti web sul tuo server Apache. A scopo di test, sto configurando due siti Web per funzionare con due diverse versioni di 2 PHP. Innanzitutto, crea due directory sul tuo server.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Ora crea e index.php contenente la funzione phpinfo().
echo " <?php phpinfo(); ?> " > /var/www/php56/index.phpecho " <?php phpinfo(); ?> " > /var/www/php72/index.php
Iniziamo la creazione di VirtualHost. Apache mantiene tutti i file di configurazione di VirtualHost in /etc/apache2/sites-disponibili con estensione .conf. Crea un file per il primo host virtuale e modificalo nel tuo editor di testo preferito.
sudo vim /etc/apache2/sites-available/php56.example.com.conf
Aggiungi il seguente contenuto. Assicurati di utilizzare ServerName e percorso di directory corretti in base alla tua configurazione. Questo sito Web è configurato per funzionare con PHP 5.6.
Apache
12345678910111213 |
Allo stesso modo, crea un secondo file di configurazione di VirtualHost per lavorare con PHP 7.2. Modifica il file di configurazione nell'editor di testo:
sudo vim /etc/apache2/sites-available/php72.example.com.conf
Aggiungi il seguente contenuto al file con ServerName e DocumentRoot corretti.
Apache123456789101112 |
Entrambi i siti Web sono ora configurati. Ma non sono ancora attivi. Apache mantiene i siti attivi nella directory /etc/apache2/sites-enabled. Puoi semplicemente creare un collegamento simbolico di file di configurazione a questa directory o utilizzare il comando seguente per fare lo stesso.
sudo a2ensite php56.example.com sudo a2ensite php72.example.com
Dopo aver apportato tutte le modifiche, riavvia Apache per ricaricare le nuove modifiche alle impostazioni.
sudo systemctl restart apache2
La tua configurazione è stata completata ora. Vai al passaggio successivo per testare la tua configurazione.
Configurazione del test
Modifica il file /etc/hosts sul tuo sistema locale e inserisci una voce come di seguito. Questo risolverà i nomi temporanei nell'indirizzo IP dell'host locale.
sudo vim /etc/hosts
Aggiungi la voce seguente alla fine del file
127.0.0.1 php72.example.com 127.0.0.1 php56.example.com
Apri un browser web e visita entrambi i siti. Vedrai che php56.example.com mostra la versione PHP 5.6 e php72.example.com mostra PHP 7.2 come configurazione.