PHP相关配置

PHP相关配置 :

通过如下方式找到咱们的php配置文件,这才是真正的PHP配置文件!

[root@localhost test3.com]# /usr/local/php7/bin/php -i | grep -i 'loaded configuration file'
Loaded Configuration File => /usr/local/php7/etc/php.ini
  1. 编辑配置文件:
vim /usr/local/php7/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,phpinfo

其中第一个eval函数就是上个文章提到的木马文件所调用的函数。如果禁掉了这个函数,就算可以上传php文件也是不能执行的。

关于phpinfo可以展现所有关于php的信息,如果被黑客看到就不堪设想了。所以好多企业为了更加安全会把phpinfo也会禁止掉!

但是当我们禁掉PHP的时候,当你访问phpinfo他也还是会在浏览器中显示错误信息:

黑客比较严谨,也还是会通过此路径找到相关配置,所以为了防止在浏览器中显示,我们也可以把这些信息全部关掉!

搜素 /display ,改为off即可。

display_errors = Off

然后,我们再去配置一下log_error

log_errors = On

然后再次去定义错误日志的路径:

搜索 /error_log, 修改到/tmp下。

error_log = /tmp/php_errors.log

为了更加直观的看到日志内容,我们需要设置日志的等级:

搜索 /error_reporting

error_reporting = E_ALL & ~E_NOTICE

在生产环境中,最常用的就是这个!

  1. 重载配置(graceful)
  2. 定义时区:

有时候不定义会出现一些告警信息,搜索 /timezone 修改为:

date.timezone = Asia/Shanghai
  1. open_basedir

如果有一台服务器跑了很多个站点,其中就有一个站的程序写的很烂,漏洞百出,被黑客所劫持,只要一台被劫持,其它的服务器也就很快被搞定。为了防止这样的事情发生,如何搞定呢?

针对不同的虚拟主机限定不同的open_basedir

打开配置文件:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加如下配置:

php_admin_value open_basedir "/data/wwwroot/test3.com/:/tmp/"

为什么要添加/tmp呢?

是因为/tmp下有咱们的错误日志,并且有些论坛允许上传图片也都是先上传到tmp目录下,然后再次转到upload下!

因为我整了两个,所以如下图:

当然也可以在PHP.ini中配置:

vim /usr/local/php/etc/php.ini

/搜索 open_basedir,修改为如下:

open_basedir = .:/tmp/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏月牙寂

k8s源码分析----apiserver之APIGroupVersion

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

48740
来自专栏信安之路

利用 nslookup 解析 DNS 记录

nslookup 是一个域名解析工具,在进行一些网页无法打开的问题上,能帮助我们进行更全面理解问题的所在!

34100
来自专栏张善友的专栏

Windows 下的安装phpMoAdmin

Windows7 下安装PHP非常容易,推荐使用WPI,通过框架和运行时选择PHP5.2安装: ? mongoDB 是以 PHP 扩展库 .dll 的形式与 P...

24570
来自专栏云计算教程系列

如何在Ubuntu 16.04上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

89800
来自专栏从零开始学自动化测试

Selenium2+python自动化72-logging日志使用

前言 脚本运行的时候,有时候不知道用例的执行情况,这时候可以加入日志,这样出现问题后方便查阅,也容易排查哪些用例执行了,哪些没有执行。 一、封装logging模...

37150
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装Ajenti控制面板和Ajenti V.

Ajenti是一个基于Web的开源控制面板,可用于各种服务器管理任务。它可以安装软件包和运行命令,您可以查看基本的服务器信息,如正在使用的RAM,可用磁盘空间等...

49920
来自专栏蓝天

thrift使用小记

    Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL...

18110
来自专栏JetpropelledSnake

SNMP学习笔记之Linux下安装和配置SNMP

  选择一个SNMP版本,比如5.7.1,下载地址如下:http://sourceforge.net/projects/net-snmp/files/net-s...

28630
来自专栏瓜大三哥

Yaffs_checkptrw

1.static int apply_chunk_offset(struct yaffs_dev *dev, int chunk) {return chunk ...

19580
来自专栏云计算教程系列

如何在Debian 9上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

48440

扫码关注云+社区

领取腾讯云代金券