Avendo la necessità di effettuare dei test su ambiente LAPP (Linux + Apache + PostgreSQL + PHP) provvederò ad installare Ubuntu 22.04 LTS tramite virtualBox tracciando le principale operazioni. Nel web ci sono miliardi di tutorial che parlano di questo: il mio vuole fungere principalmente per mio promemoria pertanto sarà breve ed essenziale.

Installazione VirtualBox e Ubuntu 22.04

Come prima cosa ho installato VirtualBox 6.1 dai repository della mia distro (Linux Mint 20.3) e parallelamente ho scaricato la ISO di Ubuntu Server 22.04 LTS da qui.

L’installazione della distro su VirtualBox è veramente banale pertanto penso non serva aggiungere nulla sull’argomento. L’unico accorgimento è verificare di installare SSH quando l’installer ve lo propone: questo perchè gli strumenti di condivisione cartelle e copia/incolla predisposti da VirtualBox sono assolutamente insoddisfacenti. Conviene quindi accedere tramite ssh (stiamo parlando della versione server quindi niente interfaccia grafica!) e montare il disco sul sistema host tramite sshfs. Se non ricordate i dettagli trovate tutto qui.

Ultimata l’installazione è necessario modificare /etc/ssh/sshd_config impostando i seguenti parametri:

LoginGraceTime 2m 
PermitRootLogin no 
StrictModes yes 
AllowUsers www-data <altri utenti>

e riavviare il demone ssh con con service sshd restart .

Usando ifconfig dovreste agilmente risalire all’ip assegnato dal vs DHCP locale e poter quindi accedere via ssh in maniera piuttosto semplice.

Per il mount del disco, se il fine è sviluppare per il web, si può condividere usando l’utente www-data. Bisogna quindi copiare la chiave pubblica dell’utente usato per caricare il mount nella home dell’utente www-data. Tutte queste info si trovano in /etc/passwd della macchina client (la home di www-data è /var/www!) ed inoltre è necessario consentire il login di www-data per poter effettuare il mount quindi la riga che riguarda www-data diventa:

www-data:x:33:33:www-data:/var/www:/bin/bash

fatto questo basta creare un mount point sulla macchina host e si può procedere al mount del disco della macchina client con:

sudo sshfs -o reconnect www-data@<ip-macchina-client>:/ /media/<mount-dir>/ -o allow_other -o idmap=user -o uid=33 -o gid=33 -o workaround=rename

Apache 2.4.52

sudo apt install apache2

PHP 8.1.2

sudo apt install php8.1-fpm php8.1 libapache2-mod-php8.1 php8.1-common php8.1-pgsql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

quindi bisogna rendere PHP visibile ad apache

a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
systemctl reload apache2

consiglio infine di aggiornare alcuni parametri di default di PHP in quanto troppo conservativi : li trovate in /etc/php/8.1/fpm/php.ini

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

effettuate le modifiche riavviate il servizio php fpm

service php8.1-fpm restart

ed infine, per testare che tutto funzioni create un virtualhost apache ed eseguite il classico phpinfo().

PostgresQL 14.2

sudo apt install postgresql postgresql-contrib

Senza dilungarmi nei dettagli della configurazione degli utenti consiglio di provare ad accedere alla shell di PostgreSQL con :

sudo -u postgres psql

Conclusioni

Questa è il minimo per avere un setup funzionante in ambiente LAPP (Linux + Apache + PostgreSQL + PHP). Ci sono molti altri task ma per questa guida veloce quanto esposto è più che sufficiente!

LAPP (Linux + Apache + PostgreSQL + PHP) con Ubuntu 22.04 LTS

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *