Использование MariaDB, Apache, PHP 5.4.x, RHEL 7
Как мне разрешить запись файла configuration.php?
Установленный Joomla несколько раз, всегда заканчивающийся файлом конфигурации.php, не доступным для записи. Я продолжил, скопировал содержимое конфигурации и создал новый файл php, поместил его там, где живет Joomla, открыл права доступа, изменил на apache: apache, все еще ничего. Я ссылался на несколько статей, особенно эту:
Установка Joomla 3 Ошибка: ваш файл конфигурации или каталог не доступен для записи
Я также попытался создать пустой файл configuration.php и поместить его в корень joomla, открыв права доступа — не сработало.
Мое текущее состояние установки — файл конфигурации.php, но я не могу удалить каталог установки через веб-установщик (при условии, что я установил файл конфигурации на место и все еще не доступен для записи).
Я пробовал несколько настроек разрешений, а затем безуспешно пытался удалить каталог установки. Удаление каталога установки вручную с помощью rm -r приводит только к полностью недоступному сайту, что вынуждает меня стереть мои файлы joomla, базы данных и установить снова. Заранее спасибо.
Первое, что я хотел бы сделать, это проверить, какой пользователь php работает на вашем сервере, и сравнить это с владением файлами вашего сайта.
Создайте файл user.php в корне вашего домена с помощью
<?php echo exec('whoami'); ?>
затем откройте этот файл с помощью вашего браузера. Это даст вам имя пользователя, на котором работает php, как на вашем сервере. Это может быть apache, но это не так.
Сравните этого пользователя с правами на config.php и установку вашего сайта в целом.
Если вы загрузите новый сайт Joomla через SFTP и выполните стандартные шаги установки браузера, разрешения не должны быть проблемой. Если вы говорите, что загружаете zip-файл и используете терминальное соединение и SSH, убедитесь, что ваше SSH-соединение совпадает с пользователем php на вашем сервере.
Удачи!
Работая с моим сервером, обнаружил, что некоторые настройки sebool не позволяют Apache выполнять то, что ему нужно. Пройдя еще один шаг, мы определили, что для запуска httpd_can_sendmail необходимо использовать команды sebool, чтобы использовать функцию Sendmail. Надеюсь, это поможет кому-то там.
Команда, которая, казалось, сделала трюк была sudo chcon -R -t httpd_sys_rw_content_t / var / www / html
В нашем случае проблема была с разрешениями CentOS. Поэтому, если Joomla установлена на сервере с ОС CentOS, вам нужно изменить конфигурационный файл (/ etc / selinux / config), чтобы он выглядел так:
[root@host2a ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0
На самом деле, вы только устанавливаете SELINUX разрешающим.
Надеюсь это поможет.
постскриптум Решение работает и для RedHat.