xiaoker 发表于 2020-4-10 16:27:30

关于thinkphp框架下跨目录的问题,军哥帮忙看看

军哥,

我装CRMEB的时候,发现目录不可写,已经定位到是thinkphp框架防止跨目录的问题。
LNMP 1.4或更高版本如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。

LNMP 1.4或更高版本也可以直接使用lnmp安装包 tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。
在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。

我想请教的是,如果我注释了这行,open_basedir=$document_root/:/tmp/:/proc/所有的vhost都可以跨目录了,


如果我只想让thinkphp的那个网站可以跨目录呢?可以这样吗?需要怎么做?谢谢


licess 发表于 2020-4-10 17:19:40

https://lnmp.org/faq/lnmp-vhost-add-howto.html 最开始有说明,还有一个.user.ini 的放跨目录设置

xiaoker 发表于 2020-4-10 17:34:46

licess 发表于 2020-4-10 17:19
https://lnmp.org/faq/lnmp-vhost-add-howto.html 最开始有说明,还有一个.user.ini 的放跨目录设置 ...

open_basedir=/alidata/www/kaokao.app:/tmp/:/proc/:/runtime/:/.env/

类似于这样?在后面添加可以允许的目录吗?

licess 发表于 2020-4-11 09:08:07

xiaoker 发表于 2020-4-10 17:34
open_basedir=/alidata/www/kaokao.app:/tmp/:/proc/:/runtime/:/.env/

类似于这样?在后面添加可以允许 ...

是的,但目录是绝对路径

xiaoker 发表于 2020-4-11 17:51:58

licess 发表于 2020-4-11 09:08
是的,但目录是绝对路径

如果我想要网站跟目录下的/runtime/ 以及.env 的权限为可读写的话
我应该怎么修改?

open_basedir=/alidata/www/genwomai.cn:/tmp/:/proc/:/runtime/:/.env/
open_basedir=/alidata/www/genwomai.cn/runtime/
open_basedir=/alidata/www/genwomai.cn/.env

还是改成

open_basedir=/alidata/www/kaokao.app:/tmp/:/proc/:/runtime/:/.env/

改成这2个都不生效,没有解决问题。

licess 发表于 2020-4-11 20:16:56

xiaoker 发表于 2020-4-11 17:51
如果我想要网站跟目录下的/runtime/ 以及.env 的权限为可读写的话
我应该怎么修改?



多个目录 : 分开,.env 是文件的话加上也不起作用,前面已经说过了是绝对路径才行
重启生效

xiaoker 发表于 2020-4-12 17:00:05

licess 发表于 2020-4-11 20:16
多个目录 : 分开,.env 是文件的话加上也不起作用,前面已经说过了是绝对路径才行
重启生效 ...

收到,多谢军哥
页: [1]
查看完整版本: 关于thinkphp框架下跨目录的问题,军哥帮忙看看