18
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
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
~~~
# aptitude install nginx-full php5-fpm
# aptitude install nginx-full php7.3-fpm
~~~
## 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]
pid = run/php5-fpm.pid
~~~
[foo]
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.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 0
~~~
On configure maintenant Nginx, par exemple dans un Virtualhost _foo_ :
@ -48,12 +52,16 @@ server {
index index.html index.php;
location ~ \.php$ {
try_files $uri =404;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME /home/foo/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm-fluotonic.sock;
fastcgi_read_timeout 180s;
include snippets/fastcgi-php.conf;
}
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$ {
root /home/example/css;
}
access_log /home/example/log/access.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
~~~
upstream backend {
server 127.0.0.1:8080;
@ -376,17 +376,8 @@ more_set_headers 'Server: My Server v42'
### PHP-FPM
Vous devez installer PHP-FPM, voir <https://wiki.evolix.org/HowtoPHP#php-fpm>
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;
}
~~~
Vous devez [installer PHP-FPM](HowtoPHP#php-fpm) et puis [configurer
le vhost NGINX](HowtoNginx-PHP-FPM.md).
### Mode maintenance