Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:adminserv:nextcloud:php [2022/04/14 17:33] – qduchemi | technique:adminserv:nextcloud:php [2023/06/10 19:42] (Version actuelle) – qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{indexmenu_n> | ||
+ | ## Modifier un paramètre PHP ou PHP-FPM | ||
+ | ### Cas général | ||
+ | |||
+ | Picasoft utilise une image Nextcloud qui fait tourner [PHP-FPM](https:// | ||
+ | |||
+ | Traditionnellement, | ||
+ | |||
+ | < | ||
+ | Malgré ce qui est indiqué dans un [bout de sa documentation](https:// | ||
+ | </ | ||
+ | |||
+ | La meilleure solution est : | ||
+ | |||
+ | - Pour PHP : monter un fichier `.ini` dans `/ | ||
+ | - Pour PHP-FPM : monter un fichier `.conf` dans `/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Il suffit donc de modifier un des ces fichiers sur le dépôt et de redémarrer le conteneur applicatif. | ||
+ | |||
+ | ### Cas d' | ||
+ | |||
+ | Assez souvent, notre instance est très lente, voir finit par envoyer des _timeout_ (HTTP 504), notamment sur la synchronisation des calendriers. Les logs donnent un avertissement : | ||
+ | |||
+ | ``` | ||
+ | [14-Apr-2022 13:40:32] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it | ||
+ | ``` | ||
+ | |||
+ | Cette valeur désigne le « nombre maximum de processus fils à créer lorsque `pm` est réglé sur `dynamic` » et « affecte la limite du nombre de requêtes simultanées qui seront servies » ([source]). En d' | ||
+ | |||
+ | Après quelques recherches, cette [réponse sur Reddit](https:// | ||
+ | |||
+ | ``` | ||
+ | [www] | ||
+ | pm = dynamic | ||
+ | pm.max_children = 50 | ||
+ | pm.start_servers = 15 | ||
+ | pm.min_spare_servers = 15 | ||
+ | pm.max_spare_servers = 25 | ||
+ | pm.max_requests = 500 | ||
+ | ``` | ||
+ | |||
+ | Comme ces valeurs concernent PHP-FPM, il suffit de les ajouter dans le fichier [zz-php-fpm-custom.conf](https:// | ||
+ | |||
+ | ### Vérifier les paramètres | ||
+ | |||
+ | #### Pour PHP | ||
+ | |||
+ | < | ||
+ | |||
+ | Se rendre dans le conteneur et créer un fichier `phpinfo.php` qui affiche la configuration PHP. Exemple : | ||
+ | |||
+ | ```bash | ||
+ | $ docker exec -it nextcloud-app sh | ||
+ | echo "<? | ||
+ | ``` | ||
+ | |||
+ | Puis visiter [cette page](https:// | ||
+ | |||
+ | < | ||
+ | |||
+ | #### Pour PHP-FPM | ||
+ | |||
+ | Depuis le conteneur, on peut récupérer les paramètres de la configuration pour voir s'ils sont bien pris en compte : | ||
+ | |||
+ | ```bash | ||
+ | $ php-fpm -tt | ||
+ | [...] | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm = dynamic | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm.max_children = 50 | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm.start_servers = 15 | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm.min_spare_servers = 15 | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm.max_spare_servers = 25 | ||
+ | [14-Apr-2022 15:41:49] NOTICE: pm.process_idle_timeout = 10 | ||
+ | [...] | ||
+ | ``` | ||
+ | |||
+ | Pour voir les paramètres runtime : | ||
+ | TODO : https:// | ||
+ | < |