LNMP 是一个用 Linux Shell 编写的用于在 CentOS/RHEL/Fedora/Debian/Ubuntu 系统上搭建生产环境的 Shell 程序。LNMP = Linux/Nginx/MySQL/PHP。
以下针对 LNMP v1.7 版本
我使用的 Vultr $5.00/mo 实例的配置如下:
- CPU: 1 vCore/RAM: 1024 MB/Storage: 25 GB SSD/OS: CentOS 7 x64 with Docker
- 主要使用 WordPress,附带使用 frp、Fail2mail
经我测试,以上配置支持到的 LNMP 各组件的最高版本如下,再高的话,内存大小不支持或者无法正常安装了:
- Nginx:1.18.0
- PHP:7.3.22
- MySQL:5.7.30
- phpMyAdmin:4.9.7
LNMP 系统要求及安装
系统要求
- CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/Mint Linux 发行版
- 需要 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 或以上内存!。
- VPS 或服务器必须设置好可用的 yum 或 apt-get 源并确保能正常工作,离线安装需要增加 CheckMirror=n 参数!
- Linux 下区分大小写,输入命令时请注意!
- 如有通过 yum 或 apt-get 安装的 MySQL/MariaDB 请自行备份数据等相关文件!
- CentOS 5、Debian 6 及之前版本其官网已经结束支持无法使用!
- Ubuntu 18+、Debian 9+、Mint 19+、Deepin 15.7+ 及所有新的 Linux 发行版只能使用 LNMP 1.7!
- PHP 7.1.* 以下版本不支持 Ubuntu 19+、Debian 10 等等非常新的 Linux 发行版!
- 阿里云 Ubuntu 14.04 系统模版有问题不要用!!!
- PHP 7.4 升级或安装必须 CentOS 7+、Debian 8+、Ubuntu 16.04+ 且必须使用 LNMP 1.7!!!
- MySQL 8.0 升级或安装必须 CentOS 8+、Debian 9+、Ubuntu 16.04+ 且必须使用 LNMP 1.7!!!
安装步骤
SSH 到 VPS,运行如下命令:
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp
然后根据提示安装即可。
LNMP 各组件升级
注意:以下操作均必须在 lnmp 安装包压缩包解压后的目录里运行,如 lnmp1.7 解压后的目录就是 lnmp1.7 或 lnmp1.7-full。
Nginx
执行:./upgrade.sh nginx
,按提示输入 Nginx 的版本号(访问 https://nginx.org/en/download.html 获取 Nginx 的版本号。如:1.18.0)后回车,再次回车确认即可开始升级 Nginx。Nginx 升级为平滑升级,升级过程不影响 Nginx 的运行。
MySQL
虽然脚本会备份数据,但依然建议先自行备份数据库!
执行:./upgrade.sh mysql
,按提示先输入 MySQL 的 root 密码进行验证,验证通过后输入 MySQL 的版本号(访问 https://dev.mysql.com/downloads/mysql/ 获取 MySQL 的版本号。如:5.7.30)后回车,提示是否启用 InnDB,如要启用 InnoDB 或不确定直接按回车,再次回车确认即可开始升级 MySQL。
将会在 /root 目录下生成 mysql_upgrade+日期.log
的日志文件,供出错时排查。
PHP
执行:./upgrade.sh php
,按提示输入 PHP 的版本号(访问 https://www.php.net/downloads.php 获取 PHP 的版本号。如:7.3.22)后回车,再次回车确认即可开始升级 PHP。
升级完 PHP 后如果 phpMyAdmin 无法使用,需要升级 phpMyAdmin 版本至对应于 PHP 和 MySQL 的版本。
phpMyAdmin
执行:./upgrade.sh phpmyadmin
按提示输入 phpMyAdmin 的版本号(访问 https://www.phpmyadmin.net/downloads 获取 phpMyAdmin 的版本号。如:4.9.7)后回车,再次回车确认即可开始升级 phpMyAdmin。
升级失败的恢复
Nginx
将 /usr/local/nginx/sbin/nginx.+日期
的文件重命名为 nginx
,然后再启动 nginx lnmp nginx start
即可恢复 Nginx。
MySQL
将 /usr/local/oldmysql+日期
目录下的 init.d.mysql.bak.+日期
文件拷贝到 /etc/init.d/ 目录下并重命名为 mysql
,及将 my.cnf.bak.+日期
文件拷贝到 /etc/ 目录下并重命名为 my.cnf
,并将 /usr/local/oldmysql+日期
目录重命名为 mysql
即可恢复 MySQL。
PHP
将 /usr/local/oldphp+日期
目录下的 init.d.php-fpm.bak.+日期
文件拷贝到 /etc/init.d/ 目录下重命名为 php-fpm
,并将 /usr/local/oldphp+日期
目录重命名为 php
即可恢复 PHP。
phpMyAdmin
无