AstucesWeb

NAS Synology et modification PHP

Lors de l’installation d’une application web sur un NAS Synology pour un client, j’ai eu un soucis avec des modifications à apporter à PHP. Et comme j’ai bien galéré à trouver la solution, je partage avec vous la solution!

J’ai un projet en cours avec un client mettant en œuvre une appli web sur un NAS auto-hébergé. Il s’agit de vtigerCRM, produit dont j’ai déjà parlé en exposant justement l’installation sur un NAS Synology. Seulement à l’installation, l’assistant me signale que des paramètres de PHP ne correspondent pas aux prérequis.

Paramètres PHP

A l’installation du produit vtigerCRM, (sur la version 5.6.31 de PHP), j’obtiens les avertissements suivants :

Afin de respecter les prérequis du logiciel, il faut donc apporter les modifications demandées à la config PHP sur le NAS. Par le biais de l’outil graphique de modification des paramètres PHP (dans WebStation), même après reboot du paquet PHP et du serveur web, puis du NAS, les modifications n’ont pas été prises en compte.

Bon, je me dis « Pas grave, je vais mettre les mains dans le cambouis en modifiant manuellement le fichier php.ini « .

Pour cela, il faut commencer par activer SSH sur votre NAS Synology. Ensuite, vous devez vous connecter sur votre NAS en SSH (via PuTTY ou WinSCP par exemple). Il vous faut utiliser un compte membre du groupe administrators, le seul qui a les droits sur le service SSH et Telnet.

Une fois connecté, je cherche le fichier php.ini, et là j’en trouve plusieurs :

/volume1/@appstore/PHP5.6/usr/local/etc/php56/php.ini
/usr/local/etc/php56/php.ini
/usr/syno/etc/packages/WebStation/php56/php.ini
/etc/php/php.ini
/etc.defaults/php/php.ini
/volume1/web/vtigercrm/pkg/php/php.ini

Comme je suis pas vraiment à l’aise avec la gestion d’un serveur web, et du coup avec tous les paquets genre php, je décide simplement d’apporter une modification à chacun de ces fichiers, de redémarrer le paquet PHP et le serveur web à chaque fois, pour trouver dans lequel de ces fichiers mon installateur va chercher la conf PHP.

Pour cela, il faudra utiliser l’éditeur vi, à l’ancienne!! Modifier les lignes de paramètres exposées par l’installateur de vtiger, et sauvegardez. (parce que je suis un mec sympa, retenez que i permet de passer en mode insertion, échap de revenir en mode commande, et :wq de sortir et enregistrer. Pour ce besoin précis, sous vim, vous devriez vous en sortir avec ces commandes). Lancez vi avec sudo pour avoir les droits de modification.

Seulement aucun de ces fichiers ne semble être pris en compte… Mais j’ai finalement trouvé une solution.

Fichier INI de configuration par répertoire

Il semble que depuis la version de PHP 5.3 on peut créer un fichier de config par répertoire, qui prends prioritaire au fichier php.ini principal les paramètres qu’on y spécifie.

Il faut entrer ces commandes :

cd /usr/local/etc/php56/conf.d
vi user-settings.ini

Vous créer ainsi un fichier de config personnalisé.

Ensuite spécifier le paramètre suivant dans ce fichier :

user_ini.filename = .user.ini

Il vous faut maintenant créé le fichier caché .user.ini et le remplir avec les paramètres que vous souhaitez modifier pour PHP. Voilà la config que je souhaitais mettre en place pour mon installation de VtigerCRM :

Afin que cette configuration soit prise en compte, il faudra stopper puis relancer le paquet PHP (et au préalable tous les paquets dépendants, comme ici en l’occurrence VtigerCRM, mais l’assistant du paquet PHP vous le précisera).

Cette solution n’est peut être pas parfaite, et si vous avez une explication pour modifier tout ça simplement (par la GUI par exemple!!) je suis preneur! (les commentaires sont là pour échanger!)
Mais je pense aussi que cette solution, en venant « au dessus » du fichier php.ini principal, permet de fixer les paramètres spécifiques, qui ne seront à priori pas écrasés par une montée en version mineure de PHP ou une un upgrade de DSM.

En tous cas, ça fonctionne !

Samuel Monier

Informaticien indépendant Réseaux et systèmes - Infrastructure - Serveurs. J'interviens sur les départements 42 - 63 - 69 - 43 - 71, et à échelle nationale à distance. N'hésitez pas à me demander conseil!

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page