【问题标题】:Nginx/PHP-FPM exec another php scriptNginx/PHP-FPM exec 另一个 php 脚本
【发布时间】:2023-03-19 15:44:01
【问题描述】:

这行得通,所以 exec 功能没有被禁用。

exec('ls');

即使 script.php 有 777 chmod,这也不起作用。

exec('php script.php');

这也不行。

exec('php -v');

我尝试 chmod 和 chown /var/www/ 文件夹,但没有帮助。 我想这是由于 www-data 用户权限,看起来它无权访问多个 bin 文件。

我该如何解决这个问题?

【问题讨论】:

  • 路径中有 php 吗?也许你需要做类似/usr/bin/php 或它所在的任何地方
  • 为什么要使用 exec 在 php 文件中执行 php 脚本?为什么不使用include
  • 是的,PHP在路径中:/opt/php5/bin/php

标签: php ubuntu chmod user-permissions chown


【解决方案1】:

试试

which php 

然后获取路径并像这样放在exec()中

exec("/opt/local/bin/php -v");

【讨论】:

  • 有效!谢谢 :) ...但我不明白为什么会这样?
  • 它不起作用,因为它没有添加到运行 php-fpm 的用户或 nginx 的用户的路径中的 php 可执行文件 :) 这就是你需要使用绝对路径的原因
  • 我收到这条消息:“您可以在 3 分钟内接受答案”。耐心点:)
  • 有没有办法将脚本添加到 www-data 用户的路径?
【解决方案2】:

试试php -f script.php

我不是 100% 确定这是正确的,但我总是在传入文件时发送 -f 标志。

【讨论】:

  • -f 解析并执行 。这已经不言自明了!
  • 对不起,我没有阅读关于 php -v 也不起作用的部分。我只是在回答php script.php 部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
相关资源
最近更新 更多