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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
@+
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.
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.
@+
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.
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.
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.