[英]Capistrano: how to remove symlink 'current' and rather use: {deploy_to} for accessing the deployed files
[英]How to make a symlink in a deployed website
我是Laravel的新手,你知道为了访问存储文件,你应该有一个从存储/ app / public到public / storage的符号链接。 在计算机中,您只需输入命令行:php artisan storage:link。 但现在我已将我的网站部署在托管上,并希望创建一个符号链接。 我该怎么做?
也许如果你可以在你的作曲家的“ scripts ”标签中添加一个调用来在项目部署后创建链接:
composer.json
文件:
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
"php artisan storage:link"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
"php artisan storage:link"
]
}
这将导致每次**composer update**
或**composer install**
调用发生时创建链接。
如果未创建存储文件夹,您将收到:
The [public / storage] directory has been linked.
如果已经创建:
The "public / storage" directory already exists.
另请参阅此讨论可能对您有所帮助: https : //github.com/laravel/internals/issues/34
Cron的工作对我来说是共享主机的诀窍。 只需配置cron作业以在下一分钟(或特定关闭时间)运行命令,然后将其删除。
例如,这将在上午9:30运行命令并将任何输出记录到myjob.log
30 9 * * * /path/to/php /path/to/artisan storage:link >> /path/to/myjob.log 2>&1
只需在php文件中创建一个符号链接并将其上传到您的公共文件夹,然后通过浏览器导航到它。 链接必须是绝对路径....
$targetFolder = '/home/account_name/laravel/storage/app/public';
$linkFolder = '/home/account_name/public_html/storage';
symlink($targetFolder, $linkFolder);
echo 'Done!'
让我们将文件保存为link.php并上传,然后通过http://your_site.com/link.php导航到它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.