无人值守安装模式下LNMP一键安装包组件版本的设定

lnmp.org每年发布一个版本一键安装包,如无特殊情况,组件的版本一般不会更新。这次1.5版出来后不久,PHP官方就升级了7.2系列的版本,因而安装时就想绕开安装后再进行组件升级的方法[1]来完成环境的搭建工作,而是直接一次性的无人值守安装到位。无人值守的安装相当方便,官网今年发布了安装代码在线生成工具,但是在安装说明常见问题专栏中却并没有提及如何在安装前就配置好组件自定义版本的方法,仅在论坛针对用户网友的回复中说明了解决方案,现把具体完整的方法整理如下。

以安装LNMP架构为例,其中各组件版本为:

  • Nginx: stable 1.14
  • MySQL: GA 5.5.60
  • PHP: 7.2.6

它的无人值守自动安装命令为[2]

1
2
3
4
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz
tar zxf lnmp1.5.tar.gz
cd lnmp1.5
LNMP_Auto="y" DBSelect="2" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="8" SelectMalloc="1" ./install.sh lnmp

现如要直接安装完就是PHP 7.2.7版,则需要进行以下几步操作:

  • 下载LNMP一键安装包的完整版本并解压到(诸如)/root/lnmp1.5的目录下,或直接执行wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz
  • 进入/root/lnmp1.5/include子目录,将version.sh这个文件的第58行内容由Php_Ver='php-7.2.6'修改为Php_Ver='php-7.2.7'
  • 官网下载php-7.2.7.tar.bz2[3]并上传进/root/lnmp1.5/src目录下待用
  • 进入/root/lnmp1.5/目录下执行无人值守安装命令LNMP_Auto="y" DBSelect="2" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="8" SelectMalloc="1" ./install.sh lnmp

同理,如要预先设定或调整其它所安装的、但在/root/lnmp1.5/src源码包目录下已有的组件的版本,比如Nginx,也可这样处理。但一般以针对小版本号的为宜,如本例中从7.2.6升级到7.2.7,如果要从7.2.6升级到7.3,或其它LNMP一键包中尚未收录进的主版本,不稳定性将是一个不得不考虑的因素。


  1. 机器内存小,而LNMP一键安装包内各组件均为编译方式安装,这样的方案虽有利于LEMP环境稳健简洁,但偶尔一次的安装或升级编译却能消耗掉不少系统、特别是CPU的资源,甚至被主机商锁频。 ↩︎

  2. MySQL启用InnoDB引擎,PHP不安装内存分配器,预设数据库管理密码为lnmp.org ↩︎

  3. PHP官网提供的源码包包括.bz2、.zip、.gz三种格式的,理论上三种格式均可解压,但为保持与既有组件源码包格式统一,以.bz源码压缩包为主 ↩︎