Le mode ligne complet de php, à savoir php-cli, est appelé dans la documentation officielle : CLI SAPI (Server Application Programming Interface, port de programmation d'application serveur). Cela semble compliqué. En fait, ce nom est dérivé du fait que PHP était à l’origine un langage de script côté serveur.
Différences par rapport au mode serveur
Le mode serveur a principalement deux modes de fonctionnement : en mode serveur Web ou en programme exécutable cgi, par exemple. en tant que module dans apach (tel que : php5apache2.dll) ; ce dernier en tant que programme exécutable, tel que php-cig Le remplacement actuel est php-fpm (FastCGI Process Manager
Regardez php -). configuration fpm. Sur le serveur, mettez un fichier script avec le contenu :
<?php phpinfo(); ?>
Sortie :
... Server API FPM/FastCGI Virtual Directory Support disabled Configuration File (php.ini) Path /etc/php7 Loaded Configuration File /etc/php7/php.ini Scan this dir for additional .ini files /etc/php7/conf.d ...
Instructions : Le fichier de configuration est /etc/php7/php.ini /etc/php7/conf.d
Regardez à nouveau le fichier de configuration du mode cli. Exécutez
php -r "phpinfo();"
-r, ce qui signifie exécuter l'ensemble complet. Le résultat est :
... Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc/php/7.0/cli Loaded Configuration File => /etc/php/7.0/cli/php.ini Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-opcache.ini, ...
Le chemin du fichier de configuration est : /. etc/php/7.0 /cli/php.ini et php-fpm sont différents.
J'entends souvent des gens dire que PHP ne peut être utilisé que comme script de serveur temporaire et ne peut pas être utilisé pour un travail à long terme, et que la configuration de la sécurité affectera la ligne de commande, etc.
Autres différences
le mode cli définit trois constantes STDIN, STDOUT, STDERR telles que : $stderr = fopen('php://stderr', 'w'; );
CLI SAPI ne changera pas le répertoire actuel par le répertoire où se trouve le script d'exécution.
php en tant que script shell
a Il existe deux méthodes pour utiliser le script php comme script shell, tel que script :
hello.php
<?php echo "hello world!"; var_dump($argv); ?>
Méthode 1, paramètres du script php
~php hello.php -s 'me' hello world array(3) { [0]=> string(9) "hello.php" [1]=> string(2) "-s" [2]=> string(2) "me" }
Méthode 2, ajoutez
à l'en-tête du fichier php#!/usr/bin/php
Puis chmod u+x hello.php
et exécutez ./hello.php
hello world array(1) { [0]=> string(11) "./hello.php" }
Recommandations associées :
Tutoriel vidéo PHP : https://www.php.cn/course/list/29/type/2.html
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!