在阿里云windows server2016服务器上搭建.net core部署 实现

在阿里云windows server2016服务器上搭建.net core部署 实现

  • 在visual studio上发布.net core
  • 在服务器上搭建mysql 5.7
  • 在服务器上搭建redis
  • 在阿里云安全组规则上配置规则
  • 在服务器上安装iis
  • 在服务器上安装.net core sdk
  • 在服务器上安装.net AspNetCore Module
  • 在服务器上部署.net core 网站
  • 测试

**

发布:

**
在完成.net core项目之后右击解决方案选择发布
选择文件系统发布,发布到一个publish文件夹。如果有错误自行排查错误。

**

搭建mysql 5.7

**

	一开始是准备在阿里云的服务器上安装docker然后把数据库全部放入docker中进行搭建的,
	在搭建的过程中才发现阿里云的服务器本身就是虚拟的所以不能在运行docker中的虚拟环境
	,也就是CPU不支持2次虚拟化所以放弃了这个思路(如果有大神有办法请留言。),
	然后就是正常的到oracle mysql 下载mysql 5.7的zip安装包,也可以下载(这里给出
	下载地址5.7的

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

),然后下载安装包后放入服务器的自己的一个文件夹中。开始mysql的安装,首先是配置文件
创建一个my.ini文件在里面写上(这一步网上有很多种办法)
		[mysql]
		# 设置mysql客户端默认字符集
		default-character-set=utf8
		[mysqld]
		#设置3306端口
		port = 3306
		# 设置mysql的安装目录
		basedir=D:\mysql5.7
		# 设置mysql数据库的数据的存放目录
		datadir=D:\mysql5.7\data
		# 允许最大连接数
		max_connections=200
		# 服务端使用的字符集默认为8比特编码的latin1字符集
		character-set-server=utf8
		# 创建新表时将使用的默认存储引擎
		default-storage-engine=INNODB
datadir 这个配置的文件夹不需要创建 安装的时候会自动创建的,如果创建了反而不好。

---------------------------------------时间:2018-12-13---------------------------------------------
后来去安装server 2012 时候才发现一些问题,data文件夹在server2012下还是要手动创建的,所以网上版本不一应该就是系统版本的问题。还有一个系统版本导致一个问题,修改2012下第一次进去还是要密码的密码会在你调用命令,mysqld --initialize --console 中打印在最后 如果没有报错的话 。最后会显示。localhost : xxxx 你的密码。 还有一个问题进去修改密码使用的命令是
set password for root@localhost=password(‘你的密码’);
顺便写一下设置mysql root 的远程访问权限直接给命令
update mysql.user set host=’%’ where user=‘root’;
然后最重要一点 上面执行完之后 都要 使用命令 flush privileges; 来保存一下。
还有一个信息也写上,如果执行mysqld -install 的时候显示服务已经存在则说明你先前安装的mysql 没有删除干净这时候使用命令, sc delete mysql
删除mysql 服务,然后再去安装mysql 服务,还有一点就是 评论的提问上说没有mysqld 的命令,我也说一下 你使用cmd 管理员的情况下 进入到mysql安装目录下的bin文件目录下使用 .\mysqld 这样,懂的人应该都懂。
然后可以开始安装。

  1. 用管理员的身份打开cmd.exe

  2. mysqld --initialize --console 到mysql的解压目录下的bin目录下。运行这个命令这个是帮你初始化mysql同时就会帮你创建那个data的文件夹。然后后面的–console是为了在控制台输出信息。

  3. mysqld -install 安装mysql 成功的 会提示成功的

  4. 然后是运行mysql的服务 net start mysql 如果出现问题请看我这篇博客

    https://blog.csdn.net/koloumi/article/details/83117497

  5. 进入mysql 第一次进入是不需要密码的直接进去,进去之后修改密码

  6. update user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’; 修改密码的语句 后续必须加上 flush privileges;进行保存。

**

搭建redis

**

  1. 下载redis的 zip https://redis.io/download
  2. 解压到服务器自己的目录,正常的来说一般解压好后可以直接使用
  3. 然后发现只能本地使用外部链接不上,这时候需要配置redis.windows.conf这个文件打开,注释掉bind 127.0.0.1 还是不够的 还需要吧protected-mode yes 改为protected-mode no 才可以让外部访问
  4. 然后就可以连接redis了,当然还需要开启redis的服务.\redis-server.exe .\redis.windows.conf 如果外部还是无法访问 吧 redis.windows-server.conf做上面同样修改.

**

阿里云安全组规则上配置规则

**

	找到你的实例服务器然后

在阿里云windows server2016服务器上搭建.net core部署 实现_第1张图片

配置安全组规则在 入方向添加一个 你2个数据库和你之后的网站所需要的端口。

**

安装iis

**

  1. 打开服务管理器,添加角色功能
  2. 基于角色或基于功能的安装然后一直下一步到在阿里云windows server2016服务器上搭建.net core部署 实现_第2张图片
    勾选web服务器iis,然后下一步选着全部的iis相关免得到时候遗漏。
  3. 然后一直下一步安装结束。

安装.net core sdk 和 .net AspNetCore Module

 下载地址

https://www.baidu.com/link?url=xIvzBWGEurFCVkgd9xB3TEginCUcju89cg-SpMl4QnZbz-Iqk8sH3ql2B9zd7gCu&wd=&eqid=fd515dc400006013000000065bd13006

然后直接安装
另一个就是里面的.net core runtime 版本最好对应下载。不然会有版本问题,还有一个严重的问题这里必须要提一下不然后期发布的时候会一直导致访问 502,就是如果你的发布的.net core项目是2.1一下的时候 那么服务器上安装的sdk也必须是2.1一下的,这里的坑是什么呢,就是2.1一下的sdk中有个默认的依赖是关于Azure的,当然我们不发布到Azure上所以用不到但是2.1之后就没有这个默认了,所以当你吧2.1一下的.net core项目发布到安装有2.1sdk以及以上的服务器上的时候就会发现运行不起来其实主要原因就是这个。

部署.net core 网站

  1. 打开服务器上的iis管理器然后再应用程序池创建一个netcore 应用程序并且启动在这里插入图片描述
    必须要注意的是 .net clr必须要 选中无托管代码
  2. 然后再网站这边添加网站,添加网站的时候需要选中应用程序池这个时候就需要选中我们刚才创建的那个应用程序池,然后把物理路径选中 拷贝过来的发布文件夹。填写好端口就可以确定了。
  3. 还需要确认一个东西,那就是打开iis的模块看下 模块里面有没有模块:AspNetCoreModule 这个模块如果没有这个模块说明你的.net core runtime这个没有安装好,安装好这个之后右击iis这个停止然后启动就是重启iis.
  4. 然后就可以测试访问了。

你可能感兴趣的:(.net,core)