请停止建议使用777.您正在使您的文件可写入所有人,这几乎意味着您失去了许可系统设计的所有安全性。如果您建议这样做,请考虑它可能对配置不良的网络服务器造成的后果:通过覆盖文件来“骇客”网站变得非常容易。所以,不要。
迈克尔:有一个完全可行的原因,为什么您的脚本无法创建目录,运行PHP(可能与Apache不同)的用户根本没有足够的权限来执行此操作。而不是更改权限,我认为您应该解决潜在的问题,这意味着您的文件拥有错误,或者Apache或PHP在错误的用户下运行。
现在,您似乎已经安装了自己的服务器。您可以通过运行一个简单的脚本来确定哪个用户正在运行PHP,该脚本调用大多数linux中安装的“whoami”程序:
echo `whoami`;
如果一切正常,您应该看到PHP运行的用户名。根据您的操作系统,这可能是“www-data”,“nobody”,“http”或任何变体。如果您的网站是唯一运行的网站,那么可以通过更改Apache下的用户进行更改。如果你有Debian,像我一样,你可以编辑文件/ etc / apache2 / envvars(作为root用户),并更改APACHE_RUN_USER的值。根据您的操作系统,此变量可能设置在不同的配置文件中,因此,如果在/ etc / apache2 / envvars中找不到该变量,请尝试使用以下命令搜索变量声明:
$ grep -R "APACHE_RUN_USER=" .
从所有apache配置文件所在的目录。
如果您不是服务器上唯一的用户,您可能需要考虑为每个网站创建用户帐户,并使用类似Apache2-MPM-ITK的方式根据调用的网站更改RUN_USER。此外,请确保PHP进程正在运行的用户是文件的所有者和目录。你可以通过使用chown来实现:
% chown theuser:theuser -R /var/www/website/
如果PHP使用自己的用户运行,并且是需要写入的文件和目录的所有者,那么权限700就足够了。我倾向于为大多数文件自己使用750,因为我通常在该组中有多个用户,他们可以具有阅读权限。所以,您可以更改权限:
% chmod 0750 -R /var/www/website/
应该是如果您有任何问题,请告诉我们,请不要接触任何本质上告诉您的建议:如果安全性打扰您,请删除安全性。