TP5.0.20 - TP5更改网站目录为/public 后运行出错解决

简介: 当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。

今天在部署TP5的时候,把网站根目录指向到public目录下,运行后产生以下错误


Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/xx/thinkphp/start.php) is not within the allowed path(s): (/www/wwwroot/xx/public/:/tmp/:/proc/) in /www/wwwroot/xx/public/index.php on line 18
Warning: require(/www/wwwroot/xx/thinkphp/start.php): failed to open stream: Operation not permitted in /www/wwwroot/xx/public/index.php on line 18
Fatal error: require(): Failed opening required '/www/wwwroot/xx/public/../thinkphp/start.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/xx/public/index.php on line 18


就是require文件的时候出错了,并且带上了文件的路径,一开始以为是路径出错的,于是在index.php中尝试修改 引入的文件路径,发现index.php并没有问题。 百度发现:open_basedir 的问题  需要在php.ini中修改open_basedir你的项目路径,或者在nginx中也可以定义。 但是我的两个配置文件中都没有该配置参数,于是继续找问题。后来想到服务器使用了宝塔面板来管理的,指定子目录也是在宝塔面板中进行。 于是到宝塔面板的页面,发现有一个   防跨站攻击(open_basedir)    的选项 把该选项关闭即可。 原因如下:open_basedir 将PHP所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。

目录
相关文章
|
9月前
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
233 0
|
C语言 C++
【C++】 --- 写个函数在main函数执行前先运行
【C++】 --- 写个函数在main函数执行前先运行
159 0
|
PHP
tp5源码解析--自动加载类
在TP5的框架使用过程中,自动加载类是可能会接触到,上手不难,但若想随心所欲的用,还是需要了解一番。用了千次,却没看过一次源码,学习源码,起码对TP5这个框架使用更加得心应手,毕竟技术服务于业务,能够写出更简介、更方便、更有效的业务代码,本身就是一件身心愉悦的事儿;
142 0
tp6路由设置根据目录自动 /home/index/test
tp6路由设置根据目录自动 /home/index/test
164 0
|
PHP
tp自动验证流程和返回空数组的问题
tp自动验证流程和返回空数组的问题
124 0
|
PHP
TP5.1隐藏public/index.php第二种方式
TP5.1隐藏public/index.php第二种方式
182 0
TP5.1隐藏public/index.php第二种方式
|
PHP
【TP5】自定义命令行
【TP5】自定义命令行
160 0
【TP5】自定义命令行
【TP5】在模板里边判断后台传的值是否存在
【TP5】在模板里边判断后台传的值是否存在
899 0
【TP5】在模板里边判断后台传的值是否存在
|
数据库
【TP5】获取数据库注释信息
【TP5】获取数据库注释信息
202 0
【TP5】获取数据库注释信息
【TP5】配置单独的配置文件
【TP5】配置单独的配置文件
149 0
【TP5】配置单独的配置文件