2012-01-29 54 views
1

,PHP都无法在文档根目录之外书写。使用典型的httpd安装来运行带有CentOS 5.7的VM。无论使用什么

我想写的/var/www/html之外的一个文件夹中,让在/var/somedir

  • 我chmoded somedir 777
  • 我把它chowned到Apache说:阿帕奇(根:阿帕奇没有任何工作)
  • PHP的safe_mode设置为关闭
  • PHP的doc_root的为空(即doc_root =

我无法使用rename()将某些内容移出文档根目录,也无法使用fwrite()在其外创建文件。

为了验证,我从php文件中执行了whoami,并且在浏览器中访问时echo'd /返回apache。

我想我已经打了谷歌约200搜索关于这个目前为止,我想我仍然失去了一些东西。

+3

你有使用'phpinfo()函数检查''你设置open_basedir'? – rdlowrey 2012-01-29 20:52:51

+1

导致“somedir”的目录是否也需要apache用户可读? – jlb 2012-01-29 20:56:09

+0

open_basedir被注释掉了,所以从我所读到的看来,它不会是这种情况下的一个因素? – 2012-01-29 21:00:00

回答

-1

原来,selinux实际上是启用的,虽然我的“linux小子”向我保证,它不是!

+0

这样的事情发生在别人那天;-)搜索不会伤害...:) http://stackoverflow.com/questions/8998743/rhel-php-writing-files-outside-var-www-html/8998776 – summea 2012-01-30 05:26:29

0

我永远不会建议任何人公开写入外部文档文件夹。事实上,保护措施是有一些东西的。

相反,你可以创建一个符号链接(LN),以只是一个选定的文件夹你想要的。这将是一个更加优雅的解决方案。

通过符号链接,您可以访问任何您想要的路径。

http://en.wikipedia.org/wiki/Symbolic_link

+0

不适合我,同样的问题 – kritzikratzi 2013-10-11 14:54:13

相关问题