zoukankan      html  css  js  c++  java
  • PHP配置

    三. PHP配置

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

    虽然PHP是以httpd一个模块的形式存在的,但是PHP本身也有自己的配置文件

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

     

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

    3.2.1介绍

    PHP有诸多内置的函数,有一些函数(比如exec)会直接调取Linux系统命令,如果开放将会非常危险。因此,基于安全考虑应该把一些存在安全风险的函数禁掉:

    3.2.2配置

    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

     

    这些被禁掉的函数是不能在PHP代码中调用的。更改完php.ini后,由于需要在httpd中调用PHP,所以还需要重启httpd服务使其生效。

     

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

    3.3.1配置

    php.ini为PHP的配置文件,可以看出其在/usr/local/php/etc/php.ini

    第一行的Warning为警告信息可以忽略,取消这个警告需要编辑php:ini, 找到date. timezone设置如下:

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

    找到date. timezone设置如下:

    date.timezone = Asia/Shanghai

     

    3.3.2配置验证:

     

    3.4. display_errors 配置、记录错误日志并定义错误日志级别:

    3.4.1介绍

    PHP的日志对于程序员来讲非常重要,它是排查问题的重要手段。设置PHP错误日志,有诸多步骤:

    3.4.2配置

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

    搜索log_errors 更改如下

     

    搜索error_log 更改如下

     

    搜索error_reporting 更改如下

     

    搜索display_errors 更改如下

     

    log_errors可以设置为on或者off,如果想让PHP记录错误日志,需要设置为on。error, _log设定错误日志路径; error_reporting设定错误日志的级别,E_ALL为所有类型的日志,不管是提醒还是警告都会记录。在开发环境下面设置为E_ALL, 可以方便程序员排查问题,但也会造成日志记录很多无意义的内容。&符号表示并且,~表示排除,所以两个组合在一起就是在E_ALL的基础上排除掉notice相关的日志。

    display_ errors设置为on,则会把错误日志直接显示在浏览器里,这样对于用户访问来说体验不好,而且还会暴露网站的一些文件路径等重要信息,所以要设置为off。设置完php.ini,还需做一些额外的操作:

    mkdir /var/log/php

    chmod 777 /var/log/php //需要保证PHP的错误日志所在目录存在,并且权限为可写

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

     

    3.4.3配置验证:

    vim /data/wwwoot/www.123.com/test.php //写入如下内容,其中故意把结尾的;丢掉

    <?php

    echo 111

     

     curl -A "123" -I -x127.0.0.1:80 www.123.com/test.php

     

    出现了状态码500,说明我访问的页面是存在错误的,查看PHP的日志来判定错误原因:

    cat /var/log/php/php_errors.log

     

    通过日志可以判断,test.php文件第三行少了分号。

    3.5 open_basedir配置

    3.5.1介绍

    open_basedir, 它的作用是将网站限定在指定目录里

    3.5.2配置

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

    搜索open_basedir并修改

     

    open_basedir = /tmp:/data/wwwroot/www.123.com

    限制PHP只能在/tmp和/data/wwwroot/www.123.com两个目录下面活动

    3.5.3配置验证:

     

    发现aming .com/1.php不能访问,状态码为500,

    3.6 为虚拟主机配置open_basedir

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

     

    3.7PHP扩展模块安装

    查看PHP都加载了哪些功能模块:

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

    安装一个PHP的redis扩展模块:

    cd /usr/local/src/

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

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

    tar -zxvf redis-2.2.5.tgz

    mv develop phpredis-develop.zip

    unzip !$

    cd phpredis-develop

    yum  install  -y  autoconf

    /usr/local/php/bin/phpize

    ./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 - 20191227/

       //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模块

  • 相关阅读:
    android 手电筒的实现
    微信百度天气查询
    ExtJs自学教程(1):一切从API開始
    Adobe/Flash Media Server 5.0 linux 64位系统下的安装
    cocos2d-x 3.0 画图节点——Node
    codeforce 437B The Child and Set
    intel集成显卡linux驱动安装
    Linux下查看进程(程序)启动时的环境变量
    Linux设置和查看环境变量的方法
    兼容软件,Wine安装,Crossover安装,
  • 原文地址:https://www.cnblogs.com/315z/p/12107903.html
Copyright © 2011-2022 走看看