我正在使用cPanel WHM运行fastcgi / suEXEC的centos 5.7
我正在尝试使一个特定的文件夹可写,以允许脚本上传文件,但似乎有问题。
我想要写入的文件夹(和所有recursion文件夹)是:
/home/mydomain/public_html/uploads
而且我只想让用户“songbanc”运行的脚本能够写入这个目录。
我已经尝试了以下内容:
chown -R songbanc /home/mydomain/public_html/uploads chmod -R 755 /home/mydomain/public_html/uploads
但它似乎仍然没有工作。
如果我通过FTP客户端手动设置权限到777,脚本将只上传文件。
我假设我误解了如何为fastcgi用户设置权限,希望有人可以帮助我。
提前致谢
编辑:在其中一个脚本或文件夹上运行getfacl给出以下内容:
# file: home/mydomain/public_html/ripples/1.jpg # owner: songbanc # group: songbanc
所以看起来主人是正确的? 我现在完全困惑!
编辑2:
情节变厚… lsattr和chattr正在返回不适当的设备的ioctl当阅读标志…
首先, suEXEC是一个Apache 1.x模块。 由于各种原因和支持问题,使用suPHP升级到Apache 2.x是正确的path。 看到我以前的post在这里如何升级。
可能发生的事情是我会简单介绍的一些事情,但是升级到suPHP很可能会解决这个问题。 需要注意的是,将PHP 5 Handler改为suPHP是这里的重要部分。
原因:
您没有运行suEXEC ,实际上脚本没有在用户名下执行。 您可以执行top -u username -d 1 ,其中用户名是帐户的用户名。 你应该注意到,每次运行的时候,php文件都会显示在屏幕上。
父文件夹没有正确的权限。 如果你正在运行一个较旧版本的Apache,并且我怀疑是因为你提到了suEXEC那么你可以逃脱这个。 如果你正在运行suPHP,这不会是一个问题,因为它会抓住它。 所以确保父文件夹有正确的权限。
您没有运行PHP。 suPHP或者suEXEC只适用于PHP脚本。 如果你正在运行其他任何东西,它们可能会也可能不会在该用户下运行,具体取决于你如何安装Apache。 大部分他们应该,但是谁知道!
拿走:用suPHP升级到Apache 2.x,你应该被覆盖。 只要确保您将PHP处理程序更改为suPHP,如我所发布的链接所述。