IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancer un fichier php avec exec() ou similaires


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut Lancer un fichier php avec exec() ou similaires
    Bonjour,

    J'aimerai, lorsqu'un visiteur accède à une de mes pages php, qu'une autre page soit lancé, en background.

    Je voulais donc utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $out = exec("php5 auto.php");
    Mais le fichier auto.php n'est jamais atteint.
    De plus, dans la variable de sortie $out il y a le contenu (html) de la page en cours.
    J'ai essayé toutes les autres fonctions (shell_exec, system, popen, nohup, etc) : même problème.
    J'ai essayé de mettre les chemins complet de php5 et du fichier php, même problème.

    Par contre, quand j'entre directement "php5 auto.php" dans un shell, cela fonctionne très bien.

    Comment faire ?

    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi ne pas faire un include() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    En fait mon fichier auto.php fait un traitement qui est assez long (1minute).
    Si je fais include ou require l'utilisateur va devoir attendre la fin du traitement.. je veux le parralléliser

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu es sur d'avoir un fichier php5 ?
    Le fichier fourni avec php5 est php (php.exe pour windows)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Le serveur (mutualisé) est sous linux.
    Quan j'entre php5 fichier.php en ligne de commande ça fontionne!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Hello,

    Déjà, si tu es sur un mutualisé, il y a des chances que les fonctions exec et toute la bande soient désactivées. À vérifier dans le phpinfo.

    Sinon quoi qu'il en soit, passer par exec ne parallélisera pas l'exécution. PHP attendra juste le retour de la fonction exec() avant de traiter la ligne suivante.
    Pourfendeur de singletons en croisade

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    À vérifier dans le phpinfo.
    Quelle ligne dois-je vérifier ?
    Un exec("date") et exec("ls") fonctionnent bien.

    Sinon quoi qu'il en soit, passer par exec ne parallélisera pas l'exécution. PHP attendra juste le retour de la fonction exec() avant de traiter la ligne suivante.
    Ah bon, je ne savais pas.
    Quelle est la solution ? passer par un script shell qui lui appel le php ? ou autre chose ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Comme je pensais, j'ai créé un script shell qui lui appel mon fichier php.
    J''ai donc :

    index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("sh script.sh");
    script.sh:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php5 auto.php > log.txt 2>&1
    Dans log.txt j'ai :
    X-Powered-By: PHP/5.2.14
    Content-type: text/html

    script.sh: fork: retry: Resource temporarily unavailable
    script.sh: fork: retry: Resource temporarily unavailable
    script.sh: fork: retry: Resource temporarily unavailable
    script.sh: fork: retry: Resource temporarily unavailable
    script.sh: fork: Resource temporarily unavailable
    Qu'en pensez vous ?!

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Quel est ce warning ?

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Personne ne connait
    script.sh: fork: retry: Resource temporarily unavailable
    ?

Discussions similaires

  1. [Mail] Lancer Outlook en PHP avec les diff entêtes
    Par heider dans le forum Langage
    Réponses: 7
    Dernier message: 02/01/2011, 05h10
  2. Lancer un fichier .bat avec une page PHP
    Par arezki76 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 09/11/2009, 09h47
  3. [PHP 5.3] Lancer un script php avec la fonction exec
    Par Poukie dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2009, 10h42
  4. Réponses: 9
    Dernier message: 17/11/2005, 10h33
  5. Comment lancer un fichier Excel avec Access ??
    Par merlubreizh dans le forum Access
    Réponses: 5
    Dernier message: 12/09/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo