本文为本人最近学习将.Net Core部署到Linux的一些经验总结,也提供点也和我一样对Linux接触不多的.Net Core开发者。

一.部署用到的环境和工具

  1.Linux采用最新的CentOS7.5版本,开发使用VS2017搭配的.Net Core 为2.0的SDK版本号2.1.202(可到微软官方下载:https://dotnet.microsoft.com/download/dotnet-core/2.0)

  2.数据库为Mysql 5.7版本,同CentOS系统一样部署在同一个腾讯云服务器上(配置为1C2G1M)

  3.Linux的SSH2客户端使用XShell6,文件传输使用WinScp,可以自行下载,我这打包一份网上收集的(https://pan.baidu.com/s/1_tKLCcRQQYjDIpZ49fUEiQ 提取码: v9uu )

  4.在CentOS上用Git代码管理

  5.反向代理工具使用jexus

二.CentOS发布环境搭建

  

  1.从0开始,重装了云服系统。

  

  2.使用XShell连接到云服。

  3.安装Mysql5.7,本文参考的《Centos7安装mysql5.7》:https://www.jianshu.com/p/c76dc730a800

  第1步:下载mysql的rmp package

[root@instance-93h418iv ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

  完成截图:

  第2步:安装repo

[root@instance-93h418iv ~]# rpm -ivh mysql57-community-release-el7-.noarch.rpm

  完成截图:

  第3步:安装mysql-server,安装过程中出现2次选择一律按y回车,大概3到5分钟就安装完成了。

[root@instance-93h418iv ~]# yum install mysql-server

          

  完成截图:

   第4步:配置mysql密码和默认字符集

[root@instance-93h418iv ~]# vim /etc/my.cnf

  这时候要是不会用vi的人就有点懵了(我也是),我在这大概讲下操作,vi打开了my.cnf,无法使用鼠标,编辑前按i才能编辑,编辑完成后按Esc退出编辑状态,最后按:x回车保存退出。如果输错请不要用Ctrl+z来撤销用Ctrl+s保存,因为没用,文件写的混乱了可以用:q!不保存退出,注意有个英文冒号:不能漏了!

  默认字符集一定要修改了,不然EF生成的数据库字符集编码不支持中文导致发布到Linux上程序出错

  在[mysqld]最下面添加字符集

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

  再添加权限过滤代码(后面改完密码要删除)

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

  最后在下面添加[client]

[client]
default-character-set = utf8mb4

  最后编辑样子为: 

  然后启动mysql:

service mysqld start

  

  匿名登录mysql

mysql

  

  更改mysql密码

mysql> update mysql.user set authentication_string=PASSWORD('mima') where user='root' and hosst='localhost';

  更新权限

flush privileges;

  

  在输入quit退出mysql,打开之前编辑的文件

vim /etc/my.cnf 

  把之前标记的跳过权限的代码删除后保存退出

  重启myql(重启:service mysqld restart;开启:service mysql start;关闭 service mysqld stop)

service mysqld restart

  

  使用mysql -u root -p登录mysql

  

  再一次修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'

  

  最后配置远程连接

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mima' WITH GRANT OPTION;

  

  这样myslq环境就算是配置好了

  4.安装DotCore 2.0 SDK

  这里安装DotCore SDK和安装jexus都是完全参考《.Net Core部署到CentOS》地址:https://www.cnblogs.com/CKExp/p/8409563.html

  4.1.配置dotnet产品Feed

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
enabled=
gpgcheck=
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

  4.2.安装SDK,注意版本!!!

sudo yum update
sudo yum -y install libunwind libicu
sudo yum install dotnet-sdk-2.1.

  也是1路按y,这回等待时间有点长,15分钟差不多搞定。

  

  5.安装jexus

curl https://jexus.org/release/x64/install.sh|sh

  

  6.安装git

  参考yolo_bean的《linux(centos)下安装git并上传代码》:https://www.cnblogs.com/yolo-bean/p/7808767.html,本人只安装没做其他配置

[root@instance-93h418iv ~]# yum  install  git

  

  7.将代码库中代码用git下载到CentOS并发布

git clone 你项目的SSH地址

  

  这里会要求输入用户名和密码,输入密码时候是看不到的输完直接回车就完事。

  至此,我们看到root文件夹下有了一个项目,一个mysql的安装文件

  

  现在cd到启动的web项目中去执行dotnet build

  

  然后发布项目到/var/www/自定义文件夹

[root@instance-93h418iv Ator.Site]# dotnet publish -o /var/www/Ae

  

  这样项目就发布完成了,最后只要使用jexus代理

  8.使用jexus代理

    参考自https://www.cnblogs.com/CKExp/p/8409563.html

/// 1、切换到Jexus配置文件目录
cd /usr/jexus/siteconf
/// 2、复制默认的配置文件为Ae
cp default Ae
/// 3、编辑配置文件,这里端口为8080,若用80请把defualt中默认的80改为其他端口,Ator.Site.dll为Web项目生成的dll为主入口文件
vi Ae ######################
# Web Site: Ae
########################################
port=
root=/ /var/www/Ae
hosts= * #OR your.com,*.your.com AppHost={CmdLine=dotnet /var/www/Ae/Ator.Site.dll;AppRoot=/var/www/Ae/;Port=}

  

  最后重启下jexus

/// 如果已启动 Jexus:
sh /usr/jexus/jws restart /// 如果未启动 Jexus:
sh /usr/jexus/jws start

 然后就可以正常根据Ip地址和端口进行访问了。

 完结

   参考博文:

  https://www.cnblogs.com/CKExp/p/8409563.html

  https://www.jianshu.com/p/c76dc730a800

  https://www.cnblogs.com/yolo-bean/p/7808767.html

.Net core2.0+Mysql5.7部署到CentOS7.5完整实践经验的更多相关文章

  1. .Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀

    一.Centos7.3的安装 打开VirtualBox,点击新建,如下图所示: 点击“下一步”,弹出下面的对话框,调整内存大小,建议设置为2G,这样操作更流畅点 设置好,点击“OK”,再点击“启动”, ...

  2. .Net Core2.0 + Nginx + CentOS 部署

    准备把项目往Linux上迁移,整个流程跑了一下,也遇到无数个坑...以下为亲测并修改后的完整流程... 安装ZIP yum install -y unzip zip Putty:WINDOWS上传文件 ...

  3. Zabbix3.0安装与部署(centos7)

    注:整理至http://blog.51cto.com/afterdawn/1923359 1 需要先搭建LAMP环境 http://www.cnblogs.com/cation/p/8882910.h ...

  4. .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...

  5. asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

    原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...

  6. 手动编译部署LNMP环境(CentOS7.5+Nginx-1.18.0+MySQL-5.7.30+PHP-7.4.14)

    在平时运维工作中,经常需要用到LNMP应用框架.LNMP环境是指在Linux系统下,由Nginx + MySQL + PHP组成的网站服务器架构. 可参考前面的文章: 如何在CentOS 7上搭建LA ...

  7. asp.net core2.0网站的环境搭建和网站部署

    使用到的软件和硬件 1.       centos7.3服务器一台 2.       xshell.xftp 3.       vs2017 4.       .NET Core   1. 安装 li ...

  8. 将asp.net core2.0项目部署在IIS上运行

    原文:将asp.net core2.0项目部署在IIS上运行 前言:  与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...

  9. Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

    准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...

随机推荐

  1. Win10系统BitLocker解锁后再次快速锁定办法

    原文地址:https://blog.csdn.net/ttljtw/article/details/54022241 谁都不愿意把自己电脑上资料完全公开,对资料选择性加密处理是唯一的办法. 微软Win ...

  2. mgo 的 session 与连接池

    简介 mgo是由Golang编写的开源mongodb驱动.由于mongodb官方并没有开发Golang驱动,因此这款驱动被广泛使用.mongodb官网也推荐了这款开源驱动,并且作者在github也表示 ...

  3. LabVIEW 波形图表显示多条曲线

    如何在波形图表中显示多条曲线呢? 首先看看波形图表的说明,请查看labVIEW 帮助 图 1 波形图表控件的即时帮助信息   关键就在绑定多个点. 图 2 利用捆绑函数将多个信号捆绑成簇   图 3 ...

  4. Go斐波拉契数列(Fibonacci)(多种写法)

    1 前言 斐波拉契数列有递归写法和尾递归和迭代写法. 2 代码 //recursion func fib(n int) int{ if n < 2{ return n }else{ return ...

  5. ls 命令

    命令: ls 对应英文: list 作用: 查看当前文件夹下的内容 选项: -a 查看隐藏文件, 文件名前带 . 号的文件 -l 以详细列表形式显示 -h 人性化方式显示文件大小(注:-h必须和-l同 ...

  6. 30个mysql千万级大数据SQL查询优化技巧详解

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  7. iPhone内存溢出——黑白苹果

    一旦iPhone内存长期占用过大,一关机即再难启动,如果你Home键加power键等都不行,那么可以要刷机了. 方式: 1.电脑下载ITunes,这个过程比较漫长,一系列逐渐大概3G,下载完成打开. ...

  8. 《 Oracle查询优化改写 技巧与案例 》电子工业出版社

    第1章单表查询 11.1 查询表中所有的行与列 11.2 从表中检索部分行 21.3 查找空值 31.4 将空值转换为实际值 41.5 查找满足多个条件的行 51.6 从表中检索部分列 61.7 为列 ...

  9. Confluence 6 系统运行信息中的 JVM 内存使用情况

    当前一个正在运行的 Confluence 6 实例的内存使用情况 https://www.cwiki.us/display/CONF6ZH/Viewing+System+Information

  10. Confluence 6 新 Confluence 安装配置一个数据源连接

    如果在你的 Tomcat 中配置了数据源,并且Confluence 设置指南在安装的时候检测到这个配置的时候,配置数据源的选项将会提供给你进行配置.入股你希望使用数据源,请参考下面的配置. 1. 停止 ...