Awesome
initServer
一个服务器初始化脚本工具。脚本借鉴了 lnmp 的许多写法,Nginx 的编译安装及配置参考了 本博客开始支持 TLS 1.3 的方式。在此感谢两位大大。
使用方式
curl https://raw.githubusercontent.com/zsenliao/initServer/master/initServer.sh -O
也可以通过在命令末尾添加
|tee install-info.log
的方式来记录安装日志
主要功能
- 添加用户及 SSH 配置。可选择添加用户,以及是否自定义配置
SSH
。如选择是,按照提示「傻瓜」式操作就好。 - git/zsh/oh-my-zsh 等安装、vim 升级
- MySQL/PHP/Python3(uwsgi)/Redis/Nodejs/Nginx/ikev2/acme.sh 等服务可选择安装
关于 添加用户及 SSH 配置
- 按照提示操作,如果成功,后续登录服务器只能通过密钥文件的方式;操作失败可选是否删除新添加的用户;
- SSH 配置会禁用 ROOT 远程登录、禁用用户密码登录;
- 如需要 ROOT 权限,可以通过添加的用户名登录后,再
su
切换到 ROOT 用户;- 如果使用的是阿里云、腾讯云等云服务器,并且自定义了 SSH 端口,需要在云管理平台添加对应的端口;
关于 VIM
- 安装了 vim-for-server 插件;
- 代码高亮增加了
nginx
,ini
,php
,python
等文件类型
关于 MySQL
- 禁止了远程连接;
- 可以自行安装
phpMyAdmin
之类的工具;如使用桌面客户端,请使用SSH 隧道
的方式;
工具说明
- 脚本主要自用,因此没考虑多系统环境
- 只支持 CentOS
- 不提供 MySQL/PHP/Nginx 等服务的多版本选择
- 提供了一个简单的管理工具
pnmp
(可自定义名字,但注意不要与系统或其他第三方工具同名)
关于管理工具
- Usage: pnmp {start|stop|reload|restart|kill|status|test}
- Usage: pnmp {nginx|mysql|php-fpm|redis|uwsgi} {start|stop|reload|restart|kill|status}
- Usage: pnmp vhost {add|list|del}
- Usage: pnmp cert {check|update|auto}
通过管理工具添加站点说明
- 新增站点时,会通过 acme.sh 申请并安装域名证书;
证书有效期安装脚本的 BUG,已修复3个月
,请记得通过 acme.sh 及时续期(看一些文档是说有自动续期功能,但我的没实现😂);- 泛域名证书的申请,只能通过
DNS
的方式,请自行通过 acme.sh 申请;- 站点强制使用
HTTPS
TODO
- 站点目录自定义更改
- 管理工具自定义命名
- 选择安装是否 shellMonitor
- 增加域名证书到期时间检测
- 域名证书续期
- 增加自定义命名管理工具时的名称检测
- 增加管理工具的升级功能
- 修复新增域名时申请正式后自动更新失败的 BUG
- 跨域设置中,增加多域名的处理
- 增加邮件发送处理
- 增加 Tomcat 安装
- 安装失败日志记录
- 自动获取IP失败,提示手动输入
- 自定义升级服务版本
- 增加 htop 安装
- 增加 https 泛域名证书申请