PHP配置
1.PHP基础配置
查看PHP配置文件得位置:
# vim 123.php
<?php
phpinfo();
?>
打开浏览器
搜索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
disable_functions表示禁用这些函数。
定义date.timezone,减少警告
# vim /usr/local/php/etc/php.ini
找到date. timezone设置如下:
date.timezone = Asia/Shanghai
2.日志相关配置
例如,在disable_functions,定义禁用phpinfo函数
# vim /usr/local/php/etc/php.ini
disable_functions=phpinfo,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
浏览器访问www.111.com/123.php,显示空白
配置error_log:
# vim /usr/local/php/etc/php. ini
//记录错误日志:搜索log_errors, 改成如下
log_errors=On
//记录错误日志目录位置:搜索error. log,改为
error_log = /tmp/php_errors.log
配置完php.ini,查看日志
# tail -f /tmp/php_errors.log
3.配置open_basedir
open_basedir将网站限定在指定的目录,做目录的隔离
先在php.ini中设置open_basedir:
# vim /usr/local/php/etc/php.ini
//搜索open_basedir,改成如下
open_basedir = /usr/local/apache2.4/docs/www.111.com/admin:/tmp
因为限制了PHP只能在/tmp和/usr/local/apache2.4/docs/www.111.com/admin两个目录下面活动
打开浏览器依次访问http://www.111.com/admin/123.php、http://www.111.com/upload/123.php
4.虚拟主机配置open_basedir
将/usr/local/php/etc/php.ini中open_basedir注释掉,编辑虚拟主机配置open_basedir
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
php_admin_value open_basedir "/usr/local/apache2.4/docs/www.111.com/admin/:tmp/"
ErrorLog "logs/111.com-error_log"
CustomLog "logs/www.111.com-access_log" combined
</VirtualHost>
//起作用的是php_admin_value
刷新配置
# curl -x127.0.0.1:80 www.111.com/upload/123.php -I
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
# mv redis-2.2.5 phpredis-develop
# 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-20131226
//可以看到rdis.so
#vim /usr/local/php/etc/php.ini //增加一行配置(可以放在文件最后一行)
extension = redis.so
# /usr/local/php/bin/php -m |grep redis //查看是否加载了redis模块
redis