Я надеялся, что кто-нибудь сможет помочь мне. У меня есть сайт Magento, работающий на сервере Centos 7.6.
Теперь,сайт загружается некорректно и при просмотре журнала messages.log я вижу множество записей, в которых SElinux блокирует доступ. Я могу подтвердить, что это проблема SElinux, поскольку установка в разрешающем режиме устраняет проблему («используется свободно»).
Выполняя
sealert -l 3bedf708-7636-44d4-95f6-c98b8ea16687
, я вижу следующее:SELinux запрещает / usr / sbin / httpd доступ для записи на / var / www / html / MyMagentoSite / var / session /
Существуют различные записи для разных файлов и папок.
Могу ли я просто запустить chcon -R -t httpd_sys_rw_content_t / var / www / html / magentofoldername / *
, или что было бы лучше?
Это кажется нелогичным, в что я даю чтение и запись всем в папке magento.
Почему бы не следовать за Вашей интуицией и применять маркировку только к session
каталог (из Вашего сообщения об ошибке).
однако, интуиция не является лучшим помощником здесь, но можно сделать некоторые поиски на том, что является "ожидаемыми" маркировками, с помощью детективных навыков.
каталог сессии PHP По умолчанию /var/lib/php/session
.
, Если Вы делаете semanage fcontext -l | grep php
затем, Вы видите эту запись:
/var/lib/php(/.*)? all files system_u:object_r:httpd_var_lib_t:s0
, Таким образом, каталог сессии PHP, я предполагаю, должен быть маркирован как httpd_var_lib_t
.
Так:
chcon -R -t httpd_var_lib_t /var/www/html/magentofoldername/var/session
Если Вы будете использовать chcon
и после перезагрузки сервера то у Вас будет та же проблема, использовать semanage fcontext
таким образом:
semanage fcontext -a -t httpd_var_lib_t "/var/www/html/magentofoldername/var/session(/.*)?"
Теперь можно применить selinux полномочия:
restorecon -R -v -F /var/www/html/magentofoldername/var/session