首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从PHP Fedora 10调用系统命令和shell脚本

无法从PHP Fedora 10调用系统命令和shell脚本
EN

Stack Overflow用户
提问于 2009-03-12 05:00:50
回答 3查看 3.1K关注 0票数 0

我正在开发一个通过PHP和Apache在Fedora10机器上本地运行的应用程序。它依赖于在后台运行的进程。

上级希望能够通过浏览器启动/停止/重新启动进程。我试图通过让PHP使用exec()和shell_exec调用系统来实现这一点,但似乎行不通。

当我尝试使用"exec('processName')“启动该进程时,什么也没有发生。

当我尝试使用“exec(‘kill processName')”时,SELinux开始不断弹出警告,告诉我该进程已被允许(因为我将其设置为允许模式),但是它实际上并没有终止该进程!但这似乎在页面完全加载后仍在继续!?!?

我能够以类似的方式调用另一个脚本:"exec('/var/www/cgi-bin/ControlProgram START')“。所以我不太确定这两个调用/命令之间的主要区别是什么。

我还将脚本调用放到/etc/rc.local文件中,以便在登录时运行脚本。然而,我是否能够从PHP中删除此脚本,因为它由…系统?

当涉及到权限/SELinux时,我不是一个专家,所以不要在血淋淋的细节上浪费时间!提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-16 03:35:12

我相信我找到了问题所在。我仍然不确定问题是什么,但它看起来与文件/目录权限有关。当我将脚本移到我的/var/www/html目录中时,脚本运行了。我将它们移到/var/www/cgi-bin中,它们也可以在那里工作。因此,apache可能不能执行/var/www目录之外的脚本,或者至少不能直接执行。不过还是要感谢你的帮助!

票数 0
EN

Stack Overflow用户

发布于 2009-03-12 06:54:26

如果您拥有对此系统的管理控制权,则需要检查PHP配置(确保它是web服务器的配置文件)。

Safe_Mode将阻止PHP执行特定文件夹之外的任何内容。在共享主机环境中,这通常意味着您只能执行与您的home/www文件夹相关的内容--根据您的笔记,似乎就是这种情况。

票数 1
EN

Stack Overflow用户

发布于 2009-06-20 06:13:20

这听起来像是老式的unix权限和apache的操作方式。我确实记得(尽管已经过了一段时间),apache对它将执行的内容非常小心。仔细检查你的八进制数。

要验证它不是SELinux,您可以禁用它,而不是将其设置为permissive。尽管这将导致文件系统重新标记(或应该)。在这一点上,带有SELinux上下文的扩展属性可能会出现问题,并在再次执行时导致SELinux问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/637430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档