Ubuntu 16.04 和 nginx 的 Joomla 配置文件写入问题

Ubuntu 16.04 和 nginx 的 Joomla 配置文件写入问题

我不断收到 joomla 的错误,说它无法写入。

configuration.php
An error has occurred.
0 Could not write to the configuration file

我为文件夹 755 和文件 644 添加了推荐的权限,但没有成功。

我使用 root 身份登录,因此不确定 Joomla 使用什么登录名来写入文件

/var/www/websitecom.com/html

line on var/www/mywebsite.com/html folder
drwxr-xr-x 18 root root     4096 Oct 11 21:47 .
drwxr-xr-x  3 root root     4096 Oct 11 17:48 ..
-rw-r--r--  1 root root     3005 Aug 26 07:59 .htaccess
-rw-r--r--  1 root root    18092 Aug 26 07:59 LICENSE.txt
-rw-r--r--  1 root root     4883 Aug 26 07:59 README.txt
drwxr-xr-x 11 root root     4096 Sep 10 18:23 administrator
drwxr-xr-x  2 root root     4096 Sep 10 18:23 bin
drwxr-xr-x  6 root root     4096 Oct  8 17:43 cache
drwxr-xr-x  2 root root     4096 Sep 10 18:39 cli
drwxr-xr-x 23 root root     4096 Oct  5 18:57 components
-rw-r--r--  1 root root     3342 Oct 12 12:13 configuration.php
-rw-r--r--  1 root root      974 Oct  8 17:50 favicon-16x16.png
-rw-r--r--  1 root root     1810 Oct  8 17:50 favicon-32x32.png
-rw-r--r--  1 root root    15086 Oct  8 17:50 favicon.ico
-rw-r--r--  1 root root 79731414 Oct 11 18:10 food.zip
drwxr-xr-x 10 root root     4096 Oct  5 17:45 images
-rw-r--r--  1 root root 39626638 Oct  8 18:12 images.zip
drwxr-xr-x  2 root root     4096 Sep 10 18:23 includes
-rw-r--r--  1 root root      182 Oct 11 21:47 index.html
-rw-r--r--  1 root root     1420 Aug 26 07:59 index.php
drwxr-xr-x  4 root root     4096 Sep 10 18:23 language
drwxr-xr-x  5 root root     4096 Sep 10 18:23 layouts
drwxr-xr-x 13 root root     4096 Oct  5 11:31 libraries
drwxr-xr-x  2 root root     4096 Oct 12 13:12 logs
drwxr-xr-x 38 root root     4096 Oct  5 18:59 media
drwxr-xr-x 33 root root     4096 Oct  5 18:58 modules
drwxr-xr-x 21 root root     4096 Oct  5 18:59 plugins
-rw-r--r--  1 root root      842 Oct  1  2014 robots.txt
-rw-r--r--  1 root root      836 Aug 26 07:59 robots.txt.dist
drwxr-xr-x  6 root root     4096 Sep 10 18:23 templates
drwxr-xr-x  2 root root     4096 Oct 12 13:12 tmp
-rw-r--r--  1 root root     1690 Aug 26 07:59 web.config.txt

html 文件夹的权限

drwxr-xr-x  3 root root 4096 Oct 11 17:48 .
drwxr-xr-x: command not found
root@pitamyshawarma:~# drwxr-xr-x  4 root root 4096 Oct 11 17:32 ..
drwxr-xr-x: command not found
root@pitamyshawarma:~# drwxr-xr-x 18 root root 4096 Oct 11 21:47 html
drwxr-xr-x: command not found

答案1

NGINX Web 服务器在 Ubuntu 系统上默认以用户www-data和组身份运行www-data。 (Apache2 也是如此,但这不一定与这个问题相关) 并且 PHP 的默认配置也有这样的设置来使用用户www-data/组。

设置您的网站“目录”和文件的典型方法是将用户所有权设置为root(或您自己的用户),将组所有权设置为www-data并为该www-data组提供读/写权限。

我们只需几个命令即可完成此操作:

  1. 将所有文件和文件夹的用户/组所有权更改为root:www-data

    sudo chown -R root:www-data /var/www/websitecom.com/html
    
  2. 为目录和文件夹设置适当的权限。

    文件夹:775(rwxrwxr-x)- 允许所有者访问和组成员对文件夹进行读/写访问,并允许“其他用户”遍历目录树

    sudo find /var/www/websitecom.com/html -type d -exec chmod 775 {} \;`
    

    文件:660(rw-rw----)- 允许所有者访问和组成员对文件的读/写访问权限,禁止所有其他用户访问文件本身。

    sudo find /var/www/websitecom.com/html -type f -exec chmod 660 {} \;`
    
  3. 设置setgid目录上的位。这样,当文件由root或 Web 服务器创建时,新文件的“组”所有权将保持不变www-data

    sudo find /var/www/websitecom.com/html -type d -exec chmod g+s {} \;
    
  4. 确保文档根目录确实具有适当的权限。

    sudo chmod 770 /var/www/websitecom.com/html
    sudo chmod g+s /var/www/websitecom.com/html
    

现在,您的网络服务器应该能够写入新的配置文件。

相关内容