Linux Centos上部署ASP.NET网站
随着客户的角度,本该在Windows下的IIS部署方式 已经不能满足客户的需求了,想要CentOS上部署ASP.NET网站,以下是在CentOS教学或部署流程
文章如果段落排版错误可以多刷新几次,目前不知道为啥MD文档这种格式会出现不太原本的样子...
注意
1.如怕毁坏数据或应用(ps aux 查看进程判断是否为空机)建议及时做好备份,创建服务器快照 - 服务器供应商控制台
2.刚进系统时建议优先开启防火墙并添加:1433(数据库)、80(网站默认)、21(FTP) 22(SSH),添加好防火墙记得重启防火墙
3.Linux是区分大小写的,所以请求的 ashx 或者 aspx 或者 jpg、png 等程序的路径内必须也是和文件一样,不然访问会出错
4.include代码在Windows下是以站点目录为根目录("/")的 , 在Linux下需要使用 "../" 这样来写 , 否则会直接在系统根路径去找 , 造成访问出错
服务器要求
1.centos系统
1.内存2G以上
2.操作者(部署者)必须是root权限
安装必要程序
Jexus [ 强劲、坚固、免费、易用的国产 WEB 服务器系统 - 官网:https://www.jexus.org/ ]
SQLServer for Linux [ MSSQL Server 数据库 - 官网:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-ver15 ]
安装操作流程
-
Linux 先安装wget
- yum -y install wget
-
Linux 先更新升级命令:
- yum –y update
如果到这yum还用不了,请尝试更换yum源[阅读:https://blog.csdn.net/qq_37259023/article/details/82962180]
根据上方的文章连curl都使用不了那在本地下载好 然后在本地使用 SFTP over SSH 传至:/etc/yum.repos.d/ 并命名:CentOS-Base.repo [ 使用curl显示 - TCP connection reset by peer,直接怀疑下面这条吧 ]
如还不行请联系网管是否对服务器有限制 特别是针对不是在阿里云等大型平台购买的服务器 [ 这个坑了我半天,因为有些服务器网络有问题 ]
-
先安装 SQLServer:
-
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo [ 下载SQLServer镜像 ]
-
yum install -y mssql-server [ 下载资源 waiting complete...]
-
sudo /opt/mssql/bin/mssql-conf setup [ 运行SQLServer安装程序 ]
-
systemctl status mssql-server [ 安装完之后,查看是否正在运行 SQLServer,如果在运行,到这一步MSSQL的安装就结束了 ]
-
systemctl enable mssql-server [ 加入开机启动 ]
-
systemctl start firewalld.service [ 开启防火墙,以下操作都是操作开启远程连接 ]
-
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent [ 如果需要开启远程连接,添加防火墙端口 ]
-
sudo firewall-cmd --reload [ 更新防火墙规则 ]
-
运行完成SQLServer安装程序会显示几个选项:
Choose an edition of SQL Server [ 这里一般没啥要求选择 3 ,Express (free) 版本就好 ]
Do you accept the license terms? [Yes/No] [ 选择 Yes 即可 ]
Enter the SQL Server system administrator password [ 输入密码,受Linux保护这里按了键盘可能会不显示值 要是第一次不知道按了哪个键 第二次确认密码就故意输入错重新运行安装吧~ ]
注意:
如果配置了还不可以连接,在服务器供应商-控制面板平台设置安全策略->1433端口开放情况下可关闭防火墙进行再进行测试连接
-
安装 jexus:
-
cd /tmp [ 切换到:temp 目录 ]
-
wget https://www.linuxdot.net/down/jexus-6.1-x64.tar.gz [ 使用wget进行下载 jexus-6.1 包 waiting complete... ]
-
tar -zxvf jexus-6.1-x64.tar.gz [ 解压,需要注意下载版本然后对应的修改 ]
-
sudo mv jexus /usr [ 移动目录 ]
-
sudo rm -rf /tmp/jexus* [ 清理tmp下的jexus ]
-
cd /usr/jexus/ [ 切换到安装目录下 ]
-
yum -y install autoconf automake bison cairo-devel freetype-devel gcc gcc-c++ gettext giflib-devel glib2-devel make libexif-devel libjpeg-devel libpng-devel libtiff-devel libtool [ 安装必要的库 ]
-
wget下载前可自行通往Jexus官网获得最新的版本
jexus-6.1 是自带MoNo程序的,所以无需要单独安装MoNo
cd到jexus安装目录下使用ls命令语法进行查看文件
jexus安装完的目录下的 siteconf 文件夹里面的就是网站配置文件,里面jexus会有一个默认的 default 配置文件,可用于复制新网站,主要:port root hosts,可以使用vi查看配置,结构很简单,具体解释还是去官网了解吧~
据我使用,好像siteconf下有几个文件就对应着几个网站
贴一下重要的语法[ 一定要回到安装的目录下执行才生效除非使用 sudo ]:
./jws stop 停止jexus
./jws restart 重启jexus
./jws start 启动jexus
以上的jexus命令操作都可对单独的网站使用,具体的命令还是去官网了解吧~
-
测试 jexus(上面的命令已完成安装jexus):
- cd / [ 回到根目录 ]
- cd var [ 进入:var ]
- mkdir www [ 创建目录并使用cd进入 www ]
- mkdir default [ 再创建default目录,再找个简单的index.html传入进来进行测试 ]
- cd /usr/jexus/siteconf/ [ 回到jexus目录下并进入:siteconf 网站配置目录 ]
- vi default [ 查看文件并修改,按下FN+Insert,修改目录为: root: / /var/www/default/ ,再保存--按下ESC -- 再按下Shift+:--输入wq!进行保存(如果修改错了输入q!重新来)]
- cd ../ [ 回到jexus根目录 ]
- ./jws start [ 启动jexus网站或者使用-重启jexus ]
- curl localhost [ 访问本地的网站 ]
如果有正确的返回一些HTML源码[非包含错误信息]那就说明可以跑jexus了
可多写一些非HTML文件进行测试jexus,比如传:aspx 文件,看是否可以正常解析
最后:如果测试正常就可以使用FTP将ZIP传至服务器内[/var/www/***/],然后先在服务器安装解压工具[ yum install unzip ],进行解压文件[ unzip *.zip ]
特别鸣谢
贴身技术指导:Evan - 链接
文章网友帮助:褪色的记忆1982 - 链接
文章网友帮助:Allen0910 - 链接