如何在没有 ssh 访问或 cron 作业的情况下链接公共存储?
Posted
技术标签:
【中文标题】如何在没有 ssh 访问或 cron 作业的情况下链接公共存储?【英文标题】:How to link public storage without ssh access or cron jobs? 【发布时间】:2022-01-16 19:25:47 【问题描述】:我需要部署一个 laravel 应用程序,它使用 storage
文件夹作为 public storage
,但我没有 ssh access
。我正在尝试寻找替代品:
php artisan storage:link
我通过将这条路线放入web.php
中找到了这个线程:Generating a link:
Route::get('generate', function () \Illuminate\Support\Facades\Artisan::call('storage:link'); echo 'ok'; );
但这并没有解决问题。我做错了吗?如何链接公共存储?
编辑:我尝试部署到的糟糕服务器不提供 cron 作业。
【问题讨论】:
它做了什么?当调用 URLhttp://example.com/generate
时会发生什么?没有?错误? (example.com 这里是你的网站)
一切正常,除了网站无法加载公共存储中的图像。所以他们显示损坏的图标。
那么运行命令没有错误?检查日志以防那里弹出任何内容
运行刚才创建的路由有什么错误吗?
确保您没有上传任何配置缓存并检查您是否上传了正确的 .env 文件
【参考方案1】:
如果可用并在第一次运行作业后创建一个玉米作业。删除这个
ln -s /home/user/laravel/storage/app/public /home/user/public_html/storage
【讨论】:
我刚刚注意到糟糕的服务器甚至不提供 cron 作业。感谢您的回答,但还有其他方法吗? 我已经编辑了问题,不必创建新帖子。对不起,它使您的答案无效。尽管如此,你还是帮了我!【参考方案2】:问题是我不明白如何正确使用存储链接路由。我不得不补充:
Route::get('/linkstorage', function ()
\Illuminate\Support\Facades\Artisan::call('storage:link');
echo 'storage linked!';
);
到web.php
并实际导航到domain-name/linkstorage
以触发artisan call
。之后,存储被链接,一切正常。
【讨论】:
以上是关于如何在没有 ssh 访问或 cron 作业的情况下链接公共存储?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有像 Quartz Clustering 这样的集中式解决方案的情况下在分布式环境中实现 cron 作业/计划作业? [复制]