httpd apache2 的权限并运行某些 php 命令

httpd apache2 的权限并运行某些 php 命令

我运行了一些递归 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 服务器可以读写执行它即可。

相关内容