LAMP里php.ini配置文件详解

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

路径:/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日志并进行多维度分析。
相关文章
|
9月前
|
PHP 对象存储 Docker
阿里云云效产品使用问题之PHP和LAMP项目部署回滚不生效,该怎么办
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3天前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
34 18
|
6月前
|
缓存 监控 网络协议
在配置 PHP-FPM 的 pool 时,常见的性能优化技巧
在配置 PHP-FPM 的 pool 时,常见的性能优化技巧
|
4月前
|
安全 PHP 开发者
php中配置variables_order详解
`variables_order` 是 PHP 配置中的一个关键指令,它决定了不同来源的变量被导入到全局变量空间的顺序。正确配置 `variables_order` 不仅可以确保变量的正确处理和覆盖顺序,还能提高应用程序的安全性。开发者应根据具体应用的需求,合理配置 `variables_order`,确保应用的稳定和安全运行。
62 5
|
9月前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
128 1
|
4月前
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
81 12
|
4月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
181 3
|
6月前
|
关系型数据库 MySQL PHP
php wampserver的使用配置
本文介绍了WampServer在Windows系统下的配置和使用方法,包括如何修改PHP时区为中国标准时区PRC、更改Apache服务器端口号以避免冲突、设置起始页以及如何创建和管理虚拟目录。通过这些步骤,用户可以更有效地在本地环境中开发和测试PHP程序。
php wampserver的使用配置
|
6月前
|
Unix PHP
PHP-FPM 配置
PHP-FPM 配置
|
6月前
|
IDE 安全 网络安全
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
312 4