Назад | Перейти на главную страницу

Установка меток SElinux для сайта magento на Centos 7

Я надеялся, что кто-нибудь любезно поможет мне. У меня есть сайт 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.

Если вы используете 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

Почему бы не последовать своей интуиции и не нанести ярлык только на 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