首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >exec()通过命令行而不是web运行

exec()通过命令行而不是web运行
EN

Stack Overflow用户
提问于 2010-12-11 01:01:39
回答 4查看 2K关注 0票数 1

我有一个涉及exec()的PHP脚本,它可以在命令行中正常运行,但不能在web环境中运行。脚本很简单:

代码语言:javascript
复制
<?php exec('echo "wee" > /home/jason/wee.txt');

如果我将此脚本命名为wee.php并运行php wee.php,它将正常工作,并且可以编写wee.txt

如果我转到http://mysite.com/wee.php,脚本看起来运行得很好,但实际上并没有编写wee.txt

你知道为什么会发生这种事吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-11 01:04:09

web服务器以其他用户身份运行,该用户无权写入您的主目录。

票数 3
EN

Stack Overflow用户

发布于 2010-12-11 01:14:38

其他的帖子是正确的,暗示web服务器用户没有权限写入您的主目录。要查看它们是否正确,请尝试修改代码以写入/tmp/wee.txt。这应该是完全可写的。

另一种可能性是php可以配置为禁止调用exec()。请参阅http://www.cyberciti.biz/faq/linux-unix-apache-lighttpd-phpini-disable-functions/

票数 1
EN

Stack Overflow用户

发布于 2010-12-11 01:04:15

您的web服务器可能(正确地)没有写入主目录的适当权限。

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

https://stackoverflow.com/questions/4411356

复制
相关文章

相似问题

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