如何使用用于解析Web脚本的PHP解释器从命令行运行PHP脚本?
我有一个phpinfo.php
文件,可以从German
安装的Web显示中访问。但是,如果我phpinfo.php
使用-php phpinfo.php
和grep
for从命令行运行,则German
找不到它。因此,两个php都不相同。我需要运行该脚本php
上German
安装。
我怎样才能做到这一点?
如何使用用于解析Web脚本的PHP解释器从命令行运行PHP脚本?
我有一个phpinfo.php
文件,可以从German
安装的Web显示中访问。但是,如果我phpinfo.php
使用-php phpinfo.php
和grep
for从命令行运行,则German
找不到它。因此,两个php都不相同。我需要运行该脚本php
上German
安装。
我怎样才能做到这一点?
phpinfo();
到您的问题中。还更新了我的答案。
Answers:
经过误会,我终于明白了你要做什么。您应该检查服务器配置文件;您在使用apache2或其他服务器软件吗?
寻找以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运行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套接字文件。
which php
用来告诉您默认情况下正在运行哪个可执行文件。要使用其他可执行文件,您必须指定要使用的可执行文件的完整路径:/path/to/specific/php -f file.php > results.html
我正在Windows中寻找解决此问题的方法,似乎如果您没有vars好的环境,则需要放置完整的目录。例如。文件位于与PHP相同的目录中:
F:\myfolder\php\php.exe -f F:\myfolder\php\script.php
>
处逐字运行,开始时可能会重定向-f ...
(可能是错误)输出到php.exe文件中,并清除内容。
在SuSE上,有两个用于PHP的不同配置文件:一个用于Apache,一个用于CLI(命令行界面)。在/ etc / php5 /目录中,您将找到“ apache2”目录和“ cli”目录。每个都有一个“ php.ini”文件。这些文件具有相同的目的(php配置),但适用于运行PHP的两种不同方式。这些文件除其他外,将加载PHP使用的模块。
如果您的操作系统相似,则这两个文件可能不相同。您的Apache php.ini可能正在加载gearman模块,而cli php.ini则没有。安装模块(自动或手动)后,它可能仅更新了Apache php.ini文件。
您可以简单地将Apache php.ini文件复制到cli目录中,以使CLI环境与Apache环境完全相同。
或者,您可以在Apache文件中找到加载gearman模块的行,然后将其复制/粘贴到CLI文件中。
php -i
和解析