• TP5项目在lnmp环境上线出现500错误


    今天准备把之前用tp5框架写的一个小项目上线的服务器上


    在windows下没问题,但是上传到服务器后访问接口出现500错误

    用的是lnmp的环境,文件上传后把所有权限都打开,都显示

    HTTP ERROR 500的错误,服务器内部错误

    该网页无法正常运作
    
    mz.kechangfu.cn 目前无法处理此请求。
    HTTP ERROR 500

    Way:

    在入口文件index.php中加入

    1 error_reporting(E_ALL);
    2 ini_set('display_errors', '1');

    来打印所有错误信息

    代码打印出的数据为:

    Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/mz.kchangfu.cn/thinkphp/start.php) is not within the allowed path(s): (/home/wwwroot/mz.kchangfu.cn/public/:/tmp/:/proc/) in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22
    
    Warning: require(/home/wwwroot/mz.kchangfu.cn/thinkphp/start.php): failed to open stream: Operation not permitted in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22
    
    Fatal error: require(): Failed opening required '/home/wwwroot/mz.kchangfu.cn/public/../thinkphp/start.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/mz.kchangfu.cn/public/index.php on line 22
    

    分析错误内容

    查看问题描述以及资料,发现是php open_basedir 配置的问题,php不能引入其授权目录上级及其以上的文件,默认配置在php.ini(/usr/local/php/etc/php.ini),但是我的open_basedir 并没有配置,默认被注释了。

    #在php.ini
    open_basedir =  //没有打开也是空的
    #在.user.ini
    open_basedir=/home/wwwroot/mz/public:/tmp/:/proc/
    #在fastcgi.conf
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

    只需把

    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

    改成

    `fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";`

    重启!

    解决

    open_basedir 配置项的文件权限问题,如果遇到了这样的情况,把php.ini 服务器nginx、Apache的配置文件都检查下。

  • 相关阅读:
    .NET.GC 浅谈.net托管程序中的资源释放问题 (转帖)
    VB 中实现 For Each
    创建 ODBC 数据源以连接到 Windows CE 设备上的Sybase数据库
    VB 调用水晶报表2
    VC数据类型
    对.Net 垃圾回收Finalize 和Dispose的理解
    C# 播放器
    [转载]帮助C#菜鸟进入GDI+开发
    线程间操作无效: 从不是创建控件 的线程访问它
    VB.Net 中 WithEvents、AddHandler
  • 原文地址:https://www.cnblogs.com/T8888/p/11996357.html
Copyright © 2020-2023  润新知