linux 网站发asp布,Linux下部署发布Asp.net Core 2.0网站

开发环境:

Windows 10 Pro

Visual Studio 2017 Community

Nodejs

服务器:

CentOS Linux release 7.4.1708(Core)

Apache

Nodejs

1. 开发环境准备:

1.1在https://www.visualstudio.com/ 下载安装Visual Studio 2017 Community版本(社区免费版)

选择.Net Core Cross-Platform development 组件进行安装

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

1.2 在https://nodejs.org/ 下载安装Windows 版的 Nodejs

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

2.创建Asp.net Core 2.0 Angular应用,这里用自带的模板即可

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

3.发布应用

点击右键,选择Publish

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

选择发布到文件夹

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

这里要注意的是如果发布失败,重启应该可以解决。

同时记下文件夹

c:/users/admin/source/repos/AngularApp/AngularApp/bin/Release/PublishOutput

4.Linux部署

先用Bitvise 连接已经部署好CentOS 7的服务器,Bitvise 默认会打开一个Terminal 和一个用于文件传输的SFTP窗口

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.1 安装Dotnet

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

根据这里的说明安装https://www.microsoft.com/net/learn/get-started/linuxcentos

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.1.0 先用root登陆

sudo su -

![image.png](http://upload-images.jianshu.io/upload_images/5258872-ffddc2f6e2140aa5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

4.1.1 添加.net源

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

~~~bash

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.1.2 安装.net core 2.0 SDK

sudo yum update

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

中间有个确认,这里要等很久。。。

sudo yum install libunwind libicu

安装SDK

sudo yum install dotnet-sdk-2.1.3

4.2 安装Nodejs

sudo yum install epel-release

sudo yum install nodejs

sudo yum install npm

看下版本号

node --version

4.3 安装Apache

sudo yum update -y

sudo yum -y install httpd mod_ssl

查看apache路径

whereis httpd

4.4 配置环境

4.4.1 创建配置文件 AngularApp.conf

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.2 上传配置文件

4.4.2.1 找到Apache 配置文件路径/etc/httpd

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.4.2 打开Bitvise 的SFTP从本地 AngularApp.conf 到服务器的tmp文件夹中

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.4.3 打开Terminal用命令行把tmp文件夹中的AngularApp.conf移动到Apache文件夹中

mv /tmp/AngularApp.conf /etc/httpd/conf.d

4.4.3 上传之前打包好的.Net Core 2.0应用AngularApp

4.4.3.1 点击右键,使用SFTP在tmp文件夹里创建一个AngularApp文件夹,把发布的文件拖拽到AngularApp文件夹里

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.3.2 把AngularApp移动到/var/www目录里

mv /tmp/AngularApp /var/www

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

如果看不到可以点下刷新

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.4 创建一个服务文件,用来启动.Net Core 2.0的应用,另存为kestrel-AngularApp.service

同样打开记事本,创建一个新的文件[图片上传中...(image.png-520d41-1514966781776-0)]

[Unit]

Description=Example .NET Web API Application running on CentOS 7

[Service]

WorkingDirectory=/var/www/AngularApp

ExecStart=/usr/bin/dotnet /var/www/AngularApp/AngularApp.dll

Restart=always

# Restart service after 10 seconds if dotnet service crashes

RestartSec=10

SyslogIdentifier=dotnet-example

User=apache

Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]

WantedBy=multi-user.target

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.3 上传服务文件 到 /etc/systemd/system/

4.4.3.1 因为SFTP没权限,还是先放到/tmp文件夹下

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.4.3.2 移动到系统文件夹

mv /tmp/kestrel-AngularApp.service /etc/systemd/system/

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.5 启动应用

4.5.1 配置 Apache 启动

sudo service httpd configtest

4.5.2 重启Apache

sudo systemctl restart httpd

sudo systemctl enable httpd

4.5.3 启用服务

systemctl enable kestrel-AngularApp.service

4.5.4 打开并查看服务状态

systemctl start kestrel-AngularApp.service

systemctl status kestrel-AngularApp.service

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

4.5.5 安装防火墙firewalld并打开80端口

sudo yum install firewalld -y

sudo firewall-cmd --add-port=80/tcp --permanent

sudo firewall-cmd --add-port=443/tcp --permanent

4.6 SSL 配置

sudo yum install mod_ssl

sudo yum install mod_rewrite

修改AngularApp.conf 加入ssl端口配置

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://%{SERVER_NAME}/ [R,L]

ProxyPreserveHost On

ProxyPass / http://127.0.0.1:5000/

ProxyPassReverse / http://127.0.0.1:5000/

ErrorLog /var/log/httpd/hellomvc-error.log

CustomLog /var/log/httpd/hellomvc-access.log common

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:!RC4

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

重启Apache服务

sudo service httpd configtest

sudo systemctl restart httpd

5. 从浏览器打开服务器的地址,就可以看到AngularApp已经成功部署完毕。

7ccc9a679f05?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

其他设置可以参考官网

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值