CentOS7.3编译安装LNMP支持多站点、HTTPS访问(Nginx+MariaDB+PHP+WordPress+Let’s Encrypt)

一、前言

Nginx、PHP使用编译安装,MariaDB使用yum安装

1.1 环境版本如下

系统环境:CentOS 7.3

Nginx:Nginx-1.12

MariaDB:MariaDB-5.5.52

PHP:PHP-7.1.4

WordPress:WordPress-4.7.3

Let’s Encrypt

1.2 部署说明

安装包目录:/root/

Nginx安装目录:/usr/local/nginx/

Nginx主配置文件路径:/usr/local/nginx/conf/nginx.conf

Nginx网站根目录:/usr/local/nginx/html/

PHP安装目录:/usr/local/php7/

PHP配置文件路径:/usr/local/php7/php.ini

二、准备工作

2.1 安装或更新所需工具

2.2 创建所需的目录

cd进入用户家目录,nginx用于存放Nginx安装包相关,php用于存放PHP安装包相关

三、开始安装

3.1 Nginx篇

3.1.1 解压openssl

如出现 bash: htop: 未找到命令 运行yum -y install wget安装wget

3.1.2 解压pcre

3.1.3 解压zlib

也可以直接

3.1.4 安装Nginx

–prefix指定安装路径,–user设置设置非特权用户,–group设置非特权组,–with-http_ssl_module启用nginx的http_ssl模块,–with-http_v2_module启用nginx的http_v2模块,–with-openssl设置openssl的源码路径,–with-pcre设置pcre的源码路径,–with-zlib设置zlib的源码路径

设置防火墙允许80端口并重启防火墙

修改nginx配置文件

设置nginx启动服务

添加

设置Nginx开机启动并启动Nginx

3.2 MariaDB篇

yum安装MariaDB

设置MariaDB开机启动并启动MariaDB

运行mysql安全配置向导,回车——Y——输入两次设置root用户密码——回车默认Y——回车默认Y——回车默认Y——回车默认Y

连接数据库服务器

3.3 PHP篇

安装或更新所需工具

安装PHP

如果遇到
No package libmcrypt available.
No package libmcrypt-devel available.

执行
yum -y install epel-release //扩展包更新包
yum update //更新yum源
yum -y install libmcrypt libmcrypt-devel 就ok了

修改php配置文件php.ini

设置nginx启动服务

添加

设置PHP开机启动并启动PHP

新建phpinfo.php测试文件

访问http://ip/phpinfo.php显示phpinfo页面

3.4 安装WordPress

官网https://cn.wordpress.org/

修改nginx配置文件,支持多站点

新建WordPress的Nginx配置文件,复制粘贴以下内容

重启Nginx服务

访问WordPress

点击开始安装…跟着提示就能装完

3.5 Nginx使用Let’s Encrypt加密

官网https://letsencrypt.org/

本部分参考https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7

安装或更新epel、certbot

请求证书,使用该-d选项指定我们的域名,也可以单个证书使用多个域名(例如example.com和www.example.com)

certbot初始化后,系统将提示您输入一些信息。
在提示符下,输入将用于通知和丢失密钥恢复的电子邮件地址:
如果一切都成功,您应该看到一个输出信息,如下所示:

您将需要记录证书的路径和到期日期,这在示例输出中突出显示。

证书文件

获得证书后,您将拥有以下PEM编码文件:

cert.pem:您的域名证书
chain.pem:让我们加密连锁证书
fullchain.pem: cert.pem并chain.pem合并
privkey.pem:您的证书的私钥

为了进一步提高安全性,您还应该生成一个强大的Diffie-Hellman组。要生成2048位组,请使用以下命令:

修改Nginx域名配置文件配置SSL

添加防火墙规则并重启防火墙服务

重启Nginx服务

现在再去访问http://example.com/就会自动跳转到https://example.com/了

您可以使用Qualys SSL实验室报告来查看服务器配置的分数:

设置自动续订

添加以下

 

到此,CentOS7.3编译安装LNMP支持多站点、HTTPS访问就全部完成了,第一篇教程,多关注~

“CentOS7.3编译安装LNMP支持多站点、HTTPS访问(Nginx+MariaDB+PHP+WordPress+Let’s Encrypt)”的3个回复

  1. [root@ip nginx]# vim vhosts/example.com.conf
    [root@ip nginx]# systemctl restart nginx.service
    Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
    [root@ip nginx]# systemctl startus nginx.service
    Unknown operation ‘startus’.
    [root@ip nginx]# systemctl status nginx.service -l
    ● nginx.service – nginx
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Sat 2018-09-15 05:47:03 UTC; 49s ago
    Process: 11811 ExecStop=/usr/local/nginx/sbin/nginx -s quit (code=exited, status=1/FAILURE)
    Process: 11815 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (code=exited, status=1/FAILURE)
    Main PID: 11768 (code=exited, status=0/SUCCESS)

    systemd[1]: Unit nginx.service entered failed state.
    systemd[1]: nginx.service failed.
    systemd[1]: Starting nginx…
    nginx[11815]: nginx: [emerg] “server” directive is not allowed here in /usr/local/nginx/vhosts/example.com.conf:1
    systemd[1]: nginx.service: control process exited, code=exited status=1
    systemd[1]: Failed to start nginx.
    systemd[1]: Unit nginx.service entered failed state.
    systemd[1]: nginx.service failed.
    [root@ip nginx]#

    我不能从这里前进

    1. nginx[11815]: nginx: [emerg] “server” directive is not allowed here in /usr/local/nginx/vhosts/example.com.conf:1
      配置文件第一行有误

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据