我运行了一些递归 Linux 命令,改变了我所有网站文件的权限。
所有文件现在都像
-rwxrwxrwx
所有的字典都是如此。
drwxrwxrwx
我不知道这是否与我的问题有任何关系..因为我昨天已经改变了它并且它仍然有效..但是今天我决定将 PHP 从 5.1.6 更新到 5.3 并且我重新启动了 apache..
我猜可能是因为两个原因。一是新的 PHP 不知怎么搞砸了。二是我昨天设置的权限在今天我重启 Apache 时生效了。
顺便说一下,错误如下。
PHP Warning: move_uploaded_file(/var/www/html/test.zip): failed to open stream: Permission denied in /var/www/html/*snipped*/upload.php on line 86, referer: http://foobar.com/*snipped*/upload.php?dir=/
PHP Warning: move_uploaded_file(): Unable to move '/tmp/php7qcj4A' to '/var/www/html/test.zip' in /var/www/html/*snipped*/upload.php on line 86, referer: http://foobar.com/*snipped*/upload.php?dir=/
以及其他命令mkdir()
现在都失败了。
答案1
如果/var/www/html/
保存了所有 Web 文件,则必须确保 Web 服务器用户具有访问该目录的适当权限。您可以通过将目录的所有者递归更改为 Web 服务器用户来解决此问题
chown -R www-data.www-data /var/www/html/
(检查您的 apache 配置中的用户指令并从那里获取值。它不一定是 www-data)。
下一步是再次删除“777-junk”。在全球范围内打开目录永远不是一个好主意,而且几乎也不需要。即使是临时、缓存或其他类似的文件夹也不需要。只需确保 Web 服务器可以读写执行它即可。