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

最后更新时间: 2020-07-02 19:40:33

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 后更改格式。