9.PHP相关配置

[toc]

PHP相关配置

PHP相关配置

1.寻找PHP相关配置文件

每次再次开启虚拟机,要注意当前所在文件目录的位置

[[email protected] ~]# cd /data/wwwroot/xavi.com
[[email protected] xavi.com]# ls
123.php  admin  index.php  upload  xavi.jpg  xavi.txt

编辑当前位置的index.php文件

[[email protected] xavi.com]# !vim
vim index.php

<?php
phpinfo();

打开网页,查看其加载情况 Loaded Configuration File没有加载

2.查找php配置文件

[[email protected] php-7.1.6]# /usr/local/php7/bin/php -i | grep -i ‘loaded configuration file‘
Loaded Configuration File => /usr/local/php7/etc/php.ini   

3.复制配置文件,在gracful刷新配置文件后,刷新index.php

[[email protected] xavi.com]# cd /usr/local/src/php-7.1.6/
[[email protected] php-7.1.6]# cp php.ini-development /usr/local/php7/etc/php.ini
[[email protected] php-7.1.6]#  /usr/local/apache2.4/bin/apachectl graceful

4.编辑配置文件:/usr/local/php7/etc/php.ini

[[email protected] php-7.1.6]# vim /usr/local/php7/etc/php.ini

在vim内搜索 /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他也还是会在浏览器中显示错误信息:
  • 本次测试我并未得到该结果,而是正常显示phpinfo界面

找到错误原因:phpinfo前面未被识别,也无报错,因为自己把所有函数自行分段了,而不是整体复制

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

5.在php.ini中定义time.zone如果不定义,会出报警信息

[[email protected] php-7.1.6]# vim /usr/local/php7/etc/php.ini

找到time.zone

6.在浏览器中显示,我们也可以把这些信息全部关掉!

6.1搜素 /display ,改为off即可。

display_errors = Off

6.2然后再去配置一下log_error

log_errors = On

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

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

error_log = /tmp/php_errors.log

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

搜索 /error_reporting

error_reporting = E_ALL & ~E_NOTICE
在生产环境中,最常用的就是这个!有时候出现notice并不是出错


没有权限访问

7.测试

[[email protected] php-7.1.6]# curl -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 09:34:23 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[[email protected] php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 09:36:57 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[[email protected] php-7.1.6]# touch /tmp/php_errors.log
[[email protected] php-7.1.6]# chmod 777 /tmp/php_errors.log
[[email protected] php-7.1.6]# ls -l /tmp/php_errors.log
-rwxrwxrwx 1 root root 0 3月  11 17:52 /tmp/php_errors.log
[[email protected] php-7.1.6]# cat /tmp/php_errors.log
[[email protected] php-7.1.6]#  /usr/local/apache2.4/bin/apachectl graceful
[[email protected] php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 09:57:50 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[[email protected] php-7.1.6]# vim /data/wwwroot/xavi.com/2.php
[[email protected] php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/2.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 10:00:42 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
  • 没有500错误代码??????

[[email protected] php-7.1.6]# curl -x 192.168.72.130:80 xavi.com/2.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 10:15:00 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

[[email protected] php-7.1.6]# curl -x 192.168.72.130:80 xavi.com/index.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 10:15:23 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

[[email protected] php-7.1.6]# !cat
cat /tmp/php_errors.log
[11-Mar-2018 18:14:46 Asia/shanghai] PHP Parse error:  syntax error, unexpected end of file in /data/wwwroot/xavi.com/2.php on line 4

10.31 PHP相关配置 open_basedir

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

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

[[email protected] php-7.1.6]# vim /usr/local/php/etc/php.ini
open_basedir = /usr/local/wwwroot/xavi.com:/tmp //多个目录用:隔开,这个说明PHP限制在这两个目录活动

一致没有500报错

[[email protected] php-7.1.6]# cat /tmp/php_errors.log
[11-Mar-2018 18:14:46 Asia/shanghai] PHP Parse error:  syntax error, unexpected end of file in /data/wwwroot/xavi.com/2.php on line 4

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

1.1 打开配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

1.2 增加如下配置:

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

为什么要添加/tmp呢?

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

原文地址:http://blog.51cto.com/12995218/2085337

时间: 2024-10-05 17:40:50

9.PHP相关配置的相关文章

【Windows10&nbsp;IoT开发系列】PowerShell的相关配置

原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计. 1.​启动 PowerShell (PS) 会话 注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系. ​启动 Windows IoT 核心版设备后,与该设备相连的

SSH相关配置

SSH相关配置 1.修改ssh监听端口 #注意是sshd_config而非ssh_config /etc/ssh/sshd_config #将Port 22前面的#去掉并添加修改后ssh连接使用的端口 Port 22 #添加多一个22222端口作为ssh连接使用 Port 22222 #同时将22和22222作为ssh连接端口,是为了防止错误操作致使ssh无法连接上 #待22222连接生效后再将22端口关闭 #重启sshd服务 service sshd restart /etc/init.d/s

烂泥:FTP服务器开启防火墙相关配置

本文首发于烂泥行天下. 由于工作需要公司最近的一台服务器需要开启启用FTP服务,用来传输文件. 但是考虑到该服务器是在公网,基于安全的考虑一般都是要开启防火墙的.而公司内部的FTP服务器,一般情况下我都是关闭防火墙的. 下面我就将有关防火墙的配置流出如下: OS:windows server 2003.2008 FTP:Filezilla Server 0.9.41 首先是安装FTP服务器,在此我使用时开源FTP服务器Filezill Server.有关Filezilla Server的安装与使

centos7的selinux的原理及相关配置

centos7的selinux的原理及相关配置 SELinux的全称是Security Enhanced Linux, 就是安全加强的Linux.在SELinux之前,root账号能够任意的访问所有文档和服务:如果某个文件设为777,那么任何用户都可以访问甚至删除:这种方式称为DAC(主动访问机制),很不安全. DAC 自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x权限进行限制.Root有最高权限无法限制.r,w,x权限划分太

2016/07/07 apmserv5.2.6 Apache启动失败,请检查相关配置。MySQL5.1已启动。

因为要用PHP做一个程序,在本机上配PHP环境,下了个APMServ5.26,安装很简单,不再多说,装好后,启动,提示错误,具体是:“Apache启动失败,请检查相关配置.√MySQL5.1已启动”,然后就在网上找解决办法,倒是找到不少,但都没有解决问题,差点就想换一个集成环境了.不过知难而进一向是我的原则,最后终于解决了,现在把所有解决步骤整理出来,希望能对碰到同样情况的朋友有所帮助,如果有有朋友碰到新的情况,欢迎同我交流.另外如果大家有自已各方面经验,欢迎在阳关道网站上发布出来跟大家共享一下

SpringMVC之application-context.xml,了解数据库相关配置

上一篇SpringMVC之web.xml让我们了解到配置一个web项目的时候,如何做基础的DispatcherServlet相关配置,作为SpringMVC上手的第一步,而application-context.xml则让我们了解到如何将数据库信息加载到项目中,包含关键的数据库连接信息.sqlSessionFactory.事务等关键因素. ①.xml内容 <?xml version="1.0" encoding="UTF-8"?> <beans x

UI第九讲.UITableView表视图创建,表视图的重用机制,表视图的相关配置方法

一.UITableView表视图创建 1>.基本属性: UITableView继承自UIScrollView,所以可以滚动          表视图的每一条数据都是显示在UITableViewCell对象中          表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0始 2>.重要用法: 最重要的是两个代理方法 <UITableViewDelegate,UITableViewDataSource>(其中必须实现的是 numberOfRow

spring mvc 图片上传,图片压缩、跨域解决、 按天生成目录 ,删除,限制为图片代码等相关配置

spring mvc 图片上传,跨域解决 按天生成目录 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ #fs.domains=182=http://172.16.100.182:18080,localhost=http://localhost:8080 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE be

一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

【原创】MySQL性能优化-I/O相关配置参数

本文介绍InnoDB和MyISAM两种存储引擎的I/O相关参数配置. 1.InnoDB  I/O相关配置 Innodb是一种事务型的存储引擎,为了减少提交事务时产生的io开销,innodb采用了写日志的方式,也就是在事务提交的时候会先写入事务日志中 ,而不是每次都把修改或者数据刷新到数据文件中,这样做是为了提高io的性能,因为事务的修改,使数据和索引文件通常都会映射到表空间随机的位置,所以刷新数据变更到数据文件会产生大量随机io,而记录日志是顺序io,一旦事务日志安全的写到磁盘中,数据就算是持久