22
0
Fork 0

Modification procédure configuration php-fpm avec nginx

NGINX inclu un snippet pour configurer php-fpm, on devrait le
favoriser plutôt qu'une configuration custom.
This commit is contained in:
Patrick Marchand 2020-04-21 10:09:46 -04:00
parent 0207d44d9f
commit 4ab8aeb744
2 changed files with 34 additions and 35 deletions

View File

@ -1,41 +1,45 @@
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
# Howto Nginx + PHP-FPM # Howto Nginx + PHP-FPM
Nginx et PHP-FPM (FastCGI Process Manager) est un nouveau "setup" (par rapport à LAMP) pour faire fonctionner des applications PHP. Nginx et PHP-FPM (FastCGI Process Manager) est un nouveau "setup"
(par rapport à LAMP) pour faire fonctionner des applications PHP,
pour les instructions suivantes, adapter php7.3 à la version désiré.
## Installation ## Installation
~~~ ~~~
# aptitude install nginx-full php5-fpm # aptitude install nginx-full php7.3-fpm
~~~ ~~~
## Configuration ## Configuration
La configuration de PHP-FPM se trouve dans _/etc/php5/fpm/php5-fpm.conf_. La configuration de PHP-FPM se trouve dans _/etc/php/7.3/fpm/php-fpm.conf_.
Voici les directives de base : On définit un ou plusieurs "pools" FPM via _/etc/php/7.3/fpm/pool.d/*.conf_ :
La configuration qui suit défini un pool avec une séparation au
niveau des usagers ssh et www, et ce pour chacun des pools.
~~~ ~~~
[global] [foo]
pid = run/php5-fpm.pid
~~~
On définit ensuite un ou plusieurs "pools" FPM via _/etc/php5/fpm/pool.d/*.conf_ : user = www-foo
group = foo
listen = /var/run/php-fpm-foo.sock
listen.owner = www-data
listen.group = www-data
php_flag[display_errors] = on
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /home/foo/log/fpm-php.www.log
~~~
[www]
listen = /var/run/php5-fpm.sock
;listen = 127.0.0.1:9000
user = www-data
group = www-data
pm = dynamic pm = dynamic
pm.max_children = 50 pm.max_children = 50
pm.start_servers = 20 pm.start_servers = 20
pm.min_spare_servers = 5 pm.min_spare_servers = 5
pm.max_spare_servers = 35 pm.max_spare_servers = 35
pm.max_requests = 0 pm.max_requests = 0
~~~ ~~~
On configure maintenant Nginx, par exemple dans un Virtualhost _foo_ : On configure maintenant Nginx, par exemple dans un Virtualhost _foo_ :
@ -48,12 +52,16 @@ server {
index index.html index.php; index index.html index.php;
location ~ \.php$ { location ~ \.php$ {
try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm-fluotonic.sock;
#fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 180s;
fastcgi_pass unix:/var/run/php5-fpm.sock; include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME /home/foo/www$fastcgi_script_name;
include fastcgi_params;
} }
access_log /home/foo/log/nginx-access.log;
error_log /home/foo/log/nginx-error.log;
} }
~~~ ~~~
Le fichier snippet/fastcgi-php.conf est inclu par défaut dans
l'installation PHP et devrait être favorisé par rapport à des
configurations custom.

View File

@ -166,7 +166,7 @@ server {
location ~ \.css$ { location ~ \.css$ {
root /home/example/css; root /home/example/css;
} }
access_log /home/example/log/access.log; access_log /home/example/log/access.log;
error_log /home/example/log/error.log; error_log /home/example/log/error.log;
} }
@ -213,10 +213,10 @@ location / {
} }
~~~ ~~~
Il est aussi possible de déplacer les infos sur l'upstream vers un bloc de configuration du même nom en dehors du bloc *server*. Cela peut permettre notamment de spécifier plusieurs backends (cas load-balancer) ou un backend de secours. Il est aussi possible de déplacer les infos sur l'upstream vers un bloc de configuration du même nom en dehors du bloc *server*. Cela peut permettre notamment de spécifier plusieurs backends (cas load-balancer) ou un backend de secours.
La [documentation de Nginx](http://nginx.org/en/docs/http/ngx_http_upstream_module.html) liste tous les paramètres utilisables dans ce contexte La [documentation de Nginx](http://nginx.org/en/docs/http/ngx_http_upstream_module.html) liste tous les paramètres utilisables dans ce contexte
~~~ ~~~
upstream backend { upstream backend {
server 127.0.0.1:8080; server 127.0.0.1:8080;
@ -376,17 +376,8 @@ more_set_headers 'Server: My Server v42'
### PHP-FPM ### PHP-FPM
Vous devez installer PHP-FPM, voir <https://wiki.evolix.org/HowtoPHP#php-fpm> Vous devez [installer PHP-FPM](HowtoPHP#php-fpm) et puis [configurer
le vhost NGINX](HowtoNginx-PHP-FPM.md).
Puis ajouter dans votre VirtualHost :
~~~
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
~~~
### Mode maintenance ### Mode maintenance