从命令行运行 PHP 脚本

2022-08-30 07:46:50

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

我有一个从网络节目访问的文件已安装。但是,如果我使用 - 和 for 从命令行运行 ,我找不到它。所以两个PHP文件是不同的。我需要运行一个安装在其上的脚本。phpinfo.phpGermanphpinfo.phpphp phpinfo.phpgrepGermanphpGerman

我该怎么做?


答案 1

您应该检查服务器配置文件。查找以 ...可能有配置文件/目录命名或类似的东西。从那里开始。LoadModule phpmods

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

要以交互方式运行: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 套接字文件。


答案 2

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环境与Apache环境完全相同。cli

或者,您可以在Apache文件中找到加载德语模块的行,然后将其复制/粘贴到CLI文件中。


推荐