LAMP/LNMP(linux+apache/nginx+mysql/mariadb+php)配置经验

Created On: 2020-06-12

在日志中记录客户端类型

CustomLog /var/www/html/logs/access.log combined
这样配置可以在日志中记录客户端类型

禁止发送服务器软件(apache)的版本号:

httpd.conf文件中添加:

ServerSignature off
ServerTokens prod

Reaquire all granted

Reaquire all granted 中的 all 第一个字母必须小写,如果是大写,httpd重启会:

AH00526: Syntax error on line 11 of /etc/httpd/conf.d/httpd-vhosts.conf:
Unknown Authz provider: All

隐藏/不发送PHP版本号:

php.ini文件中:

expose_php On
;; 改成
expose_php Off

打开PHP调试

php.ini:

display_errors = on
error_reporting = E_ALL

配置虚拟主机后httpd无法启动

且/var/log/httpd/error_log记录出现如下错误:

(13)Permission denied: AH00091: httpd: could not open error log file /var/www/html/demo.com/access.log.
AH00015: Unable to open logs

解决办法:
* 方法一:关闭selinux # vi /etc/selinux/config 修改SELINUX值为*disabled
* 方法二:把日志配置在/var/log/httpd目录下,并以域名等能够辨认的标识符为文件名(任意)。
* 方法三:添加SELinux策略。

禁止访问虚拟主机 :

...
Options -Indexes +FollowSymlinks
Order allow,deny
Allow from none
Deny from all
Require all denied

防止远程代码执行:

修改php.ini:

allow_url_fopen=Off
allow_url_include=Off

nginx 报错 upstream timed out (110: Connection timed out)解决方案

在配置文件的http块添加:

fastcgi_connect_timeout 300;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;

nginx隐藏版本号:

在/etc/nginx/nginx.conf文件中的http块添加:

server_tokens off;

nginx 配置 http2

listen 443 ssl http2;

Update:

2019-08-19 更新 Markdown 格式

2020-06-12 重新部署 WP 后更改格式。


程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com