当前位置: 首页 > 面试题库 >

如何调试exec()问题?

庄星汉
2023-03-14
问题内容

exec命令在我的服务器上不起作用,它什么也不做,我已经关闭了safe_mode,并验证了所有控制台命令都在工作,我已经尝试了绝对路径。我已经检查了应用程序的权限,并且我需要的所有应用程序都具有执行权限。我不知道该怎么办,这是我尝试过的代码的摘要。

echo exec('/usr/bin/whoami');

echo exec('whoami');

exec('whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

exec('/usr/bin/whoami 2>&1',$output,$return_val);
if($return_val !== 0) {
    echo 'Error<br>';
    print_r($output);   
}

最后两个代码显示:

Error
Array ( )

我已经联系了服务器服务,他们无法帮助我,他们不知道exec命令为什么不起作用。


问题答案:

看看/etc/php.ini,在下面:

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.disable-functions
disable_functions =

确保exec没有像这样列出:

disable_functions=exec

如果是这样,请将其删除并重新启动apache。

为了便于调试,我通常喜欢手动执行php文件(可以在不将其设置为主要ini的情况下请求更多错误)。为此,添加标题:

#!/usr/bin/php
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);

到文件的开头,请使用授予其权限chmod +x myscript.php并执行./myscript.php。这非常注意,尤其是在繁忙的服务器上,该服务器向日志文件写入了大量内容。

编辑

听起来像是 权限 问题。创建一个简单的bash脚本,echo "helo world"然后尝试运行它。确保您对该文件
以及包含该文件的文件夹 具有权限。您应该只做chmod 755测试。



 类似资料:
  • 问题内容: 我有一个C linux应用程序(A),它在启动时会生成另一个进程(P)。当我想调试PI时,像往常一样启动A,然后将ddd / gdb连接到P。 当我想调试P的入口点(main的开始)时出现问题。如果我按照通常的方法将调试器连接到P时已经很晚了。我发现的解决方案是在P主程序的开头插入一个睡眠,因此我有时间与gdb连接,但这不是一个非常好的解决方案。 我也尝试过使用,但似乎不起作用。 你有

  • 问题内容: 我经常发现自己想调试CSS布局问题,这些问题涉及Java语言引起的DOM更改,以响应悬停事件或由于:hover选择器而导致的不同CSS规则。 通常,我会使用Firebug来检查给我带来麻烦的元素,并查看其CSS属性是什么,以及这些属性来自何处。但是,当涉及到悬停时,这将变得不可能,因为一旦将鼠标移到Firebug面板上,感兴趣的元素就不再悬停,适用的CSS规则也会不同,并且(在这种情况

  • 已经试着调试了4天了。我有一个ASP.NET Core2Web应用程序,我试图在Redhat Linux7.1Systemd中运行。dll在手动运行时工作正常,但在尝试通过SystemD运行时失败。 systemctl的输出 web.service-WebServiceLayer loaded:loaded(/etc/systemd/user/web.service;已启用;供应商预置:>已禁用)

  • 到目前为止,我的代码在启动时查找主题和队列,并创建缺少的任何内容。这似乎起作用了,我可以在AWS管理控制台中看到SNS主题和SQS队列,并且我可以看到队列订阅了该主题,但是当我将消息发布到该主题时,队列中没有任何东西结束。 即使我使用管理控制台中的“publish”按钮手动发布消息,队列仍然是空的。 我把主题和队列上的权限都改成了‘每个人都可以做每件事’就是为了消除这种可能性。我的代码收到一个消息

  • 我无法运行php脚本,我需要使用这些脚本启动和停止在本地计算机上运行的网络摄像头服务。我在日志中找不到任何东西来说明脚本为什么不工作。 我承认在PHP方面受到了严重的阻碍,尤其是服务器端脚本。 该环境是Debian Jesse,运行Nginx,安装了所有必需的SSH和PHP模块 我已将www数据添加到sudoers文件中,其中包含: 在以下位置为www数据启用$PATH环境: 外壳脚本驻留在...

  • 我下载这个例子https://github.com/angular/angular2-seed.我使用webstrom编辑器,然后使用npm安装,然后使用npm启动。。应用程序运行正常,但我无法调试应用程序。。我将如何调试应用程序?有什么方法可以调试应用程序吗 我遵循所有步骤