Come installare PHP-FPM con Apache su Ubuntu 22.04. Esistono due opzioni distinte per eseguire PHP utilizzando il server web. Uno utilizza il CGI di PHP e l'altro è FPM. FPM è un process manager per gestire FastCGI in PHP. Apache viene fornito con mod_php
per impostazione predefinita e funziona con tutti i principali server web. Con mod_php
c'è un piccolo problema di prestazioni perché blocca il processo.
In questa guida imparerai come impostare PHP 8.1-FPM e configurarlo con Apache e anche configurare variabili PHP.
Questa configurazione può essere eseguita anche su altri VPS o VM dedicate o cloud. Questa configurazione è testata su Google Compute Engine ma funziona su qualsiasi distribuzione Ubuntu o Debian Linux.
Per iniziare
Assicurati che il tuo server Ubuntu abbia i pacchetti più recenti eseguendo il comando seguente.
sudo apt update
sudo apt upgrade
Questo aggiornerà l'indice del pacchetto e aggiornerà i pacchetti installati all'ultima versione.
Fase 1:installa PHP 8.1 FPM
Per impostazione predefinita, Ubuntu 22.04 ha l'ultimo repository PHP 8.1 aggiunto. Quindi puoi installare PHP usando il seguente comando.
sudo apt install php8.1-fpm php8.1 libapache2-mod-php8.1 php8.1-common php8.1-mysql 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
Attendi il completamento dell'installazione.
Una volta completata l'installazione, verifica l'installazione utilizzando il comando seguente.
sudo service php8.1-fpm status
Riceverai un output simile a quello qui sotto.
Output ● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-05-08 05:42:31 UTC; 2min ago Docs: man:php-fpm8.1(8) Process: 564 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.s> ...
Fase 2:installa Apache
Una volta che hai il tuo PHP-FPM attivo e funzionante, puoi installare il server web Apache.
sudo apt install apache2
Controlla la versione di Apache usando il comando seguente
sudo apachectl -v
Output Server version: Apache/2.4.52 (Ubuntu) Server built: 2022-03-25T00:35:40
Ogni processo in Apache è gestito con systemctl
comando. Controlla lo stato di Apache con il seguente comando.
sudo systemctl status apache2
Output ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-05-08 05:45:29 UTC; 1min 47s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 12782 (apache2) Tasks: 55 (limit: 1151) Memory: 5.1M CPU: 52ms CGroup: /system.slice/apache2.service ├─12782 /usr/sbin/apache2 -k start ├─12784 /usr/sbin/apache2 -k start └─12785 /usr/sbin/apache2 -k start
Fase 3:configura Apache con PHP-FPM
Per impostazione predefinita Apache utilizzerà mod_php
quindi ora puoi configurare Apache per utilizzare PHP-FPM.
Disabilita la configurazione predefinita di Apache vhost.
sudo a2dissite 000-default
Abilita modulo eventi Apache
Disabilita tutti i moduli preformati predefiniti per tutte le versioni PHP esistenti.
sudo a2dismod php7.4
Disabilita il modulo Apache Prefork.
sudo a2dismod mpm_prefork
Abilita il modulo Evento Apache.
sudo a2enmod mpm_event proxy_fcgi setenvif
Abilita configurazione PHP FPM
Ora puoi abilitare la configurazione PHP-FPM.
sudo a2enconf php8.1-fpm
Abilita HTTP2
Se hai bisogno del supporto HTTP 2 puoi anche abilitarlo.
sudo a2enmod http2
Ora Apache è configurato con PHP FPM.
Fase 4:configura PHP-FPM
Ora configuriamo PHP per le applicazioni Web modificando alcuni valori in php.ini
file.
Per PHP 8.1 con Nginx il php.ini
la posizione sarà nella directory seguente.
sudo nano /etc/php/8.1/fpm/php.ini
Premi F6
per cercare all'interno dell'editor e aggiornare i seguenti valori per prestazioni migliori.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Dopo aver modificato le impostazioni PHP, è necessario riavviare il PHP-FPM affinché le modifiche abbiano effetto.
sudo service php8.1-fpm restart
Passaggio 5:configurare gli host virtuali Apache
Crea una nuova configurazione vhost Apache.
sudo nano /etc/apache2/sites-available/domain.conf
Incolla la configurazione seguente nel file.
<VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com Protocols h2 http/1.1 DocumentRoot /var/www/html/domain/public <Directory /var/www/html/domain/public> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Premi CTRL + X
seguito da Y
e Enter
per salvare ed uscire dal file.
Ora puoi abilitare la nuova configurazione di Apache.
sudo a2ensite domain.conf
Riavvia Apache.
sudo service apache2 restart
Passaggio 6:verifica PHP-FPM con Apache
Qui abbiamo configurato /var/www/html/domain/public
come web root nella configurazione di Apache. Quindi ora puoi navigare in quella directory e creare un phpinfo
per verificare l'impostazione.
cd /var/www/html/domain/public
sudo nano info.php
Incolla quanto segue.
<?php phpinfo();
Premi CTRL + X
seguito da Y
e Enter
per salvare ed uscire dal file.
Ora vai sul tuo browser e puntalo all'indirizzo IP del tuo server o al nome di dominio seguito dal info.php
. Quindi il tuo indirizzo sarà simile a questo http://domain.com/info.php
Vedrai la pagina delle informazioni di PHP e confermerai che PHP-FPM è utilizzato con Apache.
Preparati per un ruolo di Professionista dell'Information Technology con sistema operativo Linux
Conclusione
Ora hai imparato come installare PHP 8.1-FPM con Apache e configurare PHP in Ubuntu 22.04. Hai anche imparato a configurare pool PHP-FPM per più utenti.