我有一个共享的托pipe服务器,与CentOS Linux和cPanel运行与mod_php Apache。 我们使用linux的用户配额来强制每个网站停留在他们购买的磁盘空间内。 但是,许多网站都有file upload系统,可以是公开的,也可以是pipe理员(例如CMS软件)。 因为这个软件在mod_php下运行,上传的文件最终属于Apache运行的用户,并且不计入用户的磁盘配额。
解决这个问题的唯一方法就是编写一个脚本,通过/ home中的每个目录来查看,并在public_html中显示所有文件,以便它们由正确的用户拥有,然后让此脚本每小时运行一次cron。 在写这样的脚本之前,有没有更好的解决scheme? (或者是否存在这样的脚本?)
编辑:我必须能够运行mod_php。 CGI PHP不是一个选项。
尝试使用mod_suphp(或适当的mod_suexec)。 将导致Apache在适当的用户下运行,所以他们的文件所有权将是正确的。
基本上,如果你不能在CGI模式下运行PHP,那就搞砸了。 你不能在文件上做一个chown,因为这样webserver以后不能修改它(这对于一些应用程序来说很重要),除非你想用你的权限和umasks来得到真正的怪异,并且每次都要处理权限SNAFU有些东西还没有用正确的umask进行预configuration。
不过,您对CGI模式下运行PHP的反对是毫无根据的。 我为一家拥有大量共享托pipe服务器的公司工作,我们通过suexec运行PHP,而且我们没有客户抱怨缺乏function。 是的,这个速度稍微慢一些,但是大多数PHP Web应用程序的效率低下,这个启动开销就会丢失。