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:
parent
0207d44d9f
commit
4ab8aeb744
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue