从命令行运行 PHP 脚本

2021-12-27 00:00:00 command-line php

如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本?

How can I run a PHP script from the command line using the PHP interpreter which is used to parse web scripts?

我有一个从网络访问的 phpinfo.php 文件显示安装了 German.但是,如果我从命令行运行 phpinfo.php 使用 - php phpinfo.phpgrep for German>,没找到.所以这两个 PHP 文件是不同的.我需要运行一个脚本,其中安装了 Germanphp.

I have a phpinfo.php file which is accessed from the web shows that German is installed. However, if I run the phpinfo.php from the command line using - php phpinfo.php and grep for German, I don't find it. So both PHP files are different. I need to run a script which the php on which German is installed.

我该怎么做?

推荐答案

您应该检查您的服务器配置文件.查找以 LoadModule php 开头的行...可能有名为 mods 或类似名称的配置文件/目录.从那里开始.

You should check your server configuration files. Look for lines that start with LoadModule php... There probably are configuration files/directories named mods or something like that. Start from there.

您还可以检查 php -r 'phpinfo();' 的输出|grep php 并将行与来自 Web 服务器的 phpinfo(); 进行比较.

You could also check output from php -r 'phpinfo();' | grep php and compare lines to phpinfo(); from web server.

(因此您可以在控制台中粘贴/编写代码.)

(So you can paste/write code in the console.)

php -a

让它解析文件并输出到控制台:

php -f file.php

解析一个文件并输出到另一个文件:

php -f file.php > results.html

你还需要什么吗?

要仅运行一小部分、一行或类似的内容,您可以使用:

Do you need something else?

To run only a small part, one line or like, you can use:

php -r '$x = "Hello World"; echo "$x
";'

如果您运行的是 Linux,则在控制台执行 man php.

If you are running Linux then do man php at the console.

如果您需要/想要通过 fpm 运行 PHP(FastCGI Process Manager), 使用 cli fcgi:

If you need/want to run PHP through fpm (FastCGI Process Manager), use 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 套接字文件.

Where /var/run/php-fpm/php-fpm.sock is your php-fpm socket file.

相关文章