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
|
# 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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue