web-dev-qa-db-fra.com

Comment courir un PHP programme d'invite de commande sur une machine Windows?

Je suis un PHP développeur} de profession.

J'utilise un ordinateur portable Lenovo Ideapad qui s'exécute sur système d'exploitation Windows 10 Home Single Language 64 bits

J'ai également installé Panneau de configuration XAMPP v3.2.2 à l'emplacement "C:\xampp" pour exécuter les programmes PHP dans un navigateur Web sur ma machine.

Le fichier "php.exe" est présent à l'emplacement "C:\xampp\php".

Le répertoire racine du document pour enregistrer les fichiers PHP se trouve à l'emplacement "C:\xampp\htdocs".

Je peux exécuter les programmes PHP que j'ai créés et enregistrés dans un répertoire C:\xampp\htdocs\html_playground en lançant le logiciel XAMPP (en double-cliquant sur le raccourci XAMPP présent sur mon bureau) et en entrant l'URL d'un fichier programme comme ceci " http: //localhost/html_playground/sample.php " dans la barre d'adresse d'un navigateur .

De cette façon, je peux exécuter les programmes PHP avec précision, mais je veux exécuter le même programme à partir de invite de commande Windows

Pour cela j'ai fait les étapes suivantes:

  • Je suis allé à Paramètres système avancés (Panneau de configuration\Système et sécurité\Système\Paramètres système avancés)
  • Puis cliqué sur variables d'environnement
  • Puis sélectionné la variable Chemin
  • Puis cliquez sur le bouton Editer ...
  • Puis, après le point-virgule de fin d'une chaîne existante, j'ai ajouté la chaîne "C:\xampp\php" en ajoutant un {espace vide} après le point-virgule.

La nouvelle chaîne finale ressemblait à celle ci-dessous:

% USERPROFILE%\AppData\Local\Microsoft\WindowsApps; C:\xampp\php

  • Puis cliqué sur Ok
  • Ouvert invite de commande
  • Nous sommes allés au chemin C:\xampp\htdocs\html_playground à l'invite de commande à l'aide de cd commande
  • Tapé dans sample.php (le fichier contenant mon programme PHP)

Ensuite, au lieu d’afficher la sortie du programme, il a ouvert le même fichier dans Texte sublime (L’éditeur que j’utilise pour écrire le code)

Le fichier sample.php a le suivant PHP code exécutable}:

<?php 
   echo 'Hello World!';
?>

Pour votre référence, je joins également la capture d'écran de la fenêtre d'invite de commande:

 Command Prompt Window

Maintenant ma question est

  • Pourquoi je ne peux pas voir la sortie à l'invite de commande ou dans un navigateur Web?
  • Est-ce que je fais une erreur ou quoi?
  • Est-il nécessaire de démarrer le serveur XAMPP comme je le fais normalement pour exécuter le programme dans un navigateur Web afin de l'exécuter également à partir de l'invite de commande?
  • Ai-je commis une erreur en définissant des variables d'environnement?
  • Est-il vraiment nécessaire de définir des variables d'environnement? Si oui pourquoi? Si non pourquoi?
  • Comme PHP est censé être le langage approprié pour le développement Web, j'estime qu'il est toujours bon d'exécuter le programme dans le logiciel du développeur Web, c'est-à-dire un navigateur Web. Mais je ne comprends pas la raison pour laquelle les gens insistent pour exécuter les programmes PHP à partir de ligne de commande plutôt que d'exécuter le même programme à partir du navigateur Web uniquement?

S'il vous plaît, aidez-moi en répondant à mes questions et en m'aidant à exécuter le programme à partir de l'invite de commande.

Même j’ai essayé de redémarrer le PC et d’exécuter la commande php -v, mais cela n’a pas fonctionné. Voici la capture d'écran de la même chose:

 Command Prompt output after system restart

3
user2839497

Si vous souhaitez exécuter CLI PHP, je vous suggère fortement d'installer le fichier Vanilla PHP présent sur windows.php.net . Laissez-le s’installer à C:\php La raison pour laquelle j’ai recommandé cela est que si vous voulez utiliser Composer (et il y a de fortes chances que vous souhaitiez le faire), il le trouvera nativement là.

Maintenant, vous pouvez ouvrir une invite de commande et exécuter des scripts comme suit

C:\php\php.exe C:\path\to\php\script.php

À vos spécificités

  1. Why I'm not able to see the output at command Prompt or a web browser? Parce que la sortie est envoyée à la ligne de commande. Les requêtes du navigateur sont envoyées via le serveur Web au navigateur.
  2. Is it necessary to start the XAMPP server like I normally do to run the program from command Prompt too? Pour les demandes CLI, non. PHP est un exécutable et peut être exécuté seul. Si vous souhaitez faire des demandes de navigateur, XAMPP doit être en cours d'exécution.
  3. Is there really a need to set environment variables? If yes why? If no why? Pas vraiment. La CLI ne portera attention qu'à php.ini Les configurations XAMPP sont principalement destinées à Apache.
  4. But I'm not understanding the reason why people do insist for running the PHP programs from Command Line La raison principale est les tâches automatisées. J'ai plusieurs processus au travail que je lance sur un travail cron. 
12
Machavity

Guide pas à pas pour les chemins d'accès variables dans Windows 10


Mise à jour:

Passez à l’étape 4 avec en cliquant à gauche le bouton Démarrer de Windows et tapez immédiatement system env; la recherche Windows vous suggérera Edit the system environment variables.


  1. Clic droit Windows Démarrer Bouton, Sélectionner Système

 Right Click Windows Start Button > System

  1. Cliquez sur Informations système

 Click on System Information

  1. Cliquez sur Paramètres système avancés

 Click on Advanced System Settings

  1. Cliquez sur Variables d'environnement

 Click on Environment Variables

  1. SélectionnezCHEMINsous Variables système entête puis cliquez sur Éditer .

 Under System Variables, Click on PATH then click Edit

  1. Cliquez sur Nouveau , entrez l'emplacement du chemin du fichier exécutable.

 Click New, Add Path location to executable file

  1. Appuyez surOKetAPPLIQUEZsur tous les panneaux concernés, puis redémarrez l'ordinateur .

 enter image description here

9
Marc Newton

Étape 1: Cliquez avec le bouton droit de la souris sur l'icône de l'ordinateur sur votre bureau et choisissez l'option Propriétés.

Étape 2: / Dans la fenêtre Système, cliquez sur Paramètres système avancés dans le volet de gauche.

Étape 3: / Dans la fenêtre Propriétés système, sélectionnez l'onglet Avancé dans le menu horizontal en haut, puis cliquez sur le bouton Variables d'environnement situé au bas de la fenêtre

Étape 4: / Dans la fenêtre suivante, appelez les variables d'environnement, accédez à la variable système (deuxième grille), recherchez une variable nommée Path et cliquez sur Modifier. Si la variable Path n'est pas présente, cliquez sur New. 

Si vous modifiez, ajoutez un point-virgule avant le chemin que vous ajoutez à des variables distinctes.

Étape 5: Obtenez le chemin php où vous avez installé XAMPP. Ajoutez ce chemin à la valeur de la variable dans la petite boîte de dialogue qui s’est affichée.

Étape 6: Appuyez sur OK et fermez toutes les fenêtres.

Étape 7: ouvrez une invite de commande avec cmd.

Étape 8: cd sur votre chemin d'installation/xampp/htdocs

Étape 9: entrez la commande 'php -i | plus'

Étape 10: Il n’ya pas d’étape 10.

3
Bruce

Vous pouvez voir la sortie du code php dans votre recherche via l’utilisation de l’indicateur -S:

php -S <Host/ip>:<port>

Pour le tester, créez un fichier sample.php contenant:

<?php
echo "Hello World from built-in PHP server";
?>

et exécutez la commande php -S localhost:8080 à partir de la ligne de commande (n'incluez pas http: //).

Cela démarrera un serveur Web à l'écoute sur le port 8080 en utilisant le répertoire actuel dans lequel vous vous trouvez en tant que racine du document.

Ouvrez le navigateur et accédez à http: // localhost: 8080 . Vous devriez voir votre page "Hello World".

Remarque: Mon hypothèse est que vous êtes dans le répertoire dans lequel sample.php est présent. Si dans le cas où port:8080 est déjà en cours d'utilisation, vous pouvez utiliser tout autre port tel que 80, 8000.

2
Asif Raza

Depuis que vous avez installé XAMPP, il vous est possible d’exécuter PHP à partir du Shell fenêtre de XAMPP Control Panel v3.2.2

 enter image description here

Dans mon cas de test, j'utilise un petit fichier index.php dans le répertoire c:\xampp\htdocs\tester. Le contenu de index.php est le suivant:

echo "This is output from command line "."\n";
if(!empty($argv)) {
foreach($argv as $key => $arg) {
if($key>0) {
echo "command line argument ".$key ." ". $arg."\n";
}
}
}

Tapez simplement ce qui suit dans la fenêtre de votre ligne de commande.

php C:\xampp\htdocs\tester\index.php var1=1 var2="lorem ipsum..."

Sortie

 enter image description here

1
Peter Darmis

Ouvrez une invite de commande dans le même répertoire que php.exe et appelez le programme avec l'argument du fichier que vous souhaitez traiter.

C:\xampp\php\php.exe C:\xamp\htdocs\html_playground\test.php

Si test.php contenait: <?php echo "Hello World"; ?>, la commande Invite générerait «Hello World» et renverrait la saisie standard de l'utilisateur CLI CMD.

La raison pour laquelle votre appel >php ne fonctionne pas est probablement due à votre variable d'environnement PATH ne contenant pas l'emplacement correct pour PHP, modifiez vos variables système et ajoutez 'C:\xampp\php \;' dans la chaîne PATH. Cela devrait ensuite vous permettre d'appeler php C:\xamp\htdocs\html_playground\test.php pour le même résultat que ci-dessus.

1
JokerDan