Pour exécuter un fichier PHP, ouvrez un terminal dans son dossier et tapez php index.php. PHP exécute le fichier et affiche sa sortie dans le terminal. Pour voir une page PHP dans un navigateur, lancez le serveur intégré avec php -S localhost:8000 et ouvrez http://localhost:8000.
php index.php
Un premier index.php peut tenir en une ligne. Cliquez sur Run : c'est exactement ce qu'affiche php index.php.
Le code PHP se place après la balise <?php. Tout ce qui précède cette balise est affiché comme du texte brut, et c'est ainsi que PHP mélange code et HTML.
Exécuter un fichier PHP en ligne de commande
La CLI de PHP (interface en ligne de commande) exécute un script une fois puis s'arrête. PHP doit être installé ; si php -v affiche une erreur, consultez d'abord installer PHP.
cd ~/projects/hello
php index.php # run the file
php -l index.php # only check the syntax ("lint")
php index.php > out.txt # save the output to a file
php -l est utile avant d'envoyer un fichier sur le serveur : il signale une erreur de syntaxe avec son numéro de ligne, ou affiche No syntax errors detected in index.php.
Passer des arguments avec $argv
Les mots placés après le nom du fichier arrivent dans $argv. $argv[0] est toujours le nom du script lui-même et $argc le nombre d'éléments, ce nom compris. Ici le bloc s'exécute sans argument supplémentaire, donc seul le nom est présent :
Sur votre machine, php index.php Ada 3 affiche la salutation trois fois. Les valeurs de repli ?? permettent au script de fonctionner quand un argument manque. Pour des options nommées comme --name=Ada, utilisez getopt :
<?php
// php index.php --name=Ada --verbose
$opts = getopt('', ['name:', 'verbose']);
echo "Hello, " . ($opts['name'] ?? 'world') . "\n";
if (isset($opts['verbose'])) {
echo "Verbose mode\n";
}
Exécuter PHP dans le navigateur avec php -S
PHP intègre un serveur web de développement. Lancez-le dans le dossier qui contient vos fichiers :
php -S localhost:8000
[Sat Oct 3 07:21:34 2026] PHP 8.3.19 Development Server (http://localhost:8000) started
http://localhost:8000/ exécute maintenant index.php, et http://localhost:8000/about.php exécute about.php. Chaque chargement de page exécute à nouveau le fichier, avec la query string dans $_GET. Le bloc ci-dessous se comporte de la même manière : exécutez-le, cliquez sur un lien, et le script s'exécute à nouveau avec $_GET['page'] défini.
Options utiles :
php -S localhost:8000 -t public # serve the public/ folder as the web root
php -S 0.0.0.0:8000 # reachable from other devices on your network
php -S localhost:8000 router.php # send every request through router.php
Le serveur intégré traite une requête à la fois et sert uniquement au développement. En production, PHP tourne derrière Nginx ou Apache, généralement via PHP-FPM.
Vérifier comment le script a été lancé
PHP_SAPI indique quelle « API serveur » exécute le script : cli dans un terminal, cli-server sous php -S, et fpm-fcgi ou apache2handler derrière un vrai serveur web. Les scripts qui ne doivent tourner que dans un terminal le vérifient en premier :
Exécuter une seule ligne avec php -r
Pour un test rapide, pas besoin de fichier. php -r exécute le code que vous lui passez, sans la balise <?php :
php -r 'echo date("Y-m-d"), PHP_EOL;'
php -r 'var_dump(0.1 + 0.2 == 0.3);'
Sous cmd sur Windows, entourez le code de guillemets doubles et utilisez des guillemets simples à l'intérieur. Pour plusieurs lignes, php -a ouvre un shell interactif où chaque instruction s'exécute quand vous appuyez sur Entrée.
Rendre un script exécutable sur macOS et Linux
Ajoutez une ligne shebang avant <?php et rendez le fichier exécutable. La ligne shebang n'est pas affichée :
#!/usr/bin/env php
<?php
echo "Backup started\n";
chmod +x backup.php
./backup.php
C'est ainsi que les scripts PHP s'exécutent depuis cron : 0 3 * * * /usr/bin/php /home/me/backup.php.
Codes de sortie des scripts
Un script en ligne de commande signale sa réussite ou son échec par son code de sortie, que les scripts shell et cron peuvent vérifier. exit(0) signifie succès, tout autre nombre signifie échec :
<?php
$file = $argv[1] ?? '';
if (!is_file($file)) {
fwrite(STDERR, "File not found: $file\n");
exit(1);
}
echo "Processing $file\n";
exit(0);
Erreur fréquente : lancer le mauvais fichier ou le mauvais dossier
Could not open input file: index.php signifie que PHP ne trouve pas le fichier depuis l'emplacement du terminal. Vérifiez le dossier courant avec pwd (ou cd sur Windows), puis placez-vous dans le projet avec cd ou donnez le chemin complet : php ~/projects/hello/index.php. Avec php -S, une erreur 404 sur une page dont vous savez qu'elle existe signifie en général que le serveur a été lancé dans un autre dossier ; arrêtez-le avec Ctrl+C et relancez-le au bon endroit, ou passez le dossier avec -t. Si le fichier s'exécute mais affiche une page blanche, activez l'affichage des erreurs pour voir ce qui ne va pas.
Questions fréquentes
Comment exécuter un fichier PHP dans le navigateur ?
Lancez le serveur intégré dans le dossier qui contient le fichier avec php -S localhost:8000, puis ouvrez http://localhost:8000/yourfile.php. Ouvrir le fichier directement depuis le disque ne fonctionne pas, car rien n'exécute le code PHP.
Comment passer des arguments à un script PHP ?
Écrivez-les après le nom du fichier : php report.php 2026 sales. Dans le script, $argv vaut le tableau ['report.php', '2026', 'sales'] et $argc vaut 3. Le premier élément est toujours le nom du script.
Comment exécuter une ligne de PHP sans fichier ?
Utilisez php -r sans la balise <?php : php -r 'echo strtoupper("hi"), PHP_EOL;'. Pour plusieurs lignes, php -a ouvre un shell interactif.
Comment savoir si PHP s'exécute en ligne de commande ou via un serveur web ?
Vérifiez PHP_SAPI (ou php_sapi_name()). Il vaut "cli" dans un terminal, "cli-server" sous php -S, et quelque chose comme "fpm-fcgi" ou "apache2handler" derrière un serveur web.