这可能是一个很容易犯的错误,但我已经卡在这个问题上 3 天了。
我并不是一个经验丰富的程序员。这也是我第一次使用 Laravel。我购买了这个脚本,附带一个指南(至少是类似指南的东西),我遵循了这个指南,但当InvalidArgumentException : Cannot write to directory "/var/www/blog/storage/app\public\products"
我运行php artisan db:seed
用虚拟数据填充页面和数据库时,仍然会遇到这种情况。
我在 18.04 上运行 LEMP 堆栈,并在sudo
和www-data
组中有一个用户。我所做的是通过 SMTP 上传脚本/var/www
并解压缩,然后按顺序运行以下命令(如指南所示):
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
检查我卡在哪里。我多次重新安装操作系统,尝试了我在谷歌上找到的一些方法……所以我来了。
答案1
尝试授予 www-data 组对产品文件夹的写入权限。
sudo chmod -R 775 /var/www/blog/storage/public/products
答案2
查看数据库\种子文件夹,查找负责填充虚假数据的文件(ProductSeeder)
找到行 $ faker-> image (storage_path ('app \ public \ products') 并将斜线改为相反方向。像这样 $ faker-> image (storage_path ('app / public / products')