【问题标题】:Execute a php script within a running php script在正在运行的 php 脚本中执行 php 脚本
【发布时间】:2014-12-07 12:52:21
【问题描述】:

我正在尝试从 php 文件执行 php 脚本,但似乎我无法获得 php.exe 的正确 bin 路径。据我所知,它没有做任何事情。让我们假设 service-oauth.php 是一个简单的 echo。

EDIT3: 我使用php-cli 而不是php 或php bin 路径修复了它,我必须承认我之前尝试过这个,但是当我尝试这个(我尝试的第一件事之一)时似乎有其他东西关闭了。 Keith 在Can't execute PHP script using PHP exec 中提供的答案,所以它最终成为重复的:S,感谢评论者的帮助。

EDIT2: 我尝试按照@Dagon 的建议直接从服务器控制台调用脚本,并且它使用 php env 变量和 bin 的 php 路径都可以工作,很明显路径是正确的,但是有些东西正在阻止获取输出或使用 php exec() 函数运行脚本

service-oauth.php

<?php echo "Hello there"; ?>

这是我的脚本:

   $basePath =  plugin_dir_path( __FILE__ ); # Wordpress function, asume it works.
   $fileToExc = $basePath . 'service-oauth.php';
   # PHP_BINDIR: /usr/local/bin
   # PHP_BINARY: /usr/bin/php
   # exec("which php") /usr/bin/php
   $phpPath = exec("which php");
   $output = exec("$phpPath $fileToExc");
   print_r($output);

stackoverflow 上有很多答案推荐我在代码中注释的这 3 个选项中的任何一个,但它们似乎都不起作用,不确定是路径还是其他不起作用的东西。我已经在我的本地机器(windows)上测试了这个脚本并且它可以工作(即使我不得不使用硬编码的路径,因为我没有得到正确的路径),但我正在我的生产服务器上测试(linux ) 并且不工作。

注意:让我明确一点,这不是重复的,我在这些帖子和许多其他帖子中尝试了以下答案,但没有为我工作:

How to get path of the php binary on server where it is located

Can't execute PHP script using PHP exec

PHP exec to run a file

How to call shell script from another shell script?

Execute a PHP script from another PHP script

我还尝试在二进制文件(windows localmachine)的末尾使用 .exe,使用 php-cli 而不是 php,并且我已经测试了 excec 函数并且它可以工作,但在这种情况下不是。还尝试在被调用脚本中使用 shebang。 这可能是我不知道的简单事情,但我已经花了很多时间搜索和测试,但到目前为止什么都没有。任何帮助表示赞赏。

编辑:

在 bin 文件夹上使用 scandir 显示 scandir("/usr/bin/")

Array(
 ...
 [632] => php
 [633] => php-cgi
 [634] => php-cli
 ...
)

使用 ini_get('safe_mode') 测试是否处于安全模式,但似乎关闭。

【问题讨论】:

  • 在大多数情况下,您只需要$output = exec("php $fileToExc");
  • 对不起,我忘了说这是我尝试的第一件事,但谢谢=S
  • 从那里开始有错误? “php 文件名”在命令行上工作吗?
  • 没有错误,只是没有输出
  • 您是否检查过安全模式已关闭和/或在您的 php.ini 中启用了 exec? cyberciti.biz/faq/…

标签: php linux exec


【解决方案1】:

我使用 php-cli 而不是 php 或 php bin 路径修复了它,我必须承认我之前尝试过这个,但是当我尝试这个时似乎有其他问题(我尝试的第一件事之一)。基思在Can't execute PHP script using PHP exec 中提供的答案,因此它最终成为重复的:S,感谢评论者的帮助。 ——扎根

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2012-10-09
    • 2011-07-10
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多