Это может быть легкой ошибкой, но я застрял в этом на 3 дня.
Я не очень опытный кодер. Я впервые использую Laravel. Я купил этот скрипт с руководством (по крайней мере, что-то вроде руководства), которому я следую, но все же получаю InvalidArgumentException : Cannot write to directory "/var/www/blog/storage/app\public\products"
, когда запускаю php artisan db:seed
, чтобы заполнить страницу и базу данных фиктивными данными.
Я работаю 18.04 со стеком LEMP и пользователем в группах sudo
и www-data
. Я загрузил скрипт в /var/www
через SMTP и распаковал его, после чего приступил к выполнению этих команд в порядке (указанном в руководстве):
sudo chown myuser:myuser /var/www/blog
cd /var/www/blog
composer install
sudo chown -R www-data:www-data /var/www/blog/public
sudo chmod 755 /var/www
sudo chmod -R 755 /var/www/blog/bootstrap/cache
sudo chmod -R 755 /var/www/blog/storage
php artisan storage:link
sudo mkdir /var/www/blog/storage/public/products
sudo chmod -R 755 /var/www/blog/storage/public/products
sudo chgrp -R www-data /storage/public/products
sudo chmod -R ug+rwx /storage/public/products
И затем я начал заполнять .env Информация о базе данных и все прошло отлично от конфигурации базы данных до миграции, а затем последний шаг - db:seed
, чтобы проверить, где я застрял. Несколько раз переустанавливал ОС, пробовал некоторые способы, которые я нашел в гугле ... вот и я.
Попробуйте дать разрешение на запись группе www-data в папке products.
sudo chmod -R 775 /var/www/blog/storage/public/products
См. Папку database \ seed, найдите файл, который отвечает за заполнение поддельными данными (ProductSeeder)
найдите строку $ faker-> image (storage_path ('app \ public \ products') и измените косую черту в противоположном направлении. Например, $ faker-> image (storage_path ('app / public / products')