laravel centOS 7 chmod 755/775 отказано в разрешении «не удалось открыть: не удалось открыть поток: отказано в разрешении», разрешено только в том случае, если я установил значение 777 - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть linux:

версия Linux 3.10.0-693.21.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (версия gcc 4.8.5 20150623 (Red Hat) 4.8.5-16) (GCC)) # 1 SMP Ср. 7 марта 19:03:37 UTC 2018

Если я установлю разрешение 777 для хранилища, Laravel работает, но если я установлю его на 755 или 775, он скажет:

"Поток или файл "/Home/admin/domains/linkshift.eu/public_html/storage/logs/laravel-2018-11-08.log" не удалось открыть: не удалось открыть поток: отказано в разрешении "

Я пытался найти ответ, но больше ничего не получалось, я пытался сделать Проблема с разрешениями в Laravel на CentOS но все равно не работает

Редактировать: у меня также установлен прямой администратор

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Похоже, файл журнала создан с использованием пользователя root, и вы запускаете laravel от другого пользователя. Убедитесь, что файл журнала написан тем же пользователем. Или дайте разрешение своему пользователю.

sudo chown -R laravel-user:laravel-user /path/to/your/laravel/root/directory

Запускать эти команды после каждого развертывания

chmod -R 775 storage/framework
chmod -R 775 storage/logs
chmod -R 775 bootstrap/cache

Все еще Если не работает, возможно, это также из-за SELinux.

Проверка статуса selinux на терминале:

sestatus

Если статус включен, написать команду для отключения SElinux (не рекомендуется)

setenforce Permissive

или вы можете сделать, как показано ниже.

yum install policycoreutils-python -y # might not be necessary, try the below first

semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/your/laravel/root/directory/storage(/.*)?" # add a new httpd read write content to sellinux for the specific folder, -m for modify
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/your/laravel/root/directory/bootstrap/cache(/.*)?" # same as the above for b/cache

restorecon -Rv /var/www/html/ # this command is very important to, it's like a restart to apply the new rules

Selinux предназначен для ограничения доступа даже для пользователей с правами root, так что только необходимые материалы могут быть доступны, по крайней мере, в общем обзоре, это дополнительная безопасность, отключение не является хорошей практикой, есть много ссылок, чтобы изучить Selinux, но для этого случая это даже не требуется.

0 голосов
/ 08 ноября 2018

Не могли бы вы показать результат

ls -l /home/admin/domains/linkshift.eu/public_html/storage/logs

и вы пробовали

php artisan config:cache
php artisan config:clear
composer dump-autoload -o
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...