Задать вопрос
@Dalas_DV

Как настроить необходимые разрешения для запуска проекта?

Добрый день. Я не очень разбираюсь в работе Linux, нужна помощь.

Поднимаю проект по ссылке. Делаю это на базе Windows subsystem for Linux (WSL). Использую дистрибутив Ubuntu 18.04.6 LTS и Docker desktop.
При начале работы вхожу под sudo su, все действия далее производятся с соответствующими правами.

На этапе генерации ключей (sail artisan key:generate), получаю ошибку
In StreamHandler.php line 149:
  The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: Failed to open stre
  am: Permission denied
  The exception occurred while attempting to log: The stream or file "/var/www/html/storage/logs/laravel.log" could n
  ot be opened in append mode: Failed to open stream: Permission denied
  The exception occurred while attempting to log: The /var/www/html/bootstrap/cache directory must be present and wri
  table.

Вижу что проблема с правами, хотя выполняю под su. Добавил права на директорию:
sudo chmod o+w ./storage/ -R
Ошибка остается.
Выполняю
sudo chmod -R 777 storage/

Получаю ошибку по следующему файлу:
In PackageManifest.php line 178:
The /var/www/html/bootstrap/cache directory must be present and writable.

Как оказывается, такого пути не существует. Создаю вручную. Ошибка остается, выполняю:

sudo chmod -R 777 bootstrap/cache/

Ошибка меняется на следующую:
WARN[0000] /projects/SquadMS/docker-compose.yml: `version` is obsolete
WARN[0000] /projects/SquadMS/docker-compose.yml: `version` is obsolete
   ErrorException

  file_put_contents(/var/www/html/.env): Failed to open stream: Permission denied

  at vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php:120
    116▕
    117▕             return false;
    118▕         }
    119▕
  ➜ 120▕         file_put_contents($this->laravel->environmentFilePath(), $replaced);
    121▕
    122▕         return true;
    123▕     }
    124▕

      +16 vendor frames
  17  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

Тут уже изменения прав не помогают, дальше этого момента я не проходил.

Вопрос - что я делаю не так? Почему прав sudo не хватает?
Возможно вопрос глупый, и ответ на поверхности, извините заранее.
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@rPman
ты забыл настроить права для /var/www/html/
если продолжать твою идею с 777 то нужно:
sudo chmod -R 777 /var/www/html/

Но вернее выдать права не всем, а только пользователю, под которым запускается сервис:
chown -R username:username  /var/www/html/
chmod -R u+rw  /var/www/html/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы