• nginx 中 PHP 调用PEAR.php遇到的问题


    公司有个老项目,写了很多年了,是在apache 上面跑的,无意间,我想让它跑到nginx上,结果遇到了PEAR.php的问题,先安装pear

    基本安富有就是

    wget http://pear.php.net/go-pear.phar
    php go-pear.phar

    我php版本是5.4的,先禁用disable_functions 这个要不然安装不成功

    安装上了以后,就调报是报了这个错

    phpinfo() 查看到是这个文件
    Loaded Configuration File /usr/local/php/etc/php.ini
    查看php.ini的值是
    -------------------------------------------------------------------------------
    ; open_basedir, if set, limits all file operations to the defined directory
    ; and below.  This directive makes most sense if used in a per-directory
    ; or per-virtualhost web server configuration file. This directive is
    ; *NOT* affected by whether Safe Mode is turned On or Off.
    ; http://php.net/open-basedi
    open_basedir ="./:/usr/local/php/lib/php/"#这个是我自己设置的
    ---------------------------------------------------------------------------------------------
    [root@localhost ~]# ll /usr/local/php/lib/php/
    total 84
    drwxr-xr-x  2 root root    20 Aug 12 14:41 Archive
    drwxr-xr-x  2 root root  4096 Jun 12 16:22 build
    drwxr-xr-x  2 root root    23 Aug 12 14:41 Console
    drwxr-xr-x  5 root root    60 Aug 12 15:16 data
    drwxr-xr-x  9 root root   124 Aug 12 15:16 doc
    drwxr-xr-x  3 root root    38 Jun 12 16:29 extensions
    drwxr-xr-x  2 root root     6 Aug 12 14:34 htdocs
    drwxr-xr-x  3 root root    40 Aug 12 15:16 HTTP
    drwxr-xr-x  2 root root    21 Aug 12 15:16 Net
    drwxr-xr-x  2 root root    22 Aug 12 14:41 OS
    drwxr-xr-x 11 root root  4096 Aug 12 14:41 PEAR
    -rw-r--r--  1 root root 15188 Aug 12 14:41 pearcmd.php
    -rw-r--r--  1 root root 34864 Aug 12 14:41 PEAR.php
    -rw-r--r--  1 root root  1033 Aug 12 14:41 peclcmd.php
    drwxr-xr-x  3 root root    38 Aug 12 15:16 Services
    drwxr-xr-x  3 root root    34 Aug 12 14:41 Structures
    -rw-r--r--  1 root root 20292 Aug 12 14:41 System.php
    drwxr-xr-x  9 root root   139 Aug 12 15:16 test
    drwxr-xr-x  3 root root    48 Aug 12 15:16 Text
    drwxr-xr-x  2 root root    21 Aug 12 14:41 XML
    ---------------------------------------------------------------------------------------
    目录下面是有这个PEAR.php这个文件的
    -----------------------------------------------------------------------------------
    但是Nginx 报错了以下的错
    --------------------------------------------------------------------------------------
    2015/08/13 09:51:38 [error] 635#0: *17 FastCGI sent in stderr: "PHP message: PHP Warning:  require_once(): open_basedir restriction in effect. File(/usr/local/php/lib/php/PEAR.php) is not within the allowed path(s): (/home/wwwroot/editor.com:/tmp/:/proc/) in /home/wwwroot/editor.com/Mail.php on line 46
    PHP message: PHP Warning:  require_once(/usr/local/php/lib/php/PEAR.php): failed to open stream: Operation not permitted in /home/wwwroot/editor.com/Mail.php on line 46
    PHP message: PHP Fatal error:  require_once(): Failed opening required 'PEAR.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/editor.com/Mail.php on line 46" while reading response header from upstream, client: 127.0.0.1

    ------------------------------------------------

    各种尝试还是报

    2015/08/13 10:18:20 [error] 4110#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require_once(): open_basedir restriction in effect. File(/usr/local/php/lib/php/PEAR.php) is not within the allowed path(s): (/home/wwwroot/editor.com:/tmp/:/proc/) in /home/wwwroot/editor.com/Mail.php on line 46
    PHP message: PHP Warning:  require_once(/usr/local/php/lib/php/PEAR.php): failed to open stream: Operation not permitted in /home/wwwroot/editor.com/Mail.php on line 46
    PHP message: PHP Fatal error:  require_once(): Failed opening required 'PEAR.php' (include_path='.:/php/includes:/usr/local/php/lib/php/') in /home/wwwroot/editor.com/Mail.php on line 46" while reading response header from upstream, client: 127.0.0.1, server: editor.com, request: "POST /appBaseInfoSaver.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "editor.com", referrer: "http://editor.com/appBaseInfo.php?t=new&tplt=capricorn"

    ==============================================================================

    最后用了这么一招

     fastcgi_param PHP_VALUE open_basedir="open_basedir=$document_root:/usr/local/php/lib/php/:/tmp/:/home/wwwroot/";

    整个世界又清静了.

  • 相关阅读:
    linux下使用kermi续
    关于vhdl中integer消耗资源的一些讨论
    linux时间编程
    Linux下C编程文件编程
    C语言I博客作业04
    C语言I博客作业02
    C语言I博客作业02
    第一周作业
    php 面向对象
    php 面向对象封装和继承
  • 原文地址:https://www.cnblogs.com/jackluo/p/4727563.html
Copyright © 2020-2023  润新知