Come installare PHP-FPM con Apache su Ubuntu 20.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.
Passaggio 1:aggiungi PPA per PHP 8.1
Aggiungi il ondrej/php
che ha il pacchetto PHP 8.1 e altre estensioni PHP richieste.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Dopo aver aggiunto il PPA, puoi installare PHP 8.1.
Fase 2:installa PHP 8.1 FPM
Ora installeremo PHP 8.1-FPM e alcuni moduli comuni per eseguire un'applicazione PHP come WordPress.
sudo apt install php8.1-fpm 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-dev php8.1-imap php8.1-mbstring php8.1-soap php8.1-zip php8.1-bcmath -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-02-22 04:51:01 UTC; 3min ago Docs: man:php-fpm8.1(8) Process: 564 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.s> Main PID: 471 (php-fpm8.1) Status: "Processes active: 0, idle: 10, Requests: 1068, slow: 0, Traffic: 0req/sec" Tasks: 11 (limit: 9529) Memory: 1.2G CGroup: /system.slice/php8.1-fpm.service
Fase 3:installa Apache
Una volta che hai il tuo PHP-FPM attivo e funzionante, puoi installare il server web Apache.
sudo apt install apache2
Fase 4: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 5: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 6: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 7: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 Apache. Hai anche imparato a configurare pool PHP-FPM per più utenti.