VPS教程

LNMP一键建站脚本安装与使用-一键安装建站环境自动配置SSL证书

LNMP一键建站脚本,这里指的是lnmp.org的一个用Linux Shell编写的在Linux VPS或独立服务器上安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序,支持Nginx和Apache。

LNMP一键建站脚本一直是我们建站的首选Nginx/MySQL/PHP一键安装包,脚本每年会有一次大的改版更新,会加入更新的Nginx和PHP版本,以及增加相应的功能。就使用体验来看,LNMP一键建站脚本参考文档也非常地丰富,自定义功能很多,适合用于正式的生产环境。

这篇文章就来分享一下LNMP一键建站脚本安装与使用,如果你不喜欢用命令工具的话,可以安装VPS主机控制面板,像管理虚拟主机一样管理你的VPS主机建站:服务器控制面板榜单。更多的关于VPS主机教程以及VPS建站,请参考:

  1. Oneinstack从入门到精通-Oneinstack安装与使用教程收集整理
  2. BT宝塔面板安装与使用-DirectAdmin空间平滑迁移至VPS主机的过程
  3. VPS主机和服务器安全防护:SSH修改端口,添加白名单,仅限密钥登录

PS:更新记录.

1、最新的LNMP一键安装包安装与建站教程请看:新版LNMP一键安装包建站教程-一键安装Web环境自动签发SSL证书。2022.7.11

2、有的人可能纠结于LNMP还是Oneinstack,这是两者之间优势比较: LNMP一键建站工具与Oneinstack建站工具使用对比。2021.1.05

3、如果想要ngx_pagespeed和WebP一键安装功能,你可以试试这个国外的优秀建站工具:Centmin Mod国外优秀的LNMP一键建站工具-优化ngx_pagespeed和WebP。2020.12.12

一、LNMP一键建站脚本安装

网站:

  1. https://lnmp.org

LNMP每年都会发布一个大的版本,安装前需要注意以下几点:

需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
需要128MB以上内存(128MB小内存VPS,Xen需有SWAP,OpenVZ至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存,更高版本至少要2G内存!。
安装PHP 7及以上版本必须1G以上内存!。
Ubuntu 18+,Debian 9+,Mint 19+,Deepin 15.7+及所有新的Linux发行版只能使用1.7进行安装!
PHP 7.1.*以下版本不支持Ubuntu 19+、Debian 10等等非常新的Linux发行版!
PHP 7.4升级或安装必须CentOS 7+,Debian 8+,Ubuntu 16.04+且必须使用1.7!
MySQL 8.0升级或安装必须CentOS 8+,Debian 9+,Ubuntu 16.04+且必须使用1.7!

如果你想要使用PHP7.4,你的操作系统必须是CentOS 7+,Debian 8+,Ubuntu 16.04+以上,低版本的操作系统是无法安装的。MySQL 8.0要求更高,CentOS 8+,Debian 9+,Ubuntu 16.04+以上的操作系统才可以。

安装命令如下:

screen -S lnmp
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh lnmp

安装过程中选择MySQL、MariaDB版本、设置Mysql数据库密码、是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启。提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。以下为安装视频:

二、LNMP一键建站脚本配置

2.1 配置缓存

LNMP一键建站脚本默认没有安装eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache,如果用于Wordpress,一般是建议安装Memcached、opcache、Redis这三个,有利于提升PHP的运行效率。

./addons.sh 

##### cache / optimizer / accelerator #####
1: eAccelerator
2: XCache
3: Memcached
4: opcache
5: Redis
6: apcu
##### Image Processing #####
7: imageMagick
##### encryption/decryption utility for PHP #####
8: ionCube Loader
exit: Exit current script
#####################################################
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8 or exit): 

执行命令:./addons.sh,就可以看到安装选项了。

2.2 升级LNMP

如果你想升级Nginx、PHP、Mysql,可以使用bash upgrade.sh命令。

2.3 基本命令

使用LNMP你还需要知道几个命令:

LNMP 1.2+状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2+各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Redis状态管理: /etc/init.d/redis {start|stop|restart|kill}

2.4 基本路径

使用LNMP你还需要知道网站的路径、Nginx与PHP等配置文件路径,以便于自己以后进行调整和修改。

LNMP相关软件安装目录:

Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
多PHP版本目录 : /usr/local/php5.5/ 其他版本前面5.5的版本号换成其他即可
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/

LNMP相关配置文件位置:

Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf 1.3及更高版本:/usr/local/pureftpd/etc/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf

三、LNMP一键建站添加网站

3.1 添加网站

基本命令:

lnmp vhost {add|list|del}

先把你的域名解析到你的VPS主机的IP上,然后执行添加网站命令:lnmp vhost add,填写你的域名、设置网站的目录、伪静态、设置日志、数据库等。操作说明如下:

root@ecs-WYt6B:~/lnmp1.7# lnmp vhost add
+-------------------------------------------+
|    Manager for LNMP, Written by Licess    |
+-------------------------------------------+
|              https://lnmp.org             |
+-------------------------------------------+
Please enter domain(example: www.lnmp.org): lvps.wzfou.me
 Your domain: lvps.wzfou.me #绑定你的域名
Enter more domain name(example: lnmp.org *.lnmp.org): #是否有其它的域名,没有话直接回车
Please enter the directory for the domain: lvps.wzfou.me
Default directory: /home/wwwroot/lvps.wzfou.me: #网站根目录
Virtual Host Directory: /home/wwwroot/lvps.wzfou.me
Allow Rewrite rule? (y/n) y #是否添加重写规则
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): wordpress 
You choose rewrite: wordpress
Enable PHP Pathinfo? (y/n) n #一般是否
Disable pathinfo.
Allow access log? (y/n) y #是否开启网站日志
Enter access log filename(Default:lvps.wzfou.me.log): 
You access log filename: lvps.wzfou.me.log
Create database and MySQL user with same name (y/n) y #是否添加数据库
Enter current root password of Database (Password will not shown): 
OK, MySQL root password correct.
Enter database name: wzfou
Your will create a database and MySQL user with same name: wzfou
Please enter password for mysql user wzfou: wzfou.com
Your password: wzfou.com 
Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
It will be processed automatically.

Press any key to start create virtul host...

如下图,成功添加了网站,并且开启了SSL证书。

3.2 301跳转

LNMP一键建站工具没有设置301自动将Http跳转到Https,我们还需要进一步设置,找到你的域名的nginx配置文件,编辑添加以下代码,然后重启nginx生效。

return 301 https://$server_name$request_uri;

如下图:

效果见下图:

四、LNMP一键建站自动备份

LNMP1.2/1.3+版本安装包目录下有一个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。 这些工具可以在使用LNMP提供一些很有用的安全防护设置

4.1 本地备份

LNMP一键建站脚本只有本地备份,脚本为:backup.sh,备份脚本需要修改一下几个参数。

Backup_Home="/home/backup/" #####备份文件存放目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" ####mysqldump路径,如果是mariadb替换/usr/local/mysql为/usr/local/mariadb
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org") ##########要备份的目录,目录用双引号括起来,多个目录空格隔开,如前面的例子
######~Set MySQL Database you want to backup~######
Backup_Database=("lnmp" "vpser") ########要备份的数据库,前面有例子
######~Set MySQL UserName and password~######
MYSQL_UserName='root' ####不用说了,MySQL root账号
MYSQL_PassWord='yourrootpassword' ##### MySQL root密码
######~Enable Ftp Backup~######
Enable_FTP=0 #####是否启用ftp备份,0 启用,非0 不启用
# 0: enable; 1: disable
######~Set FTP Information~###### ftp账号信息
FTP_Host='1.2.3.4'
FTP_Username='vpser.net'
FTP_Password='yourftppassword'
FTP_Dir="backup" #########ftp服务器上存放备份的目录
#Values Setting END!
默认备份文件保存3天,可以修改backup.sh里的-3day为你指定的天数。

4.2 定时备份

为了达到自动备份的效果,需要配合crontab使用,有关于Linux定时任务更多的设置说明请参考:Linux Crontab命令定时任务基本语法与操作教程

#添加定时脚本
crontab -e
#编辑定时脚本,然后添加:
0 1 * * * /root/lnmp1.7/tools/backup.sh
#设置每天凌晨1点执行一次,至此自动备份就成功了。

4.3 同步到网盘

这一步我们主要是利用了clone工具了,有关于clone的介绍与使用请参考:VPS挂载国内外网盘实现免费扩容工具:Rclone,COS-Fuse和OSSFS

在本地根目录下新建cmd目录,然后cd cmd,新建一个sh文件。

vim vpsback.sh

复制以下命令:

#!/bin/bash

/root/lnmp1.7/tools/backup.sh

/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/backup" "wzfoumi:wzfoumima"

echo "BACKUP DATE:" $(date +"%Y-%m-%d %H:%M:%S") >> /var/log/backup.log

说明:

第一句是执行LNMP备份。

第二句是利用rclone copy命令,将指定目录/backup下新增加的文件,同步到Google网盘中,”wzfoumi:wzfoumima”是指名称为wzfoumi的rclone,wzfoumima是谷歌网盘中的文件夹。

第三句是输出日志,即表示执行了一次备份命令。

赋予执行权限:

chmod +x vpsback.sh<br>

先测试一下从是否可以正确运行,我们可以看到本地文件夹已经有打包过来的文件。同时,可以看到网盘中已经有了同步过来的文件了。

添加定时任务,让脚本每天执行一次。

0 2 * * * /cmd/vpsbackup.sh > /dev/null 2>&1 &

五、总结

LNMP一键建站脚本自带了wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 等重写规则,相对Oneinstack少了NextCloud等热门程序规则。

相对于Oneinstack来说,LNMP一键建站脚本可以在创建网站时添加MysqL数据库,免去了到PHPmyAdmin自己创建数据库了。

文章出自:挖站否 https://wzfou.com/lnmp-yijian-jianzhan/, 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

文章更新于: %s = human-readable time difference 上午11:17

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论