Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持
很多人害怕用Linux VPS建站的原因,不外乎两个原因:一个是不知道如何使用Linux,第二个就是习惯了使用面板管理。但是从部落自己的建站经验来看,VPS建站最好还是不要用面板,使用LNMP这类的一键安装包定制性和实用性更强。
与自己配置Web环境不同的是,LNMP一键安装包差不多就是一个集成工具了,只要使用几行命令就可以快速搭建Nginx/MySQL/PHP/Apache。不会Linux的站长或Linux新手想使用Linux作为生产环境,建议前期花一点学习一下命令,后面维护就简单了。
本文要分享的LNMP一键安装包来自lnmp.org,建站的朋友都应该听过或者使用过它,基本上lnmp.org已经成为了LNMP代名词,稳定且不断更新。目前LNMP 1.4增加了PHP 7 和多PHP版本共存、Let’s Encrypt自动部署与续期、http2支持等几个亮点。
- 利用MailChimp建立RSS邮件订阅平台-每月免费12000封邮件可加2000用户
- 服务器虚拟化面板SolusVM安装与使用-支持新建管理OpenVZ, KVM和Xen VPS
- 再见-那段8年的部落之旅,你好-即将开始未知的坚持:挖站否?
一、LNMP 1.4快速安装方法
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS、Debian、Ubuntu、Raspbian或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。
1.1 LNMP 1.4安装要求
LNMP 1.4官网:https://lnmp.org/,每年的6月1号会进行一次大的版本升级,大家可以关注官网的动态。
LNMP 1.4安装主要有以下几点注意事项:
需要5GB以上硬盘剩余空间 。
需要128MB以上内存(如果为128MB的小内存VPS,Xen的需要有SWAP,OpenVZ的至少要有128MB以上的vSWAP或突发内存)。
安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存。
1.2 LNMP 1.4安装命令
LNMP 1.4安装命令其实只有几行,大部分时间都交由脚本自动下载与配置,命令如下:
screen -S lnmp
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
注意:默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。如需更改网站和数据库目录先修改安装包目录下的 lnmp.conf 文件。
1.3 LNMP 1.4安装过程
运行LNMP 1.4一键安装时,首先会要你选择MysqL版本和设置一个MysqL密码。
然后是问你要不要安装PHP,以及数PHP本号。如果你的程序兼容最新的,请选择7.0和7.1以上,因为根据测试7.0以上的PHP性能有质的提升。
最后就是耐心地等待LNMP 1.4安装完成了,耗时至少要半个小时以上。安装完成后,当你看到如下界面就表示已经成功了。
打开你的IP地址,你就可以看到LNMP默认的首页了。该页面已经有了探针、PHPmyAdmin、扩展组件等链接,你可以直接点击查看。
二、LNMP 1.4管理网站与SSL证书
LNMP 1.4配置SSL是在创建网站时自动申请Let’s Encrypt证书并配置的,所以如果你打算使用SSL证书的话建议你在创建网站时就申请好。当然,如果在创建网站时忘记了,你也可以自己修改Nginx代码,这个稍后再讲。
2.1 LNMP 1.4创建网站
首先你需要进入到LNMP解压目录中,因为这些命令都在这个目录当中。然后执行命令:lnmp vhost add。接下来会要你绑定网站域名、网站根目录(可以直接回车)、URL重写规则(默认有WP、DZ可选)、以及是否开启日志。
2.2 LNMP 1.4自动安装SSL
要想让LNMP 1.4自动安装Let’s Encrypt证书,你需要先将自己的域名解析到你的VPS主机。
然后回到刚刚创建网站的界面,设置数据库名称和用户名、密码,在是否设置SSL证书时选择是,然后选择Let’s Encrypt证书。
稍等一会儿,LNMP 1.4就已经自动创建好了网站,同时也自动部署好了SSL证书了。
用浏览器打开域名,你就可以看到域名已经成功访问并上了SSL证书了。
三、安装memcached等附加组件
LNMP 1.4默认的并没有安装memcached等缓存,我们需要自己手动安装。执行命令:./addons.sh,然后你就可以eAccelerator、 XCache、Memcached、opcache、Redis、apcu、imageMagick、 ionCube Loader等共8个附加组件可以一键安装。
安装好了后,你就可以在LNMP探针中查看是否已经成功。
opcache安装成功后,LNMP已经有了一个网页查看工具,打开IP+ocp.php,你就可以看到自己的opcache缓存情况了。opcache是PHP官方的缓存插件,建议安装PHP 7以上的配备,效果非常好。
如果来查看memcached是否成功使用呢?一个方法就是下载一个memcached网页工具:http://pecl.php.net/get/memcache-3.0.8.tgz,备用:https://www.ucblog.net/memcache-3.0.8.tgz。解决找到memcache.php这个文件,然后打开修改登录名与密码,同时添加127.0.0.1服务器,把其它的服务器注释掉。
将memcache.php文件上传到你的网站根目录,接着用浏览器打开访问,输入你账号设置的账号与密码,这时你就可以直观看到自己的网站的memcached是否已经启用,memcached缓存的命中率是多少,也可以在线重置memcached缓存。(点击放大)
另一个方法就是直接使用命令查看。输入:telnet 127.0.0.1 11211,看如下图时再输入:stats,就可以进入到memcached连接了。
命令会详细列出memcached的信息,包括了总缓存大小,已经命中次数,未命中次数,你只需要将已命中次数除以总缓存大小得到的结果就是memcached命中率了。相关说明如下:
STAT pid 22972
STAT uptime 709
STAT time 1497577962
STAT version 1.4.36
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.200000
STAT rusage_system 0.084000
STAT curr_connections 5
STAT total_connections 13
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 5 #总共获取次数
STAT cmd_set 3
STAT cmd_flush 1
STAT cmd_touch 0
STAT get_hits 3 #已命中次数
STAT get_misses 2 #没有命中次数
STAT get_expired 0
STAT get_flushed 1
STAT delete_misses 0
STAT delete_hits 1
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 305
STAT bytes_written 8111
STAT limit_maxbytes 67108864 #缓存大小
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT bytes 0 #当前使用多少缓存
STAT curr_items 0
STAT total_items 3
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
使用此命令可以清空缓存:stats reset。要退出 telnet,输入组合键 Ctrl+] 出现telnet>,然后输入 q 即可退出。
四、LNMP 1.4建站的几个问题
LNMP 1.4的安装包里会一个Tools工具,这里有备份脚本 backup.sh,nginx日志切割脚本 cut_nginx_logs.sh,SSH防护安装脚本denyhosts.sh 和 fail2ban.sh,MySQL/MariaDB root密码重装工具 reset_mysql_root_password.sh及PHP函数辅助删除工具 remove_disable_function.sh。
4.1 网站文件与数据库备份
打开backup.sh,然后修改你要备份的网站路径,支持添加多个网站,目录用双引号括起来,多个目录空格隔开。要备份数据库的话,把数据库的名称还有Root的密码填写进去。mysqldump路径保持不变,如果是mariadb替换/usr/local/mysql为/usr/local/mariadb。
修改好了后,重新上传backup.sh,然后进入该目录执行命令:./backup.sh,即实现手动备份。
如果你想实现定时备份,你需要将该路径下的命令添加到定时任务中,执行:crontab -e,输入以下命令保存表示每天凌晨1点开始自动备份:
00 01 * * * /bin/bash /root/lnmp1.4/tools/backup.sh
4.2 日志切割并自动删除日志
如果你开启了日志,那么随着时间的推移,你的日志文件会越来越大,有的甚至可以达到几十个GB,这很容易占用大量的服务器空间。LNMP 1.4有日志切割工具,自动把每天的日志按照时间划分,并设置过期时间自动删除日志。
打开cut_nginx_logs.sh,编辑你要切割的日志名称,保存再次上传。
执行:crontab -e,输入以下命令保存表示每天凌晨2点开始自动切割日志。
00 02 * * * /bin/bash /root/lnmp1.4/tools/cut_nginx_logs.sh
日志会按照日期来分类的,默认的是过期3天,3天后会自动删除日志。你也可以自己设置好保留的时间。
4.3 LNMP 1.4 PHP多版本
多PHP版本只支持LNMP模式,LNMPA、LAMP模式下不支持。要使用多PHP先安装多PHP版本,在lnmp1.4源码目录下运行:./install.sh mphp,然后选择你要安装的PHP版本就好了。
已安装好多PHP版本的话,lnmp vhost add 时会在设置完日志名称后提示当前已经存在的PHP版本,按提示的数字选择就可以。如果已经存在的虚拟主机要更改PHP为指定版本需要修改虚拟主机的配置文件。
配置文件为 /usr/local/nginx/conf/vhost/域名.conf ,将里面的include enable-php.conf; 替换为 include enable-php7.1.conf; 前面的7.1为php版本,可以根据自己的需要进行修改,但必须要对应的多php版本已经安装,要不然会提示502错误。
4.4 LNMP 1.4 做301跳转
强制http跳转到Https。默认,LNMP并没有自动配置好Http跳转到Https,你只需要进入:/usr/local/nginx/conf/vhost/域名.conf,打开域名配置文件,添加以下代码在listen 80那个server代码段中。
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
如下图:
强制www跳转到非www。不想使用www这样的域名,你可以强制将www跳转到非www上,同上在域名配置文件listen 443那个server代码添加以下代码:
if ($host != wzfou.com) {
rewrite ^/(.*)$ $scheme://wzfou.com/$1 permanent;
}
这里给出我的LNMP的域名配置文件,你可以参考此代码手动添加自己的SSL证书,或者设置301跳转。
server
{
listen 80;
#listen [::]:80;
server_name wzfou.com www.wzfou.com ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/lnmp14.freehao123.info;
include wordpress.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/lnmp14.freehao123.info.log;
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name wzfou.com www.wzfou.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/lnmp14.freehao123.info;
ssl on;
ssl_certificate /etc/letsencrypt/live/lnmp14.freehao123.info/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lnmp14.freehao123.info/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
include wordpress.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
if ($host != wzfou.com) {
rewrite ^/(.*)$ $scheme://wzfou.com/$1 permanent;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/lnmp14.freehao123.info.log;
}
五、 总结
LNMP 1.4是一个快速搭建PHP\MysqL\Nginx的好工具,虽然说LNMP 1.4支持安装Apache,还可以选择LAMP和LNMPA模式,但是经过我的测试,还是选择LNMP模式无论是后期维护还是优化升级都要好一些。
LNMP 1.4支持的缓存插件很多,但是建议你不要安装太多的缓存插件,只选择一个就好。PHPMyAdmin目录强烈建议将此目录重命名为其不容易猜到的名字,phpmyadmin可自己从官网下载新版替换。
文章出自:挖站否 https://wzfou.com/lnmp-1-4/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
- 新版LNMP一键安装包建站教程-一键安装Web环境自动签发SSL证书
- Mdserver-web开源免费的VPS主机控制面板-类似宝塔面板后台管理操作
- LNMP一键建站脚本安装与使用-一键安装建站环境自动配置SSL证书
- Centmin Mod国外优秀的LNMP一键建站工具-优化ngx_pagespeed和WebP
- LNMP 1.6安装与使用-自动开启TLS 1.3和支持PHP 7.3\MariaDB 10.3
- LAMP.sh一键安装包轻松搭建Apache建站环境-自动安装SSL和PHP组件
- Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持
- AMH 国内开源免费云主机面板安装与使用-免费SSL,自动备份和应用安装
- 国内外流行的VPS主机和服务器控制面板-让VPS像虚拟主机一样轻松建站
- LNMP一键安装包-添加网站,SSL证书,日志管理,网站备份和安全问题
猜你喜欢
-
很久没折腾vps了,20G硬盘是不是重装centos系统后实际只有10G硬盘使用,还剩10G需要挂载啊! 🙁
2018年2月5日 10:27 -
博主一般都是自己编译安装Nginx的吗?还是选择LNMP一键安装呢?
2017年10月21日 13:57 -
非常nice,博主可以写个在Linux运行EXE程序的教程么,网上找的用wine基本都不行啊
2017年6月26日 04:26 -
还是这么详细的风格。我比较烦缓存,所以一直没装任何缓存。阿里云香港的速度还可以。
2017年6月21日 22:12 -
lnmp对于内存小的服务器运行网站挺合适的
对了,站长的静态档案切换到又拍CDN的二级网域了,载入的速度很快2017年6月21日 07:44 -
很好,学习了😊😊😊
2017年6月20日 23:17 -
坐等OneinStack放大招,哈哈😄
2017年6月20日 18:43 -
因为上次博主去我博客留了一个言,让我终于下决心解决了早就该解决的一个我博客的问题,感谢! 😀
2017年6月20日 15:40 -
很详细的一篇教程,以后玩vps的时候试试不用面板。
2017年6月20日 10:42 -
小内存和小空间都不可能流畅运行 mysql5.7,还是安心用5.6
2017年6月20日 00:44 -
前排支持
2017年6月19日 22:24
network error:software caused connection abort 哈哈哈 竟然又失败