前言
前一段时间,甲骨文推出ARM架构的免费服务器,最高可以申请永久免费的4核,24G内存,4G带宽(目测是G口),算是非常给力。
不过由于ARM架构的CPU。无法100%兼容x86x64的软件,所以在部署上碰到一些坑,本文也是对部署过程的一些踩坑记录。
一、选择镜像
建议选择:Oracle Redhat 8.0版本。这个跟Centos差不多。主要是8相对来说问题少点。比如编译安装Mysql 5.7没问题,不需要再折腾。
创建后ssh 连接上后,切换到root账户
sudo -i
二、安装宝塔
创建好服务器,更新包、安装BBR后,可以安装宝塔,采用官方脚本安装:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完成后登录宝塔管理平台,安装Nginx、Mysql 5.7 等。
三、安装.net5 SDK
由于ARM架构,不支持直接yum 安装。采用下载二进制包进行解压安装:
wget https://download.visualstudio.microsoft.com/download/pr/50c2990a-2b62-4a51-b3db-8dab334f81c9/e0edfb3905b31ab030a97fa64f48cc8e/dotnet-sdk-5.0.300-linux-arm64.tar.gz mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-5.0.300-linux-arm64.tar.gz -C $HOME/dotnet export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet
安装后,虽然dotnet命令可以用,但是重启后无法使用。
编辑:/etc/profile 文件,最后加上
export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
可以重启试试看是否成功。
输入dotnet --info 能输入信息就说明成功了。
四、进程守护,应用持久化运行
由于宝塔插件Supervisor 在ARM下面虽然安装成功,但是却无法运行。咨询宝塔官方,得到解答是是用另外一个插件:堡塔应用管理器 代替使用。的确效果很好!
安装好插件后,我们配置一下应用池
添加一个dotnet的环境:就是选择dotnet安装的路径
五、开设站点并上传编译好文件
开设站点和上传文件,可以将编译好文件先压缩,再上传到开设好的目录,使用宝塔管理解压。
注意,压缩采用zip压缩,不要采用rar压缩,实测ARM下面,rar无法解压。zip没问题。
然后配置数据库等。
六、开启进程守护
选择好文件路径
启动参数建议添加上 --urls http://*:5001
端口根据实际情况调整
七、反向代理
添加一个反向代理
然后编辑配置文件:
#PROXY-START/ location ~* \.(php|jsp|cgi|asp|aspx)$ { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } location / { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; expires 12h; } #PROXY-END/
端口根据实际情况修改。
自此就可以正常运行了。
八、配置libgdiplus
由于不能直接 yum install libgdiplus-devel -y
所以,需要手动下载,编译安装:
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.4.tar.gz #解压 tar -zxvf libgdiplus0-6.0.4.tar.gz #进入目录 cd libgdiplus-6.0.4 #编译安装 ./configure --prefix=/usr make && make install
等待漫长的编译后。增加软连接
ln -s /usr/lib64/libgdiplus.so /usr/lib/gdiplus.dll ln -s /usr/lib64/libgdiplus.so /usr/lib64/gdiplus.dll
至此就可以了。