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

Shell et commandes GNU Discussion :

Je voudrais exécuter un script php via la console


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Je voudrais exécuter un script php via la console
    Bonsoir à Tous,

    J'ai crée un script qui récupère des données d'une BDD mysql pour les insérer dans une autre.
    Il y a beaucoup de requêtes et des tonnes de données. Via le navigateur j'ai une erreur max_execution_time 504. Du coup il faut que je morcèle le script et que je l'exécute autant de fois que nécessaire. C'est galère. en farfouillant, j'ai vu qu'on pouvait exécuter un script via la console (Putty).
    Je suis sur un dédié clés en main 1 and 1 et n'ai pas accès à grand chose.

    J'ai donc lancé Putty et après m'être logué, j'ai saisi :
    /usr/bin/php5.4 /kunden/homepages/21/d473697229/htdocs/monsite/mon_script.php
    Dans le script je n'ai rien mis de spécial avant <?php.
    Mais rien ne se passe. Les tables ne se remplissent pas.
    Je précise que si j'exécute le script dans le navigateur avec un LIMIT 100, par exemple, cela fonctionne.
    Vous pouvez m'aider ?

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    php est un langage interprété, donc pour exécuter un script il faut le donner à manger à l'interpréteur, soit en appelant explicitement /usr/bin/php monscript.php soit en mettant un shebang sur la 1ère ligne du script du genre #!/usr/bin/env php ou #!/usr/bin/php directement

    Edit: en outre il y a la possibilité d'invoquer php avec différentes options comme indiqué ici
    j'ai pas testé, mais dans le doute je pense que j'essaierai au moins php -l monscript.php et php -ddisplay_errors=E_ALL monscript.php

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 438
    Points : 43 081
    Points
    43 081
    Par défaut edit ;devancé par BufferBob
    Il te faut lancer ton script comme ceci :

    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour et merci pour vos réponses.

    php nom_du_script.php
    Mais il faut bien que j'indique le chemin du script, non ? Ou alors me positionner dans le bon répertoire avec cd ?
    A BufferBob: je vais ajouter l'instruction en début de fichier et tester l'appel de différentes façons, on verra bien..

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Je viens de tester: je me suis déplacé dans le dossier du script avec cd.
    Puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php mon_script.php
    Résultat sur la console :

    X-Powered-By: PHP/4.4.9
    Content-type: text/html; charset=UTF-8
    Puis terminé en 2 secondes alors que le navigateur plante. Mais le script ne s'est pas exécuté, les tables sont vides.
    Et je ne comprends pas ce "PHP/4.4.9" affiché sur la console car si je fais un phpinfo(), j'ai : PHP Version 5.4.45


  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 438
    Points : 43 081
    Points
    43 081
    Par défaut
    Regardes si tu as pas les deux en console, tu dois avoir un fichier de config (ou qq chose dans le htaccess) qui te permet de sélectionner la version php utilisée. Débugge ton script, ne serais-ce qu'en mettant des , tu verras déjà si ton script se déclenche bien, ensuite il faut trouver l'endroit ou ça coince.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Pour la version php, ok j'ai trouvé c'est bon.
    J'ai mis un echo puis un exit();
    La console me sort un parse error sur un fichier de config inclus (genre { manquant) mais cette erreur n'apparait pas dans le navigateur et je suis sûr de ce script de config.

  8. #8
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 117
    Points : 187
    Points
    187
    Par défaut
    Bonjour Renaud, bonjour à tous,

    Pour ton histoire de max_execution_time, tu as plusieurs possibilités:
    - Modifier ton fichier php.ini et mettre (par exemple) max_execution_time=120
    - Ajouter la ligne suivante dans ta page php : set_time_limit ( 120 );

    La première solution est préférable. Si tu ne sais pas ou se trouve ton fichier php.ini, lance la commande suivante : php -i|grep 'php.ini'|grep -i load

    Ensuite, si tu as des erreurs lors de l'exécution de ta page php, regarde dans ton fichier de log PHP. Pour savoir ou il se situe et comment il se nomme, lance la commande suivante : php -i|grep error_log
    Sinon, comme l'a dit BufferBob, tu peux utiliser des parametres comme -l (qui vérifie la syntaxe, mais n’interprétè pas ta page) , ou -e (qui affiche des infos de debug) ou -ddisplay_errors=E_ALL (cf msg de Bufferbob)

    Sylvain


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  9. #9
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour Silfun1 et merci pour tes précieux conseils. Je vais m'empresser de tester ces manips.
    D'autant que je suis sur un dédié clés en main, et que je n'ai donc pas accès au php.ini.
    Bonne soirée !

Discussions similaires

  1. Exécution de script shell via PHP
    Par Sayko dans le forum Langage
    Réponses: 1
    Dernier message: 13/03/2013, 23h17
  2. Réponses: 10
    Dernier message: 06/03/2007, 11h07
  3. Réponses: 3
    Dernier message: 26/02/2007, 19h19
  4. [AJAX] XMLHTTPRequest => impossible d'exécuter tout script php
    Par AzertyH dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2006, 19h01
  5. [FLASH MX2004] Exécution de script PHP
    Par dleu dans le forum Flash
    Réponses: 2
    Dernier message: 30/03/2005, 19h10

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