У меня есть Ubuntu и Laravel 5 framework, и я вижу белый экран в браузере.
Когда я изменяю разрешения storage/logs
, это помогает, но я должен делать это каждый день из-за «ежедневной» конфигурации журнала.Разрешение на использование Laravel 5 при записи в файл журнала
ответ
Короткий ответ:
sudo chmod -R 777 vendor storage
echo "umask 000" | sudo tee -a /etc/resolv.conf
Обширный ответ sudo service apache2 restart
:
При запуске Laravel 5 рамок на сервере Apache с включенным по умолчанию 'ежедневно' вариант для создания файлов журналов, иногда вы сталкиваетесь с запретом записи в лог-файлы из-за прав доступа к файлам.
Усушливо, когда у вас есть проект php, все файлы принадлежат пользователю www-data
, и вашему текущему пользователю не нужно писать в лог-файлы.
Что касается Laravel, вам необходимо написать два разных процесса в ваших файлах журналов:
1) Сервер Apache (пользователь www-data
), когда вы что-то делаете в своем браузере;
2) Процесс Php (ваш пользователь) при выполнении команды php artisan something
в командной строке.
Конечно, вы можете выполнить sudo -u www-data php artisan your_command (например, предложенный here) каждый раз, когда вы хотите использовать ремесленник, но это немного раздражает.
Прежде всего вам необходимо предоставить разрешения для каталогов поставщиков и хранилищ для пользователя Apache. Самый простой способ (но не самый лучший), чтобы выполнить: sudo chmod -R 777 vendor storage
Теперь давайте посмотрим, что происходит, когда файл_журнала создает в обоих случаях.
Если первоначально LOGFILE storage/logs/laravel-2015-mm-dd.log
был создан по ошибке, поднятого php artisan something
команды (случай 2), лог-файл будет иметь
`-rw-rw-r-- your_user:your_user`
разрешения.
Если он был создан ваш сервер Apache (случай 1), который Ussually запуска под www-data
пользователя, разрешения будут выглядеть следующим образом:
-rw-r-r-- www-data:www-data
Итак, мое предложение изменить permissins для вновь созданных файлов с помощью Apache.
Давайте добавим строку umask 000
в файл /etc/resolv.conf
.
echo "umask 000" | sudo tee -a /etc/resolv.conf
Теперь
sudo service apache2 restart
Вот так.
Знайте, это решение применимо только к среде разработки , что связано с возможным риском обеспечения безопасности.
Разрешения для каталогов storage
и vendor
должны оставаться на 775
, по очевидным соображениям безопасности.
Однако, как ваш компьютер, так и ваш сервер Apache должны иметь возможность писать в этих папках. Пример: когда вы запускаете команды типа php artisan
, ваш компьютер должен записывать в файл журналов в storage
.
Все, что вам нужно сделать, это дать право собственности папки для Apache:
sudo chown www-data:www-data /path/to/your/project/vendor
sudo chown www-data:www-data /path/to/your/project/storage
Затем вам нужно добавить свой компьютер (на который ссылается это username
) к группе, к которой принадлежит сервер Apache. Как так:
sudo usermod -a -G www-data userName
Чаще всего, это groupName
www-data
но вы можете заменить его с правильной группой.
К несчастью, ваш подход не помог бы. По умолчанию Apache создает новые файлы с разрешениями 644 (-rw-r-r--). Это означает, что ремесленник не может записать в тот же файл, принадлежит ли он группе www-data или нет. – ademin
Вы правы. Я удалю свой ответ. Однако вы должны подумать о добавлении пользователя в группу www-data и сохранить 775, а не 777 всю папку. Нам нужно решение, которое тоже работает для производства. –
- chmod 777 - это, в общем, риск для безопасности чрезвычайно рискованный.
chmod 775 для хранения папки в порядке, учитывая пользователя также
принадлежит к группе веб-серверов.с -R очень рискованно, поскольку для файлов разрешения на выполнение вообще не требуются.
chmod 664 для файлов внутри хранения. chmod 775 для папок внутри
- 1. Разрешение отклонено при попытке записи в файл журнала
- 2. Разрешение Отказано при записи файла журнала
- 3. Laravel 5 разрешение на хранение
- 4. Использование php для записи в файл журнала
- 5. Разрешение вопроса laravel 5 storeas()
- 6. Разрешение отклонено при попытке записи в файл
- 7. Открыть файл журнала календаря при записи в
- 8. Установить разрешение на файл в java 5
- 9. разрешено разрешение crontab при записи вывода в файл
- 10. Laravel Файл положил разрешение Отказано на Windows,
- 11. Файл журнала Kohana доступен для записи, но разрешение отклонено
- 12. Laravel 5 Разрешение зависимостей в ServiceProvider
- 13. разрешение на использование учетной записи gmail
- 14. Laravel 5 предотвращает «использование»
- 15. Pentaho Kettle - Ошибка записи в файл журнала
- 16. создать файл журнала на внешнем сервере-Laravel
- 17. Записи Laravel и файлы журнала ошибок огромны
- 18. Laravel 5 - Файл :: makedirectory
- 19. Использование Laravel 5 Модель
- 20. Разрешение токена для Laravel 5 RESTful API
- 21. давали разрешение на новую роль в Laravel 5
- 22. файл журнала Laravel по дате
- 23. использование Ajax в Laravel 5
- 24. Laravel 5> Использование монологического процессора самоанализа
- 25. Usinf System.IO.FileSystemWatcher для записи в файл журнала при создании файла
- 26. Разрешение отклонено при записи в файл в Python
- 27. Laravel 5 - не могу получить записи
- 28. Разрешение на использование в Phonegap
- 29. Не удается загрузить файл в laravel 5
- 30. Laravel 5 - изменить местоположение журнала по умолчанию, переместить файл журнала за пределы приложения
tbh, вы никогда не должны хотеть chmod 777, когда-либо. – Gooey
Любое обновление о том, как это сделать с помощью производственного сервера? – PickYourPoison