Synology : PHP en ligne de commande

Au moment de la sortie de cet article nous sommes en DSM 6 , il y a plusieurs versions de php qui cohabite : vous pouvez  installer la 5.6 (ou la 7) par l’intermédiaire du gestionnaire de paquet, puis dans l’interface webstation du DSM seule les versions que vous avez installées (5.6 ou 7) apparaissent , du coup pas de soucis.

par contre quand on veut utiliser la ligne de commande ( comme par exemple pour lancer un script php via la crontab(ou planificateurs de tache) , on se rend compte qu’une ancienne version reste accessible et vient nous pourrir la vie.

la commande normale pour lancer un script php est :

php -f  /volume1/test/monscript.php

mais la ça pointe sur la vieille version , pour lancer la nouvelle il faut faire :

php56 -f  /volume1/test/monscript.php


Autre problème : si vous voulez utiliser une extension php , il faut savoir que l’installation du serveur php web (PHP-CGI) du webstation est différente de l’installation de php en ligne de commande (PHP-CLI) , du coup les extension activées dans webstation ne le sont pas en ligne de commande.

de quoi se creuser la tête un bout de temps.

par exemple si vous utilisez l’extension mysqli dans votre site web sur le webstation  ,et bien en ligne de commande ca ne marchera pas . vous aurez une erreur du style

Fatal error: Call to undefined function mysqli_connect() 

il va donc falloir activer les extensions en ligne de commande :

recherchez  le php.ini :

php56 --ini

Configuration File (php.ini) Path: /usr/local/etc/php56
Loaded Configuration File: /usr/local/etc/php56/php.ini
Scan for additional .ini files in: /usr/local/etc/php56/conf.d
Additional .ini files parsed: /usr/local/etc/php56/conf.d/webstation-extensions.ini

copier le fichier /usr/local/etc/php56/php.ini dans le répertoire de votre script puis modifier le et ajoutez la ligne suivante dans la rubrique [PHP]

extension = mysqli.so

ensuite utilisez ce nouveau php.ini  dans votre ligne de commande :

php56 -c  /volume1/test/php.ini  -f  /volume1/test/monscript.php

une autre méthode est d’éditer directement le fichier /usr/local/etc/php56/php.ini , par contre je ne sais pas si ça résiste a une mise a jour du DSM.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s