【发布时间】:2012-12-12 05:13:48
【问题描述】:
我有一个 php 文件,需要从我的在 CodeIgniter 框架上运行的 PHP 应用程序在 CLI 中执行。我尝试了 exec 和 shell_exec 命令,它似乎没有启动该过程。请在下面找到我尝试执行的代码。
$phpPath = exec('which php');
$cmd = $phpPath.' '.dirname(__DIR__).'/API/notification/NotificationServer.php';
echo "<pre>".shell_exec($cmd)."</pre>";
当我尝试在终端中运行上述程序时,它执行得很好。一旦用户设置了会话,我需要自动触发它。
path/$cmd 变量打印
当我打印变量 $cmd 时,我得到以下输出,而在终端中给出的以下输出正常。
/usr/bin/php /Users/lalithb/Desktop/Android/AndroidWS/API/notification/NotificationServer.php
上述命令在终端中运行良好。当我尝试执行/shell_exec 时,它不起作用。
APACHE_ERROR 日志是:
sh: line 1: 2437 Trace/BPT trap: 5 /usr/bin/php
sh: line 1: /Users/lalithb/Desktop/Android/AndroidWS/API/notification/NotificationServer.php: Permission denied
有人可以帮我在 CLI 中运行上面的代码吗?
【问题讨论】:
-
那么,如果它没有启动进程,会发生什么?有任何错误、警告或通知吗?确保您已将
error_reporting一路向上。也许您需要指定php二进制文件和您尝试调用的脚本的完整路径? -
我已经提供了 php 二进制文件的完整路径,我无法设置权限。我没有对我正在使用的服务器的 sudo 访问权限,有没有办法运行上面的代码?
-
@Charles 谢谢,我找到了解决方案。
标签: codeigniter php