首页 > 解决方案 > 无法在 laravel 6.9.0 共享主机部署中创建符号链接

问题描述

空响应符号链接基本上是单个文件或文件夹的快捷方式。我的项目(网站)需要创建一个强制性的符号链接。目标文件夹和链接文件夹的详细信息:

目标文件夹:/home/domainname/stream/storage/app/public/blogs

链接文件夹:/home/domainanme/public_html/storage

基本上,符号链接会创建博客文件夹的克隆及其从目标文件夹到链接文件夹的内容。

我尝试了三种方法来克服这个确切的问题:

  1. 在 public_html 文件夹中创建symlink.php文件,对其进行编码以创建如上所述的精确符号链接,并symlink.php在浏览器 ( ) 中运行该 php 文件 ( domainname.com/symlink)。
  2. 在网络的某个地方,我发现 cron 作业也可以完成这项工作。所以我创造了一个。
  3. 创建/createsymlink工匠命令(storage:link)存在的路线,在浏览器中运行url(domainname.com/createsymlink

这三项措施都无助于创建符号链接。

这部分对我的项目非常重要,因为没有它我无法在我的网站上处理单个图像。

笔记:

  1. 我没有使用 ssh
  2. 浏览domainname.com/symlink.php不会回显任何内容。
Project tree sample:
-domainname
   -stream (main project folder)
   -public_html (contains public folder from main project folder)

所有其他功能

//代码

//Cron job
ln -s /home/domainname/stream/storage/app/public/blogs /home/domainname/public_html/
//symlink.php
<?php
$target = '/home/domainname/stream/storage/app/public/blogs';
$link = '/home/domainname/public_html/storage';
symlink($target, $link);
echo readlink($link);
?>
//Route symlink
Route::get('/createsymlink', function () {
   Artisan::call('storage:link');
   return "success";
});

标签: laraveldeploymentsymlinkshared-hostinglaravel-6

解决方案


在共享主机中,最好使用 cron 作业。

请从 /public 中删除您的存储文件夹,然后使用以下代码创建 cron 作业:

ln -s /home/域名/stream/storage/app/public/ /home/domainname/stream/storage/app/public/storage


推荐阅读