Laravel 5.6 - в журналах отказано в разрешении / laravel.log ubuntu xenial 16.04 - PullRequest
0 голосов
/ 24 мая 2018

Посетил темы по этому вопросу, прежде чем безрезультатно - пытаясь избавиться от ошибки разрешений «Не удалось открыть поток» в logs / laravel.log, only , которая работает в данный момент, это настройкаправа доступа к каталогу для 777, что, конечно же, в рабочей среде живого сервера - крайне плохая практика.

Я следовал практически каждому учебнику, например, этот самый последний, с которым я сталкивался:

https://vijayasankarn.wordpress.com/2017/02/04/securely-setting-file-permissions-for-laravel-framework/

и это

https://www.howtoforge.com/tutorial/install-laravel-on-ubuntu-for-apache/

Вообще говоря, некоторые проверки, которые я провел, включают проверку владения / групп с помощью команды

ps aux | egrep '(apache|httpd)'

, который возвращает следующие результаты

root      6723  0.0  0.4  77944  4880 ?        Ss   14:53   0:00 /usr/sbin/apache2 -k start
www-data  6726  0.0  0.6 432716  6708 ?        Sl   14:53   0:00 /usr/sbin/apache2 -k start
www-data  6727  0.0  0.6 432772  6696 ?        Sl   14:53   0:00 /usr/sbin/apache2 -k start
ubuntu    6874  0.0  0.0  12948   948 pts/0    S+   15:07   0:00 grep -E --color=auto (apache|httpd)

Так что я знаю, что мой сервер принадлежит www-данным - даже выполнение изменений sudo chgrp, таких как ubuntu: www-data не оказало влияния.

У меня была такая же проблема в локальной среде.На производстве мой шаблон блейда практически отображается как необработанное текстовое содержимое, а не отображается страница ошибки Laravel - при условии, что это происходит из-за того, что начальная загрузка / кэш (для которого я также изменил разрешения и владельца) не может быть записана в / частичноЗаписано в.

Я также заметил, что во многих руководствах упоминается, что bootstrap / cache находится в папке / storage, но в более новых версиях Laravel это, похоже, перемещено в / project-directory / bootstrap, а не в /каталог проекта / хранилище / загрузчик и т. д.

Я использую Ubuntu Xenial 16.04 на экземпляре Amazon AWS.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 28 мая 2018

Так как @Bart заставил меня понять.Проблема здесь была смесью двух вещей.Во-первых, действительно была ошибка прав доступа, которая, по-видимому, была исправлена ​​chmod всей директорией проекта до 755 или 775 после chgrp до www-data - см. Комментарии в исходном вопросе для руководства по этому вопросу.

Во-вторых, из-за того, что мне пришлось переустанавливать apache в какой-то момент после удаления его из моей первоначальной установки сервера-лампы из-за некоторых неправильных настроек, это по какой-то причине вызвало отключение моего PHP на моем сервереи файлы php для apache (которые я обнаружил, назывались php.mod и php.load) пропали без вести.Это был либо этот, либо первоначальный переход, и обновление до 7.2 отключило мой PHP (это похоже на задокументированную ошибку Ubuntu, ссылка здесь https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893481).

Apache не упоминал ни одного PHP-файла в своем mods-enabled или mods-available папок. Поэтому я следовал приведенному здесь руководству, чтобы запустить и запустить его, но изменил переменные, чтобы они соответствовали моей текущей версии PHP (7.2) и указали на libphp7.2.so.

https://digitizor.com/how-to-fix-module-php5-does-not-exist-error-in-apache-linux/

Я также столкнулся с некоторыми ошибками, связанными с mcrypt, для моей конфигурации, в основном из-за того, что mcrypt больше не поддерживается в 7.2, так как он больше не поддерживается, и они постепенно прекращают работу, чтобы перейти к libsodium,но я все еще имел некоторые зависимости от этого, я полагаю. Я установил это через pecl, используя php-pear.

Были тонны других вещей, которые были ошибочны, что я не мог документировать, я настоятельно рекомендую всемчитая это, следуйте хорошему руководству в соответствии с вашей ОС и постарайтесь не возвращаться / не изменять исходную настройку LAMP / WAMP / MAMP и т. д.очень похоже на то, что я сделал (я думаю, что ручное удаление apache2 через purge, а затем переустановка спровоцировало проблемы на стороне сервера для начала).

После того, как мой PHP был включен, текст больше не выводил raw иизменения разрешений должны были работать, так как теперь я вижу страницу приветствия по умолчанию в Laravel.

Также при любых новых установках на «голые» серверы - пожалуйста, дважды проверьте, включен ли PHP для серверной системы, которую вы используете, наряду с PHPмод переписать, mbstring, dev и CLI.

...