Apache-modphp-to-phpfpm » Cronologia » Versione 3
Simone Piccardi, 20-02-2023 18:11
1 | 1 | Simone Piccardi | h1. Migrare Apache da mod_php a php-fpm |
---|---|---|---|
2 | |||
3 | Il passaggio della gestione di PHP da @libapache2-mod_php@ a @php-fpm@, oltre ad essere consigliato come la modalità migliore per eseguire applicazioni web in PHP con Apache, consente in genere un notevole miglioramento delle prestazioni anche per il semplice fatto che tutto ciò consente di poter passare dall'MPM prefork all'MPM event, e poter abilitare il supporto per http2. |
||
4 | |||
5 | Qualora si sia ereditato una configurazione di Apache per PHP classica, basata sui tradizionali moduli di esecuzione diretta del codice PHP all'interno di Apache, si potranno seguire le seguenti istruzioni per il passaggio all'esecuzione come fast CGI, che, almeno su Debian Buster, è tutto sommato molto semplice. |
||
6 | |||
7 | Anzitutto si installi il pacchetto php-fpm con |
||
8 | |||
9 | <pre> |
||
10 | apt install php-fpm |
||
11 | </pre> |
||
12 | |||
13 | 3 | Simone Piccardi | questo lancerà il servizio @php7.4-fpm@ per l'esecuzione del codice php creerà la directory @/etc/php/7.4/fpm/@ con le nuove configurazioni che si applicano a questo servizio. |
14 | 1 | Simone Piccardi | |
15 | 3 | Simone Piccardi | Se, come è sempre opportuno fare per mantenere pulita la configurazione, si sono aggiunte le modifiche ai parametri di PHP non su @php.ini@ ma con un file ad hoc in @/etc/php/7.4/apache/conf.d@ (ad esempio @99-local.ini@) tutto quello che sarà necessario fare è: |
16 | 1 | Simone Piccardi | |
17 | <pre> |
||
18 | 3 | Simone Piccardi | cp -a /etc/php/7.4/apache2/conf.d/99-local.ini /etc/php/7.4/fpm/conf.d/ |
19 | 1 | Simone Piccardi | </pre> |
20 | |||
21 | 2 | Simone Piccardi | altrimenti si dovranno trovare le modifiche effettuate e riapplicarle (e potrebbe essere l'occasione per metterle da sole nel file indicato). Si esegua: |
22 | 1 | Simone Piccardi | |
23 | 2 | Simone Piccardi | <pre> |
24 | 3 | Simone Piccardi | systemctl restart php7.4-fpm.service |
25 | 2 | Simone Piccardi | </pre> |
26 | |||
27 | per fare prendere le modifiche ai parametri. |
||
28 | |||
29 | A questo punto per effettuare il passaggio si dovrà disinstallare @libapache2-mod_php@ e procedere con la riconfigurazione di apache per l'uso di @php-fpm@ al suo posto, questo, grazie alla ottima pacchettizzazione di Debian, si fa semplicemente con: |
||
30 | 1 | Simone Piccardi | |
31 | <pre> |
||
32 | 3 | Simone Piccardi | apt-get remove --purge libapache2-mod-php7.4 |
33 | 1 | Simone Piccardi | a2dismod mpm_prefork |
34 | a2enmod mpm_event |
||
35 | a2enmod proxy_fcgi setenvif http2 |
||
36 | 3 | Simone Piccardi | a2enconf php7.4-fpm |
37 | 1 | Simone Piccardi | systemctl restart apache2 |
38 | </pre> |
||
39 | |||
40 | e non c'è bisogno di toccare nulla nella configurazione dei virtual host. |
||
41 | |||
42 | Si potrà verificare l'uso di HTTP2 andando su una pagina qualunque, attivando gli strumenti di sviluppo web di firefox (o gli analoghi di altro browser), ricaricando la pagina che le richieste e le risposte utilizzano la versione HTTP/2 del protocollo. |