Passa ai contenuti principali

Server Aruba Cloud - CentOS 7 - Aggiungere una versione nuova di PHP al Web Server LAMP multi PHP



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


Il sistema verificherà la disponibilità dei componenti.

Finito, come accaduto per la versione di  PHP 5.6 e 7.3, descritte nel precedente articolo, si prosegue come segue:


yum -y install php81

yum -y install php81-php-fpm



Stoppiamo il servizio appena installato

systemctl stop php81-php-fpm


Diciamo al sistema quali porte sono necessarie a PHP

sed -i 's/:9000/:9072/' /etc/opt/remi/php81/php-fpm.d/www.conf


Installiamo le direttive per l'accesso al DataBase MySQL (o il "fork" Maria DB)

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 - Server LAMP multi PHP - Apache2 - Gestire domini con e senza SSL scegliendo la versione di PHP

Server Aruba Cloud - CentOS 7 - Installare i certificati SSL di Let's Encrypt

Commenti