Qualche post fa, ho introdotto il il server che può gestire parallelamente più linguaggi PHP (ovviamente un versione a dominio) con la gestione del "catenaccio" SSL di Let's Encrypt.
Come tutte le tecnologie, esse evolvono, gradualmente, nel corso del tempo.
Se fino a pochi mesi fa, la versione 7.3 (riferimento temporale ad Aprile 2021) era quella stabile sulla quale si poteva sviluppare codice in PHP, ovviamente, veloce come il vento esso diventa obsoleto in men che non si dica, generando i famosi problemi di aggiornamento software, che non sempre è possibile fare (e perciò ho creato questa "macchina").
E' possibile aggiungere altre versioni di linguaggio, ad esempio 8.0 oppure 8.1 (o successivi)?
La risposta è abbastanza retorica (si, si può fare), ma ovviamente il tutto deve essere commisurato alla macchina intesa come hardware: Processore, Memoria RAM disponibile, spazio sul disco (o qualunque cosa il computer veda come spazio sul disco, anche un NAS da 20TB ad esempio).
Noi abbiamo costruito il tutto su un "serverino" Aruba Cloud base (Versione Smart da 3,50€/mese ivato), ma ovviamente si può applicare a macchine più ampie e complesse.
Questo post, come anche mostrato in bibliografia, è una estensione dell'articolo Server Aruba Cloud - CentOS 7 - Installare un Web Server LAMP multi PHP (PHP 5.6 e PHP 7.3) sul quale si può operare senza necessariamente staccare i servizi (anche se, prassi vuole, avvisare l'utenza di possibili interruzioni di servizio)
Controllare le versioni sul web
In primo luogo, quello che a noi interessa è verificare le versioni disponibili del PHP, e per farlo dobbiamo verificare sul Web quali sono state rilasciate:
http://rpms.remirepo.net/enterprise/
In blu sono selezionate le versioni disponibili.
Il nostro interesse, al momento è la versione 8, ma nulla vieta di poter usufruire anche della versione 4 laddove necessario per retrocompatibilità.
A questo punto da terminale (consolle che dir si voglia) con il super utente (root):
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum install php81-php-mysql php81-php-pecl-memcache php81-php-pecl-memcached php81-php-gd php81-php-mbstring php81-php-mcrypt php81-php-xml php81-php-pecl-apc php81-php-cli php81-php-pear php81-php-pdo
Riavviamo il servizio
systemctl start php81-php-fpm
A questo punto creiamo il file CGI con nano (si prevede l'installazione del programma, come descritto nel precedente articolo I tool base di Linux)
nano /var/www/cgi-bin/php81.fcgi
copiando dentro il seguente testo
#!/bin/bash
exec /bin/php81-cgi
Infine diamo permessi 755 al file:
sudo chmod 755 /var/www/cgi-bin/php81.fcgi
e riavviamo i servizi:
systemctl enable httpd
systemctl enable php81-php-fpm
systemctl start php81-php-fpm
Si potrebbe generare qualche errore a monitor, ma non dare conto
A questo punto, andiamo a creare un dominio per PHP 8.1 (seguendo il nostro esempio iniziale: tmm3.2cg.it):
Configuriamo il file del Virtual Host tmm2.2cg.it
Creiamo il file di VirtualHost direttamente nella cartella con nano
nano /etc/httpd/conf.d/tmm2.2cg.it.conf
########################
###### Porta 80 - Inizio
###
### - tmm3.2cg.it
### - Con accesso con .htaccess di yourl
### - e con error.log
######
<VirtualHost tmm3.2cg.it>
DocumentRoot "/var/www/html/php81"
#ServerName tmm3.2cg.it
# Parametri della struttura in php 8.1
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddHandler php81-fcgi .php
Action php73-fcgi /cgi-bin/php81.fcgi
# Parametri della cartella in PHP 8.1
<Directory /var/www/html/php81>
DirectoryIndex index.php
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Ultimo passaggio è quello di creare un file PHP che ci consenta di vedere la versione e cosa abbiamo come add-on
mkdir -p /var/www/html/php81
echo "<?php phpinfo(); ?>" > /var/www/html/php81/index.php
Avviamo tutti i servizi
systemctl enable httpd
systemctl enable php81-php-fpm
systemctl start httpd
systemctl start php81-php-fpm
Ecco il risultato:
tmm3.2cg.it
Analogo discorso per il "catenaccio" di Let's Encrypt, già discusso nell'articolo: Server Aruba Cloud - CentOS 7 - Installare i certificati SSL di Let's Encrypt
Essendo già installato, si deve solo selezionare l'host:
Avremo:
Bibliografia
Server Aruba Cloud - CentOS 7 - Installare un Web Server LAMP multi PHP (PHP 5.6 e PHP 7.3)
Server Aruba Cloud - CentOS 7 - Installare Virtual Host SSL su Apache2 (porta 443)
Server Aruba Cloud - CentOS 7 - Installare i certificati SSL di Let's Encrypt
Commenti