您的位置:首页 > 编程语言 > PHP开发

Lamp:php.ini配置文件详解+扩展模块安装

2017-02-19 10:54 791 查看
1php.ini配置文件详解

PHP配置文件的存放处:

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

如找不到:

# /usr/local/php/bin/php -i  |head   则会显示其内容地址含其中Loaded Configuration File => /usr/local/php/etc/php.ini 

php以 封号 ;   为注释掉的符号

(1)禁用函数
disable_functions

[root@yiqiang ~]# vim /usr/local/php/etc/php.ini  

找到 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,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

(2)错误日志   500的错误一般都是php脚本程序 有问题

打开错误日志,不暴露错误信息。

[root@yiqiang ~]# vim /usr/local/php/etc/php.ini 

display_errors =
Off  (默认值)      如果改成on ,则会在网页浏览面显示错误提示,相反也会泄露信息安全。

log_errors=On
 (默认 打开错误日志)

error_log=/usr/local/php/logs/php_errors.log     (更改编写错误日志所在的路径)

error_reporting=E_ALL & ~E_NOTICE        (更改日志级别)

按:wq保存退出,查看路径是否存在,如果不存在,则

[root@yiqiang ~]# mkdir /usr/local/php/logs       创建目录

[root@yiqiang ~]# chmod 777 /usr/local/php/logs/    更改其权限,因为生成日志的是Apache用户

[root@yiqiang ~]# cat /usr/local/php/logs/php_errors.log
  查看错误日志

(3)限制访问  也是网页的一个安全选项

防止不合法访问造就的一系列影响后果

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

1用法 

[root@yiqiang ~]# vim /usr/local/php/etc/php.ini      ( php配置文件)

找到open_basedir添加如下:

open_basedir = /data/www:/tmp

加载 apache graceful  ,刷新页面。即可。 测试,试试写错了会是什么结果

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

2用法

当多个站点时,配置apache,在Apache中可以区分不同的虚拟主机

[root@yiqiang ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  ( Aapache配置文件)

每一个虚拟主机使用一个open_basedir, 找到第二个<VirtualHost *:80> 加入如下一行内容:

php_admin_value open_basedir "/data/www/:/tmp/"

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

一般用法二选其一:1用法同用 lamp  2用法一般用于apache上,便于区分那个主机出了问题

2.php扩展模块如何安装

[root@yiqiang ~]# /usr/local/php/bin/php -m  查看php的模块。

如果发现php少了一俩个模块  ,1需要重新编译,找到php源码包。  2.使用动态的方式加载进来

[root@yiqiang ~]# cd /usr/local/src/php-5.5.38/ext/     模块包在ext/下面,如果没有就需要下载模块包。

比如要安装curl包,

[root@yiqiang ~]# /usr/local/php/bin/php -m |grep -i curl 查看有否安装

[root@yiqiang curl]# cd //usr/local/src/php-5.5.38/ext/curl 

[root@yiqiang curl]# ls

[root@yiqiang curl]# /usr/local/php/bin/phpize   工具:生成Configuring 可执行文件

[root@yiqiang curl]# ls  多出许多Configuring 可执行文件

[root@yiqiang curl]# ./configure --with-php-config=/usr/local/php/bin/php-config(一般不会有什么错误有就是少库)

[root@yiqiang curl]# make

[root@yiqiang curl]# make install

会生成的文件放在下面

/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

[root@yiqiang curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/curl.so

[root@yiqiang curl]#vim  /usr/local/php/etc/php.ini

找到  并加入extension=列,

vim  :nohl  去掉高亮

extension=curl.so

按:wq保存退出

[root@yiqiang curl]# /usr/local/php/bin/php -m     加载,查看是否有这个模块curl,没有查看错误日志也会有显示

[root@yiqiang curl]# tail /usr/local/php/logs/php_errors.log    日志也没有,并错误日志也不显示:表示明显的语法错误。

即是完成动态加载!

查询动态加载有哪些:

[root@yiqiang extensions]# grep '^extension=' /usr/local/php/etc/php.ini

 例如:memcache redis apc 练习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: