如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本?
我有一个phpinfo.php
可以从已安装的网络节目访问的文件German
。但是,如果我使用 -和forphpinfo.php
从命令行运行,我找不到它。所以两个 PHP 文件是不同的。我需要运行一个安装了它的脚本。php phpinfo.php
grep
German
php
German
我怎样才能做到这一点?
如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本?
我有一个phpinfo.php
可以从已安装的网络节目访问的文件German
。但是,如果我使用 -和forphpinfo.php
从命令行运行,我找不到它。所以两个 PHP 文件是不同的。我需要运行一个安装了它的脚本。php phpinfo.php
grep
German
php
German
我怎样才能做到这一点?
您应该检查您的服务器配置文件。查找以LoadModule php
... 开头的行,可能有命名的配置文件/目录mods
或类似名称。从那里开始。
您还可以检查来自 Web 服务器的输出php -r 'phpinfo();' | grep php
并比较phpinfo();
来自 Web 服务器的行。
php
交互式运行:(因此您可以在控制台中粘贴/编写代码。)
php -a
php -f file.php
php -f file.php > results.html
要只运行一小部分,一行或类似的,您可以使用:
php -r '$x = "Hello World"; echo "$x\n";'
如果您正在运行 Linux,请man php
在控制台中执行。
如果您需要/想要通过 fpm ( FastCGI Process Manager ) 运行 PHP,请使用 cli fcgi:
SCRIPT_NAME="file.php" SCRIP_FILENAME="file.php" REQUEST_METHOD="GET" cgi-fcgi -bind -connect "/var/run/php-fpm/php-fpm.sock"
其中/var/run/php-fpm/php-fpm.sock是您的 php-fpm 套接字文件。
在SUSE Linux上,PHP 有两种不同的配置文件:一种用于 Apache,另一种用于 CLI(命令行界面)。在/etc/php5/目录中,您将找到一个“apache2”目录和一个“cli”目录。每个都有一个“php.ini”文件。这些文件用于相同的目的(PHP 配置),但适用于两种不同的 PHP 运行方式。除其他外,这些文件加载 PHP 使用的模块。
如果您的操作系统相似,那么这两个文件可能不一样。您的 Apache php.ini可能正在加载德语模块,而 CLI php.ini没有。安装模块时(自动或手动),它可能只更新了 Apache php.ini文件。
您可以简单地将 Apache php.ini文件复制到该cli
目录中,以使 CLI 环境与 Apache 环境完全一样。
或者,您可以在 Apache 文件中找到加载德语模块的行,然后将其复制/粘贴到 CLI 文件中。
我一直在寻找Windows中这个问题的解决方案,似乎是如果你没有环境变量ok,你需要放置完整的目录。例如,与 PHP 在同一目录中的文件:
F:\myfolder\php\php.exe -f F:\myfolder\php\script.php