Проблема записи файла конфигурации Joomla с Ubuntu 16.04 и nginx

Я продолжаю получать ошибки от 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

Premissions для папки 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 работает как пользователь www-data и группа www-data по умолчанию в системах Ubuntu. (Как и Apache2, но это не обязательно относится к этому вопросу)

Типичный способ настроить "каталог" и файлы вашего сайта - установить для пользователя 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 или веб-сервер, "группа" владение новыми файлами останется www-data,

    sudo find /var/www/websitecom.com/html -type d -exec chmod g+s {} \;
    
  4. Убедитесь, что у docroot действительно есть необходимые разрешения.

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

Теперь ваш веб-сервер должен иметь возможность записи в новый файл конфигурации.

Другие вопросы по тегам