【问题标题】:How to get path of the php binary on server where it is located如何在它所在的服务器上获取 php 二进制文件的路径
【发布时间】:2013-09-10 11:44:26
【问题描述】:

我在 PHP 中使用如下exec 命令:

exec("/usr/bin/php /path/to/Notification.php >> /path/to/log_file.log 2>&1 &");

在我的本地环境(MAMP)中,我知道PHP的安装路径,所以我可以将/usr/bin/php替换为/Applications/MAMP/bin/php/php5.4.10/bin/php。但是我不知道PHP安装(PHP二进制)在生产服务器上的位置。

【问题讨论】:

    标签: php binary installation production-environment installation-path


    【解决方案1】:

    通常是/usr/bin/php,但您可以尝试捕获并解析命令“whereis php”或“which php'”的输出。

    或者更好的是,使用常量PHP_BINARY(如果可用)。看看here

    【讨论】:

    • 我想在服务器(生产)上找到它,而不是在本地机器上。
    • 是的,所以让您的脚本在服务器上运行whereis php,然后使用正则表达式解析输出以获取路径。
    • 你能解释一下,什么是正则表达式?
    • 谢谢老兄。能告诉我默认在服务器上的位置吗?因为我没有权限在服务器上查看这个命令。
    • @Ponting 这不是命令,只需在 PHP 脚本中使用常量 PHP_BINARY
    【解决方案2】:

    大多数时候,PHP_BINARY predefined constant 应该可以完成这项工作。

    如果你需要更高级的东西,你可以使用 Symfony 的 Process component,通过使用它的 PhpExecutableFinder 类:

    // composer require symfony/process
    
    use Symfony\Component\Process\PhpExecutableFinder;
    
    (new PhpExecutableFinder)->find();
    

    【讨论】:

      【解决方案3】:

      尝试以下两个步骤: updatedb(只需要运行一次即可更新定位索引) 定位 php | grep -P "/php$"

      locate 命令应该显示服务器上所有文件名或文件夹名中带有“php”的文件。 “grep”管道将结果过滤到仅以“/php”结尾的内容。

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多