Intereting Posts
PHP pthreads: Неустранимая ошибка: Class 'Thread' не найден Экспресс-доставка цифровых товаров с периодическими подписками Страница обслуживания ZF2 PHP readfile vs. file_get_contents Непроверенный флажок, возвращающий нулевое значение Как я могу упорядочить результат запроса так же, как идентификатор, указанный в условии WHERE? Массив: заданное значение с использованием точечной нотации? MySQLi обновляет запись через форму, загруженную с PHP и SQL. База данных не обновляется Msgstr "Не удалось проверить файл php. Программа php не найдена " Может ли экземпляр объекта PHP узнать его имя? Создание ролей пользователей и профилей в Codeigniter с использованием Ion Auth Как получить второе значение в раскрывающемся списке на основе выбранного в первом раскрывающемся списке Лучший способ организовать проект ExtJS Как динамически создавать субдомены phpMailer – Как удалить получателей

Как исправить ошибку: laravel.log не удалось открыть?

На самом деле я довольно новичок в laravel, и я пытаюсь создать свой первый проект. по какой-то причине я продолжаю получать эту ошибку (я еще не начал кодирование)

Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423 

Я читал, что это имеет какое-то отношение к разрешениям, но chmod -R 775 storage вообще не помогло.

права доступа

Итак, если у кого-то еще есть эта проблема, вот что вы делаете.

  1. Выйти из виртуальной машины
  2. Используя консоль, перейдите в свою синхронизированную папку (бродяга)
  3. $ sudo chmod -R 777 app/storage

Несмотря на то, что я создал проект внутри виртуальной машины с использованием пользователя виртуальной машины, папка принадлежала пользователю на реальном компьютере; поэтому, когда вы пытаетесь сделать chmod 777, я получил chmod 775.

Теперь он работает.

Спасибо всем, кто помог мне разобраться в этом

РЕДАКТИРОВАТЬ:

На самом деле, он не работал, он все еще дал мне проблему с разрешением отказа.

Вот что я сделал, я изменил свой Vagrantfile следующим образом:

 config.vm.synced_folder "./app","/var/www/", create:true, :owner => "vagrant", :group => "www-data", :mount_options => ["dmode=775","fmode=664"] 

Иногда нам нужно делать больше, потому что

 chmod -R 775 storage 

Означает

 7 - Owner can write 7 - Group can write 5 - Others cannot write! 

Если ваш веб-сервер не работает как Vagrant, он не сможет его написать, поэтому у вас есть 2 варианта:

 chmod -R 777 storage 

или изменить группу на пользователя веб-сервера, предположив, что это www-data :

 chown -R vagrant:www-data storage 

Вам необходимо настроить разрешения на storage и bootstrap/cache .

  • cd в ваш проект Laravel.
  • sudo chmod -R 777 storage
  • sudo chmod -R 777 bootstrap/cache

В зависимости от того, как настроен ваш веб-сервер, вы можете быть более конкретным с вашими разрешениями и предоставлять их только своему пользователю веб-сервера. Имена пользователей WEB SERVER NAME Laravel file permissions для получения дополнительной информации.

На момент написания, это для Laravel 5.4

Никогда не устанавливайте каталог на 777. вы должны изменить право собственности на каталог. поэтому установите для текущего пользователя, что вы вошли в систему с правами владельца и пользователя веб-сервера (www-data, apache, …) в качестве группы. Вы можете попробовать следующее:

 sudo chown -R {your current user}:www-data storage sudo chown -R {your current user}:www-data bootstrap/cache 

то для установки разрешения каталога попробуйте следующее:

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

Это решение специфично для laravel 5.5

Вы должны изменить разрешения на несколько папок: chmod -R -777 storage / logs chmod -R -777 storage / framework для вышеуказанных папок 775 или 765 не работал для моего проекта

chomd -R 775 bootstrap / cache

Также владение папкой проекта должно быть (текущий пользователь) 🙁 пользователь веб-сервера)

Я не был слишком заинтересован в изменении прав доступа к папкам на 777. Вот как я решил исправить эту проблему.

Во-первых, я сменил пользователя, который запускает веб-сервер на моей локальной машине (я запускаю nginx, но принципы применяются повсюду):

 $> sudo vim /etc/nginx/nginx.conf user <my_user> #inside nginx.conf service nginx reload 

Впоследствии я создал еще один файл index.php в папке public/ folder, чтобы узнать, кто запускал мою версию php-fpm, и где я хотел бы изменить это:

 <?php phpinfo(); ?> 

Перезагружая страницу, я узнал, что www-data был пользователем (в разделе «Окружающая среда»). Я также узнал, что я запускал php 7.1. Я начал менять пользователя:

 $> sudo vim /etc/php/7.0/fpm/pool.d/www.conf #Look for www-data or the following variables: user, group, listen.user, listen.group. 

Наконец, я дал следующие разрешения для папок:

 sudo chmod -R 775 ./storage/ 

Теперь я убедился, что я являюсь владельцем папок, используя простой:

 ls -al 

Если вы установили пользователей сервера и php-fpm для себя, а папки, например, принадлежат root, то вы будете сталкиваться с этой проблемой. Это может произойти, если вы сделали sudo laravel new <project> как root. В этом случае убедитесь, что вы используете команду рекурсивного chown в своем проекте для изменения настроек user:group . В большинстве случаев по умолчанию www-data является основным параметром для сервера и php, и в этом случае необходимо убедиться, что папка не находится в www-data к www-data .

Мой проект настроен в моем домашнем каталоге. На Ubuntu 16.04 и Laravel 5.5.