为什么我们要创建软连接?

因为项目根目录下的 public 是一个特殊的目录,这个目录下存放可公共访问的资源。

什么是可公共访问呢?就是可以通过`http://域名/文件路径`的形式访问到。

像我们通过laravel上传文件,如果我们把上传的资源文件存储在本地的话,Laravel 默认会放在 storage/app 里面,但是这个目录是不可见的,如果想要能公共访问就必须暴露在项目根目录下的 public 中,这就是创建软链接的原因 。

我们执行php artisan storage:link这个命令后呢,项目中public目录下就会多出来一个storage目录,这个目录就是storage/app/public目录的一个软连接。

简单举例:如果我们的域名是http://myweb

项目的目录结构如下:

storage

----app

--------public

------------avatar.png

public

----storage

我们通过访问http://myweb/storage/avatar.png就可以访问到storage/app/public/avatar.png这个文件了。

我自己在执行这个命令的时候报了个错symlink() has been disabled for security reasons.

这是因为symlink()这个函数被禁用了,

打开php.ini文件,搜索disable_functions

删掉symlink后重启php-fpm服务,然后再执行命令php artisan storage:link

 

有哪里写的不对的地方,欢迎留言指正,谢谢!

更多推荐

laravel框架中php artisan storage:link快速创建软链接命令