Aller au contenu

Recompiler PHP 5 en CLI : possible ? Risqué ?


Sujets conseillés

Posté

Salut à tous,

Je souhaite installer un script du genre de YouTube ou DailyMotion histoire de pouvoir stocker les vidéos internes au site (tests, montage, etc...) sans dépendre d'un prestataire extérieur.

Pour ce faire, j'ai trouvé un script qui nécessite de pouvoir exécuter PHP en ligne de commande. C'est-à-dire qu'un script A appelle un script B en ligne de commande (via la fonction exec() de PHP), le script B effectuant l'encodage des vidéos en FLV.

Or, PHP en ligne de commande ne fonctionne pas, et c'est un poil handicapant. C'est sur une release 2 OVH, donc Gentoo.

Lors du prochain changement de serveur, j'en prendrai que je ferai infogérer par Dan en Debian, mais d'ici là va falloir que je me débrouille seul.

D'après ce que j'ai lu, il faut recompiler PHP 5 en CLI, via emerge.

Néanmoins, ça me semble un peu barbare, et un poil risqué sur un serveur en production. J'ai donc quelques questions :

- Comment recompiler PHP 5 en CLI via emerge ?

- Cela risque-t-il d'endommager OVHm, celui-ci ne pouvant plus configurer les hébergements ? Si ça endommage PHP 4, ça ne me gêne pas, je ne m'en sers pas.

- Pour recompiler PHP, je suppose qu'il faut arrêter Apache avant ?

- Et enfin, y a-t-il d'autres risques ?

Merci à vous tous !

Posté (modifié)

[Edit] J'ai l'impression que la réponse de Dan a disparu...

Merci bien.

Mais j'ai un script PHP qui via un exec() appelle un autre script, or cet autre script n'est en fait pas appelé, ou pas correctement du moins : il ne s'exécute pas, car j'ai mis un mail() au début du script et je ne reçois pas de mail. Si j'appelle le script directement d'un navigateur, le mail m'arrive bien.

Voici la fonction exec et ce qu'elle exécute :

exec("$config[phppath] $config[BASE_DIR]/convert.php $vdoname $vid $ff> /dev/null &");

Sachant que $config

[phppath] est remplacé par le chemin binaire de PHP (/usr/local/php5/bin/php) et $config[BASE_DIR] par le chemin absolu du dossier qui contient le fichier convert.php.

En SSH, j'ai essayé de faire un :

php5 /home/lesite/www/convert.php

Et ça fonctionne.

Du coup, j'ai essayé de remplacer $config[phppath] par php5, mais ça ne marche pas non plus... :(

Une idée ?

Modifié par Arcvox
Posté
[Edit] J'ai l'impression que la réponse de Dan a disparu...

Je l'ai supprimée parce que je me suis rendu compte que je répondais un tantinet à côté de la plaque... (à cause des problèmes d'IP failover qui me bouffent mes 2 neurones :lol: )

Recompiler Php5 en CLI est risqué parce que la Gentoo OVH utilise suphp. Tu as donc besoin d'une version CGI.

N'as-tu pas un problème de permissions ? Parce que ton script php ne s'exécute vraisemblablement pas avec les mêmes droits lorsque tu le lances au départ du shell ou du navigateur ...

Posté (modifié)

Quelques nouvelles de mes tribulations.

Quand je fais un fichier PHP avec :

exec("php5 /home/lesite/www/convert.php");

Ca ne fait rien, le fichier convet.php n'est pas exécuté (j'appelle ce fichier php via un navigateur).

Si je fais ça :

exec("/usr/local/php5/bin/php /home/lesite/www/convert.php");

Ca me fait carrément planter le serveur : le CPU passe à 100 %, la RAM à 97 % et le SWAP à 95 %. Reboot hard impératif, impossible d'avoir la main en SSH. Et le fichier convert.php n'est bien sûr pas exécuté.

Au niveau des permissions, que dois-je vérifier ?

Modifié par Arcvox
Posté

Hello,

à ta place je commencerais par tester depuis un shell directement (via SSH quoi).

Tu auras peut etre des erreurs un peu plus parlantes...

  • 2 months later...
Posté

Bonjour Arcvox,

As tu trouver une solution à ton problème?

J'ai exactement le même problème,

Si je tape directement en ligne de commande "php5 monscript.php", ce dernier fonctionne très bien.

Par contre en passant par la commande "exec('php5 monscript.php'), mon script n'est pas exécuté.

J'ai chercher un peu partout mais là je bloque, donc si tu as une solution, je suis preneur.

Pour info je suis également sur une release 2 OVH.

D'avance merci.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...