laravel - 无法在 laravel 6.9.0 共享主机部署中创建符号链接
问题描述
符号链接基本上是单个文件或文件夹的快捷方式。我的项目(网站)需要创建一个强制性的符号链接。目标文件夹和链接文件夹的详细信息:
目标文件夹:/home/domainname/stream/storage/app/public/blogs
链接文件夹:/home/domainanme/public_html/storage
基本上,符号链接会创建博客文件夹的克隆及其从目标文件夹到链接文件夹的内容。
我尝试了三种方法来克服这个确切的问题:
- 在 public_html 文件夹中创建
symlink.php
文件,对其进行编码以创建如上所述的精确符号链接,并symlink.php
在浏览器 ( ) 中运行该 php 文件 (domainname.com/symlink
)。 - 在网络的某个地方,我发现 cron 作业也可以完成这项工作。所以我创造了一个。
- 创建
/createsymlink
工匠命令(storage:link
)存在的路线,在浏览器中运行url(domainname.com/createsymlink
)
这三项措施都无助于创建符号链接。
这部分对我的项目非常重要,因为没有它我无法在我的网站上处理单个图像。
笔记:
- 我没有使用 ssh
- 浏览
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";
});
解决方案
在共享主机中,最好使用 cron 作业。
请从 /public 中删除您的存储文件夹,然后使用以下代码创建 cron 作业:
ln -s /home/域名/stream/storage/app/public/ /home/domainname/stream/storage/app/public/storage
推荐阅读
- javascript - 垂直滚动指示器
- python - 使用graphviz读取.mtx格式
- php - PHP:使用DOMDocument loadHTML时如何防止url被转换为HTML实体
- java - 如何使用 Spring Data JPA 查询更新 PostgreSQL 中的 JSONB 列
- node.js - Webpack 代码拆分不适用于 NodeJs 应用程序
- javascript - 使用 Javascript/Jquery 将 HTML 页面内容转换为 Excel 工作表
- scikit-learn - scikit中加权指标的含义:更大的类更权重还是更小的类更权重?
- python - 我如何列出 discord.py 中的所有角色
- javascript - 我无法从与 Firebase 和 Vue 集成的 Flamelink 加载图像
- ms-access - 如何删除长文本格式“@”(MS Access)