OVH Cloud OVH Cloud

droit d'apache

2 réponses
Avatar
Philippe Idlavi
Bonjour,

J'ai codé un programme en PHP qui me permet de référencer des
documents dans une base MySQL (apache ne tourne qu'en local).
Je voudrais que le serveur lance "xemacs" sur un document
particulier.

j'ai une ligne de code du genre :

exec("xemacs ".$document);

mais il ne se passe rien quand elle est executée (ce qui est
normal à priori) alors que la ligne :

echo exec("pwd");

fonctionne.

Il doit y avoir une configuration des droits d'exécutions
d'apache et d'accés à X mais je ne sais pas comment procéder.

Un extrait de mon fichier de configuration d'apache :

safe_mode Off
safe_mode_exec_dir no value
safe_mode_gid Off
safe_mode_include_dir no value

Merci de votre aide.

Philippe I.

2 réponses

Avatar
Xavier
Bonjour,

J'ai codé un programme en PHP qui me permet de référencer des documents
dans une base MySQL (apache ne tourne qu'en local).
Je voudrais que le serveur lance "xemacs" sur un document particulier.

j'ai une ligne de code du genre :

exec("xemacs ".$document);

mais il ne se passe rien quand elle est executée (ce qui est normal à
priori) alors que la ligne :

echo exec("pwd");

fonctionne.

Bonjour,


un script PHP à une temps limite pour s'exécuter. La deuxième commande
fonctionne bien (exécution et retour au shell), mais la première ne peut
pas fonctionner car même si tu arrive à déclarer DISPLAY xemacs sera tué
au bout d'une minute. La solution pourrait constister à lancer un script
qui se démonise (fork + fermeture 1,2 et 3 + séparation du tty,...) et
qui lance ensuite xemacs avec les bons paramètres DISPLAY, mais Le mode
web n'est pas adapté à ce que tu veux faire. Il est plutôt fait pour
passer des documents via le serveur avec un content-type déclenchant une
application paramétrée dans le navigateur.

@+

Avatar
Philippe Idlavi
Xavier wrote:

Bonjour,

J'ai codé un programme en PHP qui me permet de référencer des
documents dans une base MySQL (apache ne tourne qu'en local).
Je voudrais que le serveur lance "xemacs" sur un document particulier.

j'ai une ligne de code du genre :

exec("xemacs ".$document);

mais il ne se passe rien quand elle est executée (ce qui est normal à
priori) alors que la ligne :

echo exec("pwd");

fonctionne.

Bonjour,


un script PHP à une temps limite pour s'exécuter. La deuxième commande
fonctionne bien (exécution et retour au shell), mais la première ne peut
pas fonctionner car même si tu arrive à déclarer DISPLAY xemacs sera tué
au bout d'une minute.


Il me semble que la durée d'exécution de la commande
'exec("toto")' n'est pas la durée d'exécution de 'toto' mais bien
de 'exec' i.e la durée pendant laquelle 'exec' a la main. Dans le
cas d'une appli (comme emacs) la prise de main dure le temps de
lancer emacs et non le temps d'exécution d'emacs ; mais peut-être
que je me trompe...En tout cas sous Windows c'est ainsi que cela
fonctionne (car la commande 'exec("emacs ".$document);'
fonctionne par défaut sous Win --ce qui, en fait, est stupide
pour un serveur mais sous Windows on est pas à ça près !--).


La solution pourrait constister à lancer un script qui se démonise (fork + fermeture 1,2 et 3 + séparation du
tty,...) et

qui lance ensuite xemacs avec les bons paramètres DISPLAY,


Là je ne comprends pas tout, cela ne fait que quelques mois que
je suis sous Linux, mais je vais creuser le filon...


mais Le mode web n'est pas adapté à ce que tu veux faire. Il est plutôt fait pour
passer des documents via le serveur avec un content-type déclenchant une
application paramétrée dans le navigateur.


Je sais bien que je ce que je veux faire est inadapté à un
serveur mais pour l'instant je n'ai pas le choix, il faut que je
puisse modifier directement le fichier sur la machine serveur
(qui est aussi le client) : j'ouvre les doc, je modifie et je
sauvegarde.


@+


Merci pour ces infos.