CentOS 7 下安装配置LNMP环境并支持HTTPS

1、安装程序

1.1 安装前准备

1.2 添加nginx源

创建文件 /etc/yum.repos.d/nginx.repo,输入以下内容:

1.3 安装LNMP

1.4 启动LNMP并设置开机启动

1.5 安装高版本php

如果使用高版本php,其配置文件的安装路径也会不一样,需要注意。

2、配置准备

2.1 创建目录

两个目录权限如下:

2.2 创建用户

-M 表示在创建新用户的时候不在 /home 目录下创建对应的目录。

3、配置Nginx

3.1、修改/etc/nginx/nginx.conf文件

3.2 修改/etc/nginx/fastcgi.conf文件(或 fastcgi_params)

修改为

这样就完全对外隐藏了nginx版本号了,就是出现404、501等页面也不会显示nginx版本。

配置完后重启nginx使修改生效:

4、配置php-fpm

4.1 修改 /etc/php-fpm.conf 文件

修改 /etc/php-fpm.conf 文件中的[global]一节:

之后修改 /etc/php-fpm.d/www.conf 文件中的[www]一节:

4.2 修改 /etc/php.ini 文件

修改上传文件大小:

添加 mysql 支持:

配置完后,重启php-fpm服务使其生效:

5、配置Mysql

5.1 设置 Mysql 的初始密码

用yum安装完mysql(mariadb)后,默认初始密码为空,需要设置初始密码:

这个xxxxx就是要设置的密码。
执行该命令时会要求输入密码,由于原始密码为空,直接回车即可。

这里设置为老s

设置完密码后,使用命令登录:

根据提示输入密码后即可进入mariadb:

5.2 创建数据库及新用户

如果提示错误信息:

就删除该用户再重新创建。

其他用户管理命令:

6、添加新的vhost

6.1 创建日志文件

在/home/wwwlogs/目录下创建 www.example.com.log 文件,权限如下:

6.2 创建vhost所在的目录

在/home/wwwroot/目录下创建 www.example.com 目录,并将其所有者设置为 www ,权限如下:

之后,将要安装的 vhost 程序源码解压到该目录。

6.3 添加防跨目录配置

在 /home/wwwroot/www.example.com 目录下创建.user.ini文件,并添加如下内容:

设置权限:

.user.ini文件不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效

如果需要修改.user.ini,需要先将之前设置的属性去掉:

该文件的目的是为了防跨目录功能。
/tmp/后加上:/proc/ 让网站可以使用探针。
注意:open_basedir 不是万能的也不是绝对安全的,会阻止一部分防跨目录的行为,但是同时也存在很多绕过open_basedir的方法。

6.4 添加 vhost 配置文件

6.4.1 添加仅支持http的vhost

以添加 http://www.example.com 为例。

在/etc/nginx/conf.d/目录下添加新的域名配置文件,如www.example.com.conf,并修改该文件,添加如下内容:

配置完后重启nginx使修改生效:

之后,访问 http://www.example.com 即可。

6.4.2 添加支持https的vhost

(1)下载 certbot-auto 客户端

(2)添加新的域名配置文件

在/etc/nginx/conf.d/目录下添加新的域名配置文件,如www.example.com.conf,并修改该文件,添加如下内容:

重启 nginx 服务使配置生效:

(3)获取证书

如果生成成功,会有类似如下提示:

其中,公钥与私钥保存在 “/etc/letsencrypt/live/根域名/”目录中,目录地址中的“根域名”地址即命令中第一个 -d 参数指定的域名地址。

(4)配置支持 https 的 /etc/nginx/conf.d/www.example.com.conf 文件

保存后重启 nginx 服务即可生效:

(5)自动更新证书

letsencrypt 证书的有效期是3个月,查看证书到期时间:

可以手动在证书过期前的30天内进行续期,也可以进行脚本自动续期。续期的命令为:

renew 参数是官方推荐的续期方式, 使用这个参数会遍历 /etc/letsencrypt/live 下所有的证书,
如果证书在可续期的时间范围内(过期前30天内), 就会申请新的证书并替换原有证书, 否则跳过。

如果要指定更新某个域名的证书,则要使用如下命令,其实和新申请证书时的命令差不多:

最方便的方式还是让系统自动去执行,有以下两种脚本:

1)通过端口验证的脚本

2)通过临时目录的脚本

# 需要重启nginx证书才能生效

选取一种方式,一般选第二种即可。
将对应的脚本保存为 certbotrenew.sh。添加可执行权限

编辑 crontab 配置文件或执行 crontab -e 添加 cron 任务

#编辑定时任务

例如设置为每月28号23点执行此脚本:

保存退出即可。

参考

https://www.4spaces.org/nginx-lets-encrypt-ssl/
https://blog.csdn.net/qq_42649185/article/details/90266696
https://lnmp.org/

————————————————————

原创文章,转载请注明: 转载自孙希栋的博客

本文链接地址: 《CentOS 7 下安装配置LNMP环境并支持HTTPS》

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up