文章作者:我心中有猛狗
文章来源:https://my.oschina.net/u/1422143/blog/1635172
一、准备环境
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生效。
网站文章部分来源于网络,转载请注明原出处。
文章站内地址:人人营养网 » lnmp1.4配置https教程