lnmp1.4配置https教程

一、准备环境

LNMP 1.4

下载版:(不含源码安装包文件,仅有安装脚本及配置文件)
http://soft.vpser.net/lnmp/lnmp1.4.tar.gz  (134KB)
MD5: 223585139fb613f47990b1b41979adea

完整版:
国内:http://soft1.vpser.net/lnmp/lnmp1.4-full.tar.gz  (467MB)
国外:http://soft2.vpser.net/lnmp/lnmp1.4-full.tar.gz  (467MB)
MD5: f1121dbf903e02f2e98987f6cabd5198

最后更新:2018年2月28日 10:50 GMT+8
下载完建议先验证MD5。

二、实操流程

    1、已部署上线项目,添加https,执行lnmp ssl add

    

    2、选择配置SSL证书方式

   

    3、完成配置SSL证书

    

    4、检查Let's Encrypt是否自动续期

    

    5、部署SSL证书后续工作(301跳转

        我们在安装SSL证书之后,http和https都是可以访问到站点的,但是为了唯一性,我们肯定需要做301跳转到https指向。

1、目录地址文件

/usr/local/nginx/conf/vhost

        我们需要到这个目录中当前站点的.conf配置文件。

2、修改配置文件

server
    {
        listen 80;
        server_name www.xxx.com;
        rewrite ^(.*) https://$server_name$1 permanent;
    }

我们将上面的脚本添加到当前站点配置文件中。(conf配置文件,双server)

server
    {
        listen 443;
        server_name www.xxx.com;
        ......
    }
server
    {
        listen 80;
        server_name www.xxx.com;
        rewrite ^(.*) https://$server_name$1 permanent;
    }

        总结,就这样我们就很快速、简单的在站点部署了Let's Encrypt免费SSL证书。老左估摸着具体的部署方法在新版本出来的时候也不会有太大变化。

问题1:nginx: [warn] conflicting server name "www.xxx.com" on 0.0.0.0:443, ignored

        我本来域名是在http下的,新增https域名访问,lnmp自动在www.xxx.com.conf下插入了一个新的server导致报错,删除即可

问题2:防跨目录设置

    lnmp1.4上如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将

/usr/local/nginx/conf/fastcgi.conf

里面的

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

在该行行前添加 # 或删除改行,需要重启nginx。

lnmp1.4上也可以直接使用lnmp1.4/tools/ 目录下的

进行移除。
在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的


LNMPA或LAMP 模式1.2版本以上的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
重启apache生效。

猜你喜欢

转载自my.oschina.net/u/1422143/blog/1635172
今日推荐