9.PHP相关配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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下!

技术分享图片

以上是关于9.PHP相关配置的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

9.29 接9.27PHP相关

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

VSCode自定义代码片段11——vue路由的配置