离线安装apisix

公司部分机器因为某些原因无法联网,只能离线安装apisix,折腾了很久,走了很多弯路,记录一下安装过程。

下载所有的包

安装epel源

sudo yum install epel-release

在home下创建文件夹/apisix-dependence

下载apache-apisix-repo以及相关的依赖

yumdownloader yum-utils-1.1.31-54.el7_8.noarch
yumdownloader python-kitchen-1.1.1-5.el7.noarch
yumdownloader python-chardet-2.2.1-3.el7.noarch
yumdownloader libxml2-python-2.9.1-6.el7_9.6.x86_64
yumdownloader libxml2-2.9.1-6.el7_9.6.x86_64

yum install -y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm
cd /var/tmp/yum-root-
mv apache-apisix-repo-1.0-1.noarch.rpm /home/apisix-dependence

apisix-base并获取其依赖

yumdownloader gcc-4.8.5-44.el7.x86_64
yumdownloader pcre-8.32-17.el7.x86_64
yumdownloader pcre-devel-8.32-17.el7.x86_64
yumdownloader git-1.8.3.1-23.el7_8.x86_64
yumdownloader curl-7.29.0-59.el7_9.1.x86_64
yumdownloader libcurl-7.29.0-59.el7_9.1.x86_64
yumdownloader openldap-2.4.44-25.el7_9.x86_64
yumdownloader openldap-devel-2.4.44-25.el7_9.x86_64
yumdownloader cyrus-sasl-devel-2.1.26-24.el7_9.x86_64

安装cyrus-sasl-devel-2.1.26-24.el7_9.x86_64的依赖

yum -y install cyrus-sasl-devel-2.1.26-24.el7_9.x86_64.rpm --downloadonly --downloaddir=./
yumdownloader unzip-6.0-24.el7_9.x86_64

安装apisix-base并获取其依赖

yumdownloader apisix-base-1.21.4.1.3-0.el7.x86_64
yum -y install apisix-base-1.21.4.1.3-0.el7.x86_64.rpm --downloadonly --downloaddir=./

下载luarocks

wget https://github.com/luarocks/luarocks/archive/v3.8.0.tar.gz

下载etcd

wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz

下载openresty-1.19(如果用了rpm包就不用执行1.7、1.8和1.9了)

如果apisix init报ssl.core找不到,解决方案:将openresty1.21版本改成1.19版本,apisix默认安装openresty-1.21。
方式1:

yumdownloader openresty-1.19.9.1-1.el7.x86_64

方式2:

wget https://openresty.org/download/openresty-1.19.9.1.tar.gz

下载openssl

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz --no-check-certificate

下载openssl的依赖,zlib和zlib-devel

yumdownloader zlib
yumdownloader zlib-devel

下载安装perl以及perl的依赖

yumdownloader perl
yumdownloader perl-parent-0.225-244.el7.noarch perl-HTTP-Tiny-0.033-3.el7.noarch perl-podlators-2.5.1-3.el7.noarch perl-Pod-Perldoc-3.20-4.el7.noarch perl-Pod-Escapes-1.04-297.el7.noarch perl-Encode-2.51-7.el7.x86_64 perl-Text-ParseWords-3.29-4.el7.noarch perl-Pod-Usage-1.63-3.el7.noarch perl-libs-5.16.3-297.el7.x86_64 perl-Exporter-5.68-3.el7.noarch perl-constant-1.27-2.el7.noarch perl-Socket-2.010-5.el7.x86_64 perl-Time-Local-1.2300-2.el7.noarch perl-Carp-1.26-244.el7.noarch perl-PathTools-3.40-5.el7.x86_64 perl-Scalar-List-Utils-1.27-248.el7.x86_64 perl-macros-5.16.3-297.el7.x86_64 perl-Pod-Simple-3.28-4.el7.noarch perl-Storable-2.45-3.el7.x86_64 perl-File-Temp-0.23.01-3.el7.noarch perl-File-Path-2.09-2.el7.noarch perl-threads-shared-1.43-6.el7.x86_64 perl-threads-1.87-4.el7.x86_64 perl-Time-HiRes-1.9725-3.el7.x86_64 perl-Filter-1.49-3.el7.x86_64 perl-Getopt-Long-2.40-3.el7.noarch perl-5.16.3-297.el7.x86_64

下载安装gcc相关安装包

创建gcc/目录,然后安装以下依赖包:

yumdownloader cpp-4.8.5-44.el7.x86_64
yumdownloader glibc-devel
yumdownloader libcpp-4.8.5-44.el7.x86_64
rm -rf glibc-devel-2.17-326.el7_9.i686.rpm
yumdownloader libgcc
rm -rf libgcc-4.8.5-44.el7.i686.rpm
yumdownloader libgomp
rm -rf libgomp-4.8.5-44.el7.i686.rpm
yumdownloader libmpc.so.3
yumdownloader libmpfr.so.4

安装包全家福

在这里插入图片描述

打包

zip -r -q -o apisix-dependence.zip apisix-dependence/

注意:unzip-6.0-24.el7_9.x86_64.rpm需要单独上传,安装之后才能解压zip包

安装rpm包

上传安装包到离线机器的/home下,首先安装unzip软件,然后解压依赖包

rpm -ivh unzip-6.0-24.el7_9.x86_64.rpm
unzip apisix-dependence.zip

按顺序安装apache-apisix-repo相关的安装包

rpm -ivh python-chardet-2.2.1-3.el7.noarch.rpm
rpm -ivh python-kitchen-1.1.1-5.el7.noarch.rpm
rpm -ivh yum-utils-1.1.31-54.el7_8.noarch.rpm
rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh apache-apisix-repo-1.0-1.noarch.rpm

按顺序安装apisix-base相关的安装包

rpm -ivh openresty-zlib-1.2.12-1.el7.x86_64.rpm
rpm -ivh openresty-pcre-8.45-1.el7.x86_64.rpm
rpm -ivh openresty-openssl111-1.1.1s-1.el7.x86_64.rpm
rpm -ivh openresty-openssl111-devel-1.1.1s-1.el7.x86_64.rpm
rpm -ivh libcurl-7.29.0-59.el7_9.1.x86_64.rpm  --replacefiles
rpm -ivh curl-7.29.0-59.el7_9.1.x86_64.rpm  --replacefiles
rpm -ivh cyrus-sasl-lib-2.1.26-24.el7_9.x86_64.rpm  --replacefiles
rpm -ivh cyrus-sasl-2.1.26-24.el7_9.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-24.el7_9.x86_64.rpm
rpm -ivh openldap-2.4.44-25.el7_9.x86_64.rpm --replacefiles
rpm -ivh  openldap-devel-2.4.44-25.el7_9.x86_64.rpm
rpm -ivh  apisix-base-1.21.4.1.3-0.el7.x86_64.rpm

安装openresty-1.19

rpm -ihv openresty-1.19.9.1-1.el7.x86_64.rpm  --force --nodeps

公共安装包

rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm  --force --nodeps
rpm -ivh pcre-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm

rpm后面跟的参数说明

1、–nodeps – force
加上那两个参数的意义就在于,安装时不再分析包之间的依赖关系而直接安装,也就不会再提示error: Failed dependencies:这样的错误了
2、–replacefiles
安装提示软件冲突时,添加–replacefiles参数即可。

安装etcd

将etcd安装包复制到/home下,然后执行以下命令:

ETCD_VERSION='3.5.4'
tar -xvf etcd-v${ETCD_VERSION}-linux-amd64.tar.gz &&   cd etcd-v${ETCD_VERSION}-linux-amd64 &&   sudo cp -a etcd etcdctl /usr/bin/
nohup etcd >/tmp/etcd.log 2>&1 &

安装luarocks-3.8.0

将luarocks安装包复制到/home下,然后执行以下命令:

tar -xf v3.8.0.tar.gz
cd luarocks-3.8.0
OR_BIN=/usr/local/openresty/bin/openresty
OPENRESTY_PREFIX=/usr/local/openresty
LUAROCKS_VER=3.8.0
/usr/local/openresty/bin/openresty -v
awk -F / '{print $2}'
WITH_LUA_OPT=--with-lua=/usr/local/openresty/luajit
./configure --with-lua=/usr/local/openresty/luajit
make build
sudo make install
luarocks -version
luarocks --version
mkdir /root/.luarocks
OPENSSL_PREFIX=/usr/local/openresty/openssl
OPENSSL_PREFIX=/usr/local/openresty/openssl111
FOUND_PATH=/usr/local/bin
luarocks config variables.OPENSSL_LIBDIR /usr/local/openresty/openssl111/lib
luarocks config variables.OPENSSL_INCDIR /usr/local/openresty/openssl111/include

安装perl(如果rpm安装了openresty,这一步可以取消)

安装perl目录下的依赖

rpm -ivh *.rpm --force --nodeps
rpm -ivh perl-5.16.3-299.el7_9.x86_64.rpm --force --nodeps

安装gcc(如果rpm安装了openresty,这一步可以取消)

rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm  --force --nodeps
rpm -ivh *.rpm --force --nodeps

安装openresty(如果rpm安装了openresty,这一步可以取消)

编译安装openresty1.19

[root@localhost openresty-1.19.9.1]# ./configure --with-luajit --with-poll_module --with-pcre-jit --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-threads --with-compat --with-stream --with-http_ssl_module && make && make install

安装openssl(如果rpm安装了openresty,这一步可以取消)

安装依赖

rpm -ivh zlib-1.2.7-20.el7_9.x86_64.rpm  --replacefiles
rpm -ivh zlib-devel-1.2.7-20.el7_9.x86_64.rpm

安装apisix

将apisix安装包放到/home下,执行以下命令:

[root@localhost home]# unzip apisix-2.13-master.zip
[root@localhost home]# mv apisix-2.13-master/ apisix-2.13.1/

进入apisix-2.13.1目录:

[root@localhost home]# cd apisix-2.13.1/

在apisix根目录下执行:make install

[root@localhost apisix-2.13.1]# make install

执行apisix init:

[root@localhost apisix-2.13.1]# apisix init

启动apisix:

[root@localhost apisix-2.13.1]# apisix start

安装apisix-dashboard

将dashboard的rpm包,放到/home下,然后执行以下命令:

[root@localhost home]# rpm -ivh apisix-dashboard-2.10.1-0.el7.x86_64.rpm
[root@localhost home]# cd /usr/local/apisix/dashboard/conf
[root@localhost conf]# vim conf.yaml

将allow_list中的IP改成0.0.0.0/0
启动dashboard:

[root@localhost conf]# sudo manager-api -p /usr/local/apisix/dashboard/ &

浏览器访问dashboard:
http://192.168.6.248:9000/
账号密码都是admin

报错信息

rpm安装时报错冲突

[root@localhost apisix-dependence]# rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm
准备中...                          ################################# [100%]
        file /usr/bin/xmlcatalog from install of libxml2-2.9.1-6.el7_9.6.x86_64 conflicts with file from package libxml2-2.9.1-6.el7_2.3.x86_64
        file /usr/bin/xmllint from install of libxml2-2.9.1-6.el7_9.6.x86_64 conflicts with file from package libxml2-2.9.1-6.el7_2.3.x86_64
        file /usr/lib64/libxml2.so.2.9.1 from install of libxml2-2.9.1-6.el7_9.6.x86_64 conflicts with file from package libxml2-2.9.1-6.el7_2.3.x86_64

解决方案:
上面提醒,说明软件冲突,安装时,添加–replacefiles参数即可。

[root@localhost apisix-dependence]# rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm --replacefiles

编译openresty报错:需要安装perl

[root@localhost openresty-1.19.9.1]# ./configure --with-luajit --with-poll_module --with-pcre-jit --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-threads --with-compat --with-stream --with-http_ssl_module

/usr/bin/env: perl: 没有那个文件或目录

安装perl报错:需要安装依赖

[root@localhost apisix-dependence]# rpm -ivh perl-5.16.3-299.el7_9.x86_64.rpm
错误:依赖检测失败:
        libperl.so()(64bit) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Carp) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Cwd) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Exporter) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(File::Path) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(File::Spec) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(File::Spec::Functions) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(File::Spec::Unix) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(File::Temp) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Filter::Util::Call) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Getopt::Long) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Pod::Simple::Search) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Pod::Simple::XHTML) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Scalar::Util) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Scalar::Util) >= 1.10 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Socket) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Socket) >= 1.3 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Storable) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Time::HiRes) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(Time::Local) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(constant) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(threads) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl(threads::shared) 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl-libs 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl-libs = 4:5.16.3-299.el7_9 被 perl-4:5.16.3-299.el7_9.x86_64 需要
        perl-macros 被 perl-4:5.16.3-299.el7_9.x86_64 需要

编译openresty报错:需要安装gcc

[root@localhost openresty-1.19.9.1]#  ./configure --with-luajit --with-poll_module --with-pcre-jit --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-http_random_index_module --with-http_gzip_static_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-threads --with-compat --with-stream --with-http_ssl_module
platform: linux (linux)
cp -rp bundle/ build
cd build
cd LuaJIT-2.1-20210510
Can't exec "cc": 没有那个文件或目录 at ./configure line 719.
gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT' CC=cc PREFIX=/usr/local/openresty/luajit
==== Building LuaJIT 2.1.0-beta3 ====
gmake -C src
gmake[1]: cc:命令未找到
gmake[1]: 进入目录“/home/apisix-dependence/openresty-1.19.9.1/build/LuaJIT-2.1-20210510/src”
gmake[1]: cc:命令未找到
Makefile:274: *** Unsupported target architecture。 停止。
gmake[1]: 离开目录“/home/apisix-dependence/openresty-1.19.9.1/build/LuaJIT-2.1-20210510/src”
gmake: *** [default] 错误 2
ERROR: failed to run command: gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT' CC=cc PREFIX=/usr/local/openresty/luajit

编译openresty报错

platform: linux (linux)
cp -rp bundle/ build
cd build
cd LuaJIT-2.1-20210510
gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT' CC=cc PREFIX=/usr/local/openresty/luajit
==== Building LuaJIT 2.1.0-beta3 ====
gmake -C src
/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
gmake[1]: 进入目录“/home/apisix-dependence/openresty-1.19.9.1/build/LuaJIT-2.1-20210510/src”
Makefile:274: *** Unsupported target architecture。 停止。
gmake[1]: 离开目录“/home/apisix-dependence/openresty-1.19.9.1/build/LuaJIT-2.1-20210510/src”
gmake: *** [default] 错误 2
ERROR: failed to run command: gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT' CC=cc PREFIX=/usr/local/openresty/luajit

没有找到libmpc的路径,需要添加如下环境变量
export LD_LIBRARY_PATH=“/usr/lib”
error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory

编译openresty报错

platform: linux (linux)
cp -rp bundle/ build
cd build
cd LuaJIT-2.1-20210510
gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT' CC=cc PREFIX=/usr/local/openresty/luajit
==== Building LuaJIT 2.1.0-beta3 ====
gmake -C src
/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1: error while loading shared libraries: libmpc.so.3: wrong ELF class: ELFCLASS32
/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1: error while loading shared libraries: libmpc.so.3: wrong ELF class: ELFCLASS32

解决方案:
安装mpfr-3.1.1-4.el7.x86_64.rpm

编译openresty报错

/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168:61: 致命错误:limits.h:没有那个文件或目录
 #include_next <limits.h>  /* recurse down to the real one */
                                                             ^
编译中断。
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/syslimits.h:7:0,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:34,
                 from luaconf.h:12,
                 from lua.h:16,
                 from lj_arch.h:9:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/limits.h:168:61: 致命错误:limits.h:没有那个文件或目录
 #include_next <limits.h>  /* recurse down to the real one */

报DNS为空

[root@localhost apisix-2.13.1]# apisix start
/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua start
local DNS is empty

解决方案:
1、编辑DNS配置文件
vim /etc/resolv.conf
2、添加DNS配置信息(随便添加一个,apisix就不会报错了):
nameserver 1.1.1.1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值