Centos7离线安装.NET 8.0 SDK,EMQX,PostgreSQL,SuperVisor
因为服务器不能连接外网,所以项目所需环境全部需要使用安装包离线安装,一直磕磕绊绊踩了很多坑才将所有环境装好,记录总结下安装过程。
安装.Net 8.0 SDK
下载系统对应的安装包(Linux-X64),地址为https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
通过FinalShell,Xftp等远程连接工具将安装包上传至/usr/share/dotnet目录下,安装.NetSDK
cd /usr/share/dotnet
tar zxf dotnet-sdk-8.0.101-linux-x64.tar.gz
添加环境变量
vi /etc/profile //编辑profile,加入如下两行
export PATH=$PATH:/usr/share/dotnet
export DOTNET_ROOT=/usr/share/dotnet
source /etc/profile
安装完成后使用dotnet --version命令查看版本,因为.NET 8.0 SDK暂不支持Centos7系统,会遇见如下报错,version GLIBCXX_3.4.20 not found:
这可能是因为CentOS版本太低或者libstdc++.so.6链接的libstdc版本太低,缺少GLIBCXX_3.4.20和GLIBCXX_3.4.21。
解决办法如下,下载高版本的libstdc.so.6.0.26,删除原有链接,建立新的链接到高版本
下载链接: libstdc.so.6.0.26 将压缩包放置/usr/lib64目录下
cd /usr/lib64
unzip libstdc.so_.6.0.26.zip
rm libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6
输入命令dotnet --version可以正常查看.Net版本
安装 EMQX 5.4.1
下载连接:EMQX 5.4.1,选择tar.gz,amd64版本
将安装包上传至/usr/local目录下
cd /usr/local
mkdir emqx
tar -zxvf emqx-5.4.1-el7-amd64.tar.gz -C emqx //解压到安装目录
配置环境变量
echo 'export PATH=$PATH:/usr/local/emqx/bin' >> /etc/profile
source /etc/profile
打开18083端口号
sudo firewall-cmd --zone=public --add-port=18083/tcp --permanent
sudo firewall-cmd --reload
设置开机自启动
vi /usr/lib/systemd/system/emqx.service
自启动服务文件emqx.service内容如下:
[Unit]
Description=emqxAutostart
After=network.target
[Service]
Type=forking
Environment=HOME=/usr/local/emqx/bin/emqx
ExecStart=/usr/local/emqx/bin/emqx start
ExecReload=/usr/local/emqx/bin/emqx restart
ExecStop=/usr/local/emqx/bin/emqx stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存文件,设置开机启动,并启动服务
systemctl enable emqx.service
systemctl start emqx.service
安装 PostgreSql 15
1.离线安装
下载离线安装包,链接: PostgreSql15,将压缩包内四个rpm文件上传至服务器
按照如下顺序进行安装
rpm -ivh postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-15.5-1PGDG.rhel7.x86_64.rpm //安装到第二个可能会报错,缺少依赖
rpm -ivh postgresql15-server-15.5-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-contrib-15.5-1PGDG.rhel7.x86_64.rpm
安装到第二个postgresql15-15.5-1PGDG.rhel7.x86_64.rpm失败,缺少一些依赖文件,因为是在内网,无法直接下载安装依赖,所以此时需要在外网下载对应的依赖包,上传至服务器。
安装libzstd和libzstd.so.1所需包如下,链接:libzstd+llvm.zip
安装依赖包,注意安装顺序,否则安装会报错
yum -y install libzstd-1.5.5-1.el7.x86_64.rpm
yum install -y llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
yum install -y llvm5.0-5.0.1-7.el7.x86_64.rpm
yum install -y llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
全部安装完毕后,继续依次执行安装PostgreSQl的命令即可
rpm -ivh postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-15.5-1PGDG.rhel7.x86_64.rpm //安装到第二个可能会报错,缺少依赖
rpm -ivh postgresql15-server-15.5-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-contrib-15.5-1PGDG.rhel7.x86_64.rpm
2.配置及启动
初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
配置监听地址及端口号
vi /var/lib/pgsql/15/data/postgresql.conf
取消配置文件的监听地址及端口号前的注释#,将localhost改为*
listen_addresses = '*'
port = 5432
配置远程访问
vi /var/lib/pgsql/15/data/pg_hba.conf
#在最下方添加
host all all 0.0.0.0/0 trust
打开端口号5432
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
启动PostgreSQL服务
systemctl enable postgresql-15.service //设置开机自启动
systemctl start postgresql-15.service
安装 SuperVisor 3.0
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
1.下载及安装
SuperVisor是基于Python开发的在linux下使用的进程管理工具,安装supervisor的时候依赖 python的一些包,它依赖以下三个包:python、setuptools、meld3。CentOS7-2009自带了Python2.7,其他使用的依赖包及SuperVisor安装包版本如下:
(下载链接:Supervisor安装整合包)
将整合包解压,安装setuptools
unzip setuptools-41.1.0.zip
cd setuptools-41.1.0
python setup.py install
安装meld3
tar -zxvf meld3-1.0.2.tar.gz
cd meld3-1.0.2
python setup.py install
安装SuperVisor
tar -zxvf supervisor-3.0.tar.gz
cd supervisor-3.0
python setup.py install
安装完成后可使用supervisorctl --help命令查看是否安装成功
2.配置并启动
生成配置文件supervisord.conf
echo_supervisord_conf > /etc/supervisord.conf
修改配置文件
vi /etc/supervisord.conf
解除[inet_http_server]的注释,修改port为本机ip,以便通过网页访问SuperVisor
修改最后的进程配置文件目录,可自定义设置,这里修改为/etc/supervisor/目录下
打开防火墙端口
sudo firewall-cmd --zone=public --add-port=9001/tcp --permanent
sudo firewall-cmd --reload
创建Superior服务并添加到开机自启
vi /usr/lib/systemd/system/supervisord.service
文件添加一下内容,注意 -c后为自己定义的配置文件路径
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
[Install]
WantedBy=multi-user.target
添加自启服务
systemctl enable supervisord
重新加载服务配置文件
systemctl daemon-reload
启动SuperVisor
systemctl start supervisord.service