我目前正在使用 cyberpanel 将 2 个项目上传到我的 ubuntu 服务器。 (其中之一是https://simplycar.es/storage/fotos/1677542768-WhatsApp%20Image%202023-02-28%20at%2001.03.28.jpeg)
两者都在Laravel中,使用相同的方式上传图片。
上传方式:
if (is_uploaded_file($request->file('foto'))) {
$picture = time() . "-" . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/fotos', $picture);
}
我已经有另一个以相同结构运行的上传图片的项目,它工作正常(https://chaincapitals.com/storage/logos/1669744070-C5l3mHJg_400x400.png)。
但这两个新项目不适用于上传的图像。它们不会出现在 URL (app.URL/(image-name)) 中,也不会出现在网站上。
我正在像往常一样写图像的路线:
{{asset('storage/fotos/'. \App\Models\Image::where('idCar' , $car->id)->first()->imagen)}}
存储链接有效,因为它出现在我的 FTP 应用程序中。
我试图重新生成符号链接也从 .PHP 文件生成它。
另外,我尝试了权限的事情,我尝试了这两件事:
chmod -R o+w storage
chmod -R o+w bootstrap/cache
此外,我尝试了在其他主题上看到的一些其他命令。
我不确定,当然。作为一个疯狂的猜测,检查你的许可,因为你说它适用于另一个项目。
sudo chown -R www-data:www-data storage/
sudo chmod -R 775 storage/
# finally
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
按照@Abdula Nilam 的回答,我得到以下错误:
流或文件“/home/simplycar.es/public_html/storage/logs/laravel.log”无法以附加模式打开:无法打开流:
我假设是因为存储文件夹的权限。
我修复了它:
sudo chmod -R ugo+rw storage
在此之后,我的应用程序可以正常工作了。