LNMP一键安装包对于小型系统部署来说真的是非常方便,日常工作中除了在线安装,也存在部分场景要求离线安装。比如内网专网、严格限制访问外网的网络等,有些院校的实验室就是这种情况,需要使用光盘来完成系统的部署安装。如果是纯粹离线环境我们可以使用光盘刻录大师等工具通过光驱将软件包刻录到光盘中。博文是模拟离线安装方式,将离线安装的软件包通过网络工具上传到服务器上。博文实验环境:
官网下载LNMP1.9完整版离线包。
lnmp安装包完整版包含了大部分软件的安装包,但是不包括MySQL5.7和MySQL8的二进制安装包,如果我们需要使用msyql的二进制包安装方式则需要将mysql软件包手动上传到lnmp目录下的src目录下,需要什么版本则上传对应版本的二进制软件包。
[root@s142 opt]# ll
total 1764084
-rw-r–r-- 1 root root 1078271437 Oct 28 11:03 lnmp1.9-full.tar.gz
-rw-r–r-- 1 root root 728148899 Jan 19 2021 mysql-5.7.32-el7-x86_64.tar.gz
l离线安装不是不需要源,而是需要你在本地搭建一个供安装使用的源。物理机我们可以使用光驱挂载操作系统镜像盘。如果是虚拟机我们可以将系统ISO文件上传到服务器的/root目录,然后将光盘进行挂载。
[root@s142 opt]# mkdir -p /mnt/dvd
[root@s142 opt]# mount /root/CentOS-7-x86_64-DVD-1810.iso /mnt/dvd
mount: /dev/loop0 is write-protected, mounting read-only
因为我们需要使用本地yum源,修改配置文件前我们将所有repo文件进行备份。备份完成后创建一个CentOS-Media.repo配置文件。
[root@s142 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
…
[root@s142 yum.repos.d]# vim /etc/yum.repos.d/CentOS-Media.repo
#将如下内容写入CentOS-Media.repo文件并保存
[local-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/dvd/
#file:///mnt/dvd2/
#如果有第二张光盘将前面dvd2行前面的 # 注释符号去掉
gpgcheck=0
enabled=1
gpgkey=file:///mnt/dvd/RPM-GPG-KEY-CentOS-7
[root@s142 opt]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local-media
Cleaning up list of fastest mirrors
Other repos take up 151 M of disk space (use --verbose for details)
[root@s142 opt]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
local-media | 3.6 kB 00:00:00
(1/4): local-media/group_gz | 166 kB 00:00:00
(2/4): local-media/primary_db | 3.1 MB 00:00:00
(3/4): local-media/filelists_db | 3.2 MB 00:00:00
(4/4): local-media/other_db | 1.3 MB 00:00:00
Metadata Cache Created
[root@s142 opt]# tar -zxvf lnmp1.9-full.tar.gz
[root@s142 opt]# cd lnmp1.9-full
[root@s142 lnmp1.9-full]# mv …/mysql-5.7.32-el7-x86_64.tar.gz ./src/
[root@s142 ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@s142 ~]# ping 114.114.114.114
PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
From 192.168.0.1 icmp_seq=1 Packet filtered
From 192.168.0.1 icmp_seq=2 Packet filtered
From 192.168.0.1 icmp_seq=3 Packet filtered
From 192.168.0.1 icmp_seq=4 Packet filtered
From 192.168.0.1 icmp_seq=5 Packet filtered
^C
— 114.114.114.114 ping statistics —
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4000ms
VPS或服务器必须设置好可用的yum或apt-get源并确保能正常工作,离线安装需要增加 CheckMirror=n 参数!
[root@s142 lnmp1.9-full]# vim lnmp.conf
#不检查镜像源
安装脚本执行和在线安装是一样的,各选项选择可用参考Linux之LNMP在线安装。
[root@s142 lnmp1.9-full]# ./install.sh lnmp
[root@s142 lnmp1.9-full]# ./install.sh lnmp
…
nginx (pid 14581) is running…
php-fpm is runing!
SUCCESS! MySQL running (15153)
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 :
LISTEN 0 128 :80 :
LISTEN 0 128 :22 :
LISTEN 0 128 :::3306 :::
LISTEN 0 128 :::22 :::
Install lnmp takes 39 minutes.
Install lnmp V1.9 completed! enjoy it.
[root@s142 lnmp1.9-full]# lnmp status
±------------------------------------------+
| Manager for LNMP, Written by Licess |
±------------------------------------------+
| https://lnmp.org |
±------------------------------------------+
nginx (pid 14581) is running…
php-fpm is runing!
SUCCESS! MySQL running (15153)
[root@s142 lnmp1.9-full]#
无人值守安装实际上就是提前将脚本中需要选择的选项提前选择好,然后执行脚本。可以访问官网的无人值守命令生成工具,生成无人值守安装命令。以安装LNMP为例,安装MySQL5.7,源码方式安装,启用innodb引擎,设置root账户密码,安装PHP7.4,不安装内存分配器。点击生成后生成的命令如下。
我们在可以访问外网的服务器上直接直接如下命令就可以开始安装LNMP相关软件了。
[root@s142 opt]# wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && LNMP_Auto=“y” DBSelect=“4” Bin=“n” DB_Root_Password=“123456” InstallInnodb=“y” PHPSelect=“10” SelectMalloc=“2” CheckMirror=“n” ./install.sh lnmp
如果选择离线安装则生成的命令如下,但是服务器既然已经离线肯定是无法联网下载软件包的,所以实际操作中需要我们离线下载完整安装包。然后将安装参数写入lnmp.conf配置文件,再手动执行下安装命令,此时不会再弹窗选择项,安装脚本按照参数配置直接执行,直至安装完成。
[root@s142 lnmp1.9-full]# cat lnmp.conf
#无人值守安装配置
LNMP_Auto=“y”
DBSelect=“4”
Bin=“n”
DB_Root_Password=“123456”
InstallInnodb=“y”
PHPSelect=“9”
SelectMalloc=“2”
CheckMirror=“n”
[root@s142 lnmp1.9-full]# ./install.sh lnmp
变量名 | 变量值含义 |
---|---|
LNMP_Auto | 启用无人值守自动安装 |
DBSelect | 数据库版本序号 |
DB_Root_Password | 数据库root密码(不可为空),不安装数据库时可不加该参数 |
InstallInnodb | 是否安装Innodb引擎,y 或 n ,不安装数据库时可不加该参数 |
PHPSelect | PHP版本序号 |
SelectMalloc | 内存分配器版本序号 |
ApacheSelect | Apache版本序号,仅LNMPA和LAMP模式需添加该参数 |
ServerAdmin | 管理员邮箱,仅LNMPA和LAMP模式需添加该参数 |
MySQL版本 | 对应序号 | PHP版本 | 对应序号 | 内存分配器 | 对应序号 | Apache版本 | 对应序号 |
---|---|---|---|---|---|---|---|
Mysql 5.1 | 1 | PHP 5.2 | 1 | 不安装 | 1 | Apache 2.2 | 1 |
Mysql 5.5 | 2 | PHP 5.3 | 2 | Jemalloc | 2 | Apache 2.4 | 2 |
Mysql 5.6 | 3 | PHP 5.4 | 3 | TCMalloc | 3 | ||
Mysql 5.7 | 4 | PHP 5.5 | 4 | ||||
Mysql 8.0 | 5 | PHP 5.6 | 5 | ||||
MariaDB 5.5 | 6 | PHP 7.0 | 6 | ||||
MariaDB 10.3 | 7 | PHP 7.1 | 7 | ||||
MariaDB 10.4 | 8 | PHP 7.2 | 8 | ||||
MariaDB 10.5 | 9 | PHP 7.3 | 9 | ||||
MariaDB 10.6 | 10 | PHP 7.4 | 10 | ||||
不安装数据库 | 0 | PHP 8.0 | 11 | ||||
PHP 8.1 | 12 |
离线安装环境下安装NGINX、mysql都是OK的,安装PHP7.4以上版本都失败了,安装7.3.33是成功的。初步判断是PHP7.4以上依赖的软件包,centos7.6版本不满足要求。欢迎知道详细原因的网友评论留言分享,谢谢!