LN链接文件include路径异常情况。
昨天有开发叫把部署时候,替换配置文件原本用cp换成ln。说是为了修改配置方便。
但是如果一个目录有很多个配置,含子目录,用ln -r是不行的。逐个ln很是麻烦。
不过,开发说啥就是啥。。。
但是今天一些URL访问出现异常。
大致错误如下。
1 | PHP message: PHP Fatal error: require(): Failed opening required '/wwwroot/resources_do_not_delete/xxxx/frontend/web/../../common/config/bootstrap.php' (include_path='.:/app/php56/lib/php') in /wwwroot/resources_do_not_delete/xxxx/frontend/web/index.php on line 7" while reading response header from upstream, client: 14.xxx.xxx.180, server: qdtest.laoganbu.cn, request: "GET /help-web/index HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx.xxx.cn" |
发现php文件 require文件的时候,路径跑到被链接的文件目录去了。而我们所需要的是获取链接文件所在的目录下的文件。
知道问题就好办了。把ln -s
改为ln -d
硬链接。
可以自己写个php,然后分别用这两种方式做链接到web目录。
1 |
|
usage: ln -[s|d] 源文件 链接文件
测试结果如下:ln -s
: 源文件所在的目录ln -d
: 链接文件所在的目录