LAMP里php.ini配置文件详解

简介:

路径:/usr/local/php/etc/php.ini

php用“;”作为“注释”符号,shell用“#”作为“注释”符号;

编辑php.ini

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

1. 查询/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,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

   这些函数都是高风险函数,为了安全,需要禁止这些函数。

2. 错误日志相关配置

   查询/display_error

display_error=off

默认是off,若改成on,会显示当前浏览器错误,同时也会造成信息泄漏,影响安全性。

3. 查询 /log_errors 

log_errors =on

4. 查询 /error_log

创建绝对路径

[root@LAMPLINUX ~]# mkdir /usr/local/php/logs

授予权限(生成错误日志的用户是apache,所以要用777权限,使他可写)

[root@LAMPLINUX ~]# chmod 777 /usr/local/php/logs

编辑php.ini,去掉语句前面的;号

把error_log=php_error.log改成error_log=/usr/local/php/logs/php_error.log的“绝对路径”。

5. 配置日志级别

查询 /error_reporting

error_reporting =E_ALL & ~E_NOTICE   (用这两种级别)

保存退出

:wq

[root@LAMPLINUX ~]# apachectl -t

Syntax OK

[root@LAMPLINUX ~]# apachectl restart

这就是如何去打开错误日志,而不用暴露错误信息的配置方法,有助于排查问题。

查看错误信息

如果发现有网页浏览错误

[root@LAMPLINUX ~]# ls /usr/local/php/logs/

php_error.log

[root@LAMPLINUX ~]# cat /usr/local/php/logs/php_error.log

这样就可以查看错误信息了。 


6. 查询/open_basedir

编辑php.ini

找到;open_basedir=  去掉;号,改成如下路径

open_basedir=/data/www:/tmp

这是个安全选项,针对单一主机、网站、域名,把访问的权限限定在指定目录下,其他目录没有访问权限,所以这个open_basedir一定要限定在网站程序所在的目录下。

[root@LAMPLINUX ~]# apachectl -t

Syntax OK

[root@LAMPLINUX ~]# apachectl restart

生效。

扩展延伸学习:

针对多个主机,多个网站,多个域名,要多配置几个open_basedir的限制,如果用php.ini去编辑,只能限定配置一句;要是限制多个,我们可以针对apache的“虚拟主机配置文件”去做限制,使每一个虚拟主机一个open_basedir,我们把他们分割开,每一个站点,每一个虚拟机,每一个域名公用一个open_basedir。

配置如下:

[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

写入:

 php_admin_value open_basedir "/data/www:/tmp"

:wq

现在我们就不需要php.ini里的open_basedir配置,用;注释掉

[root@LAMPLINUX ~]# apachectl -t

Syntax OK

[root@LAMPLINUX ~]# apachectl restart

生效,这样做的好处是能够区分不同的虚拟机。


本文转自 听丶飞鸟说 51CTO博客,原文链接:http://blog.51cto.com/286577399/1673219


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6天前
|
关系型数据库 MySQL API
|
6月前
|
PHP
windows11 vscode 配置 php环境
windows11 vscode 配置 php环境
48 0
|
7月前
|
PHP Apache
PHP环境搭建(配置php模块到apache服务器)
PHP环境搭建(配置php模块到apache服务器)
69 0
|
8月前
|
开发框架 应用服务中间件 PHP
Mac Nginx 关联 php 详细配置以及常见错误
Mac Nginx 关联 php 详细配置以及常见错误
148 1
|
8月前
|
Apache PHP 数据安全/隐私保护
(MAC)PHP Apache 安装与配置
(MAC)PHP Apache 安装与配置
234 0
|
8月前
|
存储 PHP
(MAC)PHP php.ini 配置文件
(MAC)PHP php.ini 配置文件
112 0
|
6天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
55 3
|
6天前
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,Php环境,配置取消禁止函数exec如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
54 4
|
6天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
37 0
|
8月前
|
域名解析 Apache PHP
PHP Apache - 多站点虚拟主机配置
PHP Apache - 多站点虚拟主机配置
301 0