三. PHP配置

3.1查看php配置文件得位置:

    #/usr/local/php/bin/php -i |grep -i "loaded configuration file"

3.2限定disable_functions,禁用phpinfo,配置:

    #vim  /usr/local/php/etc/php.ini

    搜索disable_functions,编辑如下

    disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,1eak,popepassthru,stream_socket_server,popen,proc_open,proc_close

3.3定义date.timezone,减少警告:

    #vi /usr/local/php/bin/php

    找到date. timezone设置如下:

    date.timezone = Asia/Shanghai

3.4 display_errors 配置:

    # vim /usr/local/php/etc/php. ini

    //搜索log_errors, 改成如下

    log_errors=On

    //再搜索error. log,改为

    error_log = /var/log/php/php_errors.log

    //再搜索error_reporting 改为

    error_reporting = E ALL & ~E_ NOTICE

    //再搜索display_errors,改为

    display_errors = Off

    配置完php.ini,还需额外配置:

    #mkdir /var/log/php

    #chmod 777 /var/log/php

    # /usr/local/apache2.4/bin/apachectl graceful

    下面做一个演示:

    # vim /data/wwwroot/testdomain.com/test.php

    <?php

    echo 111

    # curl -A‘"123" -I -x127.0.0.1:80 testdomain. com/test .php

    状态码500

    # cat /var/1og/php/php_errors.log

       //显示错误日志

 

3.5记录错误日志:

    # vim /usr/local/php/etc/php. ini

    //搜索1og_ errors, 改成如下

    1og_ errors=On

3.6定义错误日志级别:

    # vim /usr/local/php/etc/php. ini

    //搜索error. _reporting. 改为

    error_ reporting = E ALL & ~E_ NOTICE

3.7 open_basedir配置

    先看在php.ini中设置open_basedir

    # vim /usr/local/php/etc/php.ini

    //搜索open_basedir,改成如下

    open_ basedir = /tmp:/data/wwwroot/testdomain.com

    因为限制了PHP只能在/tmp和/data/wwwroot/testdomain.com两个目录下面活动

    所以演示如下

    # /usr/1ocal/apache2.4/bin/ apachectl graceful

    # cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/testdomain.com/

    # curl -x127.0.0.1:80 -I testdomain.com/1.php

    状态码500

 

3.8为虚拟主机配置open_basedir

    #vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf

    <VirtualHost *:80>

        DocumentRoot "/data/wwwroot/testdomain.com"

        ServerName www.testdomain.com

        ServerAlias testdomain.com

        CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined

        php_admin_value open_basedir "/data/wwwroot/testdomain.com/:/tmp/"

    </VirtualHost>

         //起作用的是php_admin_value,它定义了php.ini的参数

 

3.9 PHP扩展模块安装

    # /usr/local/php/bin/php -m

       //如何查看PHP加载了哪些模块

    #cd  /usr/local/src

    #wget http://pecl.php.net/get/redis-2.2.5.tgz

       //安装一个新的redis

    #tar -zxvf redis-2.2.5.tgz

    # wget https://codeload.github.com/phpredis/phpredis/zip/develop

    # mv develop phpredis-develop.zip

    # unzip !$

    # cd phpredis-develop

    #yum  install  -y  autoconf

       //因为有一处错误需要安装

    #/usr/local/php/bin/phpize

     //目的生成configure文件

    Configuring for:

    PHP Api Version:  20131106

    Zend Module Api No:  20131226

    Zend Extension Api No:  220131226

     ./configure  --with-php-config=/usr/local/php/bin/php-config

    # make

    # make install

     Installing shared extensions: /usr/local/php/lib/ php/extensions/ no-debug- zts - 20131226/

       //make install时候编译好的就会放在这个目录里

    #ls /usr/local/php/lib/php/extensions/no-debug-zts-20~~

      //可以看到rdis.so

    #vim /usr/local/php/etc/php.ini

       //增加一行配置(可以放在文件最后一行)

    extension = redis.so

    # /usr/local/php/bin/php -m |grep redis

       //查看是否加载了redis模块

    redis

 

 

猜你喜欢

转载自www.cnblogs.com/wft9/p/12108066.html