PHP配置、扩展模块安装

来源:互联网 发布:php base64_encoder 编辑:程序博客网 时间:2024/06/10 03:37

php.ini配置文件详解

php配置文件的路径,以及没有路劲获取配置路径的方法

[root@CentOS-1 ~]# ls /usr/local/php/etc/php.ini/usr/local/php/etc/php.ini[root@CentOS-1 ~]# /usr/local/php/bin/php -i |headphpinfo()PHP Version => 5.5.38System => Linux CentOS-1 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686Build Date => Nov 30 2016 04:48:48Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' '--disable-ipv6'Server API => Command Line InterfaceVirtual Directory Support => disabledConfiguration File (php.ini) Path => /usr/local/php/etcLoaded Configuration File => /usr/local/php/etc/php.ini   //调用的配置文件路径[root@CentOS-1 ~]#

用着注释符号,apache使用的是#作为注释符号;

主要的配置文件有:
disable_functions 禁用的一些函数(禁用一些高风险的函数)
disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,proc_open,proc_close

这些函数的具体功能,可以详细查看php官方文档

display_errors

display_errors = Off 显示错误信息,On 访问的网页存在错误的话,浏览器访问界面会显示错误,Off打开错误的网页显示的是空白;开启这个错误日志的话,他人访问同样可以获取到错误信息,这里建议Off

查看脚本是否有错误,可以使用curl -x127.0.0.1:80 www.chenyue.com/forum.php -I 查看返回值,正常值为500 是PHP的脚本出现了异常

log_error

log_error = On错误日志,这里设置成On开启,然后找到error_log设置一下php错误日志的路径error_log = /usr/local/php/logs/php_errors.log 这里的路径需要设置成绝对路径;如果路径不存在自己创建一个,创建的日志文件夹权限设置成777,这里必须设置成可写;

[root@CentOS-1 ~]# cd /usr/local/php/logs-bash: cd: /usr/local/php/logs: 没有那个文件或目录[root@CentOS-1 ~]# mkdir /usr/local/php/logs[root@CentOS-1 ~]# cd /usr/local/php/logs[root@CentOS-1 logs]# chmod 777 /usr/local/php/logs

配置日志的格式,级别(error_reporting)

error_reporting = E_ALL & ~E_NOTICE设置成这两个级别,就可以了 & and 并的意思,~取反的意思;

open_basedir

open_basedir = 限定用户对网站的文件夹访问;如网站搭建在服务器/data/www目录下,限定用户只能访问这个文件夹下的相关目录和文件(这个位置一定要将网站的所以文件夹路径包含上,否则无法正常访问的);

例:open_basedir = /data/www:/tmp 限定在/data/www 和/tmp目录下,/data/www为网站所在的文件夹路径。

限定多个目录,不同站点 设置不同

服务器中有多个虚拟主机网站,使用PHPopen_basedir =限定会出现混乱,无法起到效果;这里可以在apache的每个虚拟主机配置文件中增加php_admin_value open_basedir模块,来限制每个域名下网站的文件夹访问路径

[root@CentOS-1 logs]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf...php_admin_value open_basedir "/data/www:/tmp"...

php扩展模块如何安装

查看已安装模块命令[root@CentOS-1 ~]# /usr/local/php/bin/php -m
php 安装后缺少某个模块,解决方法:
1、使用源码包重新编译安装php(makemake install
2、使用动态方式加载这个模块(单独编译需要的模块)

动态加载模块方法:
找到php的源码包,源码包ext文件夹里面是模块的源码,如果需要的模块这里满没有的话,可以到网上下载
例:curl的安装方法/usr/local/php/bin/php -m |grep -i curl查看php是否有加载curl模块

[root@CentOS-1 ~]# cd /usr/local/src[root@CentOS-1 src]# ls -a.   httpd-2.2.31         mysql-5.1.73-linux-i686-glibc23.tar.gz  php-5.5.38.tar.gz..  httpd-2.2.31.tar.gz  php-5.5.38[root@CentOS-1 src]# cd php-5.5.38/ext/[root@CentOS-1 ext]# cd curl[root@CentOS-1 curl]# /usr/local/php/bin/phpize  //选择编译模块,生成configure可执行文件[root@CentOS-1 curl]# ./configure --with-php-config=/usr/local/php/bin/php-config[root@CentOS-1 curl]# make[root@CentOS-1 curl]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/   

make install 后会显示是编译后安装文件位置,在php配置文件中添加编译的模块,将extension=curl.so 添加到配置文件中的extension=的配置文件后面,保存退出即可

extension_dir(存放扩展模块位置) 可以在php配置文件中自定义位置(默认不做修改)
查看extension安装模块的路径方法(即make install后的路径):

[root@CentOS-1 ~]# /usr/local/php/bin/php -i |grep extension_dirextension_dir => /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212 => /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212sqlite3.extension_dir => no value => no value

查看已加载的php动态模块:grep '^extension=' /usr/local/php/etc/php.ini

0 0
原创粉丝点击