甲骨文ARM架构云服务器部署宝塔+.net 5.0
前言
前一段时间,甲骨文推出ARM架构的免费服务器,最高可以申请永久免费的4核,24G内存,4G带宽(目测是G口),算是非常给力。
不过由于ARM架构的CPU。无法100%兼容x86x64的软件,所以在部署上碰到一些坑,本文也是对部署过程的一些踩坑记录。
一、选择镜像
建议选择:Oracle Redhat 8.0版本。这个跟Centos差不多。主要是8相对来说问题少点。比如编译安装Mysql 5.7没问题,不需要再折腾。
创建后ssh 连接上后,切换到root账户
1 | sudo -i |
二、安装宝塔
创建好服务器,更新包、安装BBR后,可以安装宝塔,采用官方脚本安装:
1 | 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
至此就可以了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?