Windows Server2012R2部署Web

一、前言

​ Windows Server2012部署.NetFramework web应用程序, 可以大致分为以下几个步骤:

  • 打开windows功能中IIS功能
  • 安装对应.Net Framework Runtime 版本
  • 安装对应的mysql数据库
  • 在高级防火墙设置中开放对应的数据库以及web应用程序的端口
(一) 打开windows功能中IIS功能

补充: 因为windows server 2012 内置本身就包含了IIS的功能,所以不需要联网去打开操作!

首先找到控制面板,然后选择程序与功能选项,勾选对应的服务

(二) 安装.Net Framework RunTime版本

这里是坑比较多的地方,由于windows server 2012 版本最高只能支持.Net Framework4.6版本(这里并不包括后面所出现的.Net Core版本, 因为.NetCore以及后面.Net5、.Net6部署都是使用非托管代码形式部署)。所以在生成发布文件时一定要注意看自己生成的目标框架,选择4.5 或者4.6, 如果你在开发的时候使用了.NetFramework 4.7 或者4.8 而且使用了里面封装的一些新的语法糖,或者库。那么必须手动调整代码,然后降回4.6版本或者更低。最好在服务器部署上安装运行时版本,而非SDK版本。因为运行时版本是保证应用程序以最小单元运行所需要的最小环境,而SDK在包括了开发以及集成环境所需要的一些东西,为保证服务器资源不浪费,最好使用运行时版本。
在这里插入图片描述

(三) 安装对应的mysql数据库

数据库等系统应用软件对于版本以及操作系统都特别敏感,一定要对应几个重要的参数:

  1. 操作系统是64位还是32位
  2. 安装数据库版本的最低系统支持,大多数情况会向下兼容
  3. 注意某些特殊版本的要求
(1)、安装步骤

​ 这里介绍的是按照安装版本离线安装

(a) 下载mysql5.7.24安装包

去官网下载必须要创建Oracle账户,所以不推荐 ,这里可以提前到公司内网的地址(\192.168.0.53\Share\软件安装程序)去下载安装文件,注意选择对应的版本。解压后你可以看见如下目录:

/bin
/docs
/include
/lib
/share
LICENSE
README

下载解压到相应的目录.


(b) 初始化mysql

​ 初始化必须要新创建一个my.ini文件(注意: 文件名称不确定能不能修改),文件的配置如下—这里参考了这位博主的文章—链接:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
  
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\mysql-5.7.24-winx64        <---(参考地址,一定按照自己下载的目录,尽量不要有中文路径)
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql-5.7.24-winx64\data   <---(参考地址,一定按照自己下载的目录,尽量不要有中文路径)
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

这里我的后缀名为.ini,另存为ANSI文件格式。最后把这个my.ini文件放入安装目录的根目录中,和bin文件夹同级。使用管理员账号进入cmd中,powshell也可。进入bin目录,windows中操作命令为cd [路径名称], 随后执行如下命令:

[路径]> mysqld.exe --initialize-insecure

这条命令不会为root用户生成随机密码, 参考了上方链接,可能会出现如下错误:

  • 缺少MSVCR120.dll文件——解决办法: 以windows server2012为例,下载vc++2013的运行库,这里我下载的安装包名称全名为vcredist_x64.exe

  • 安装目录和数据的存放目录不正确,出现can't create dictory---------解决办法: 自己创建data文件夹,修改为自己的文件路径,这里我在 C:\mysql-5.7.24-winx64\data 后面加上了一个 \ 才能顺利初始化


©、安装并启动服务

(1) bin文件夹下执行如下命令(未出现错误):

mysqld.exe install

(2) bin文件夹下执行如下命令(未出现错误):

net start mysql
# 停止服务命令
# net stop mysql

(d)、设置mysql中root用户的密码

在bin文件夹目录下执行如下命令:

mysqladmin -u root -p password

先出现Enter passwoerd:, 不用管。

随后出现修改密码与确认密码。

(四) 在高级防火墙设置中开放对应的数据库以及web应用程序的端口

​ 必须要开放对应的网络端口,才能在局域网内访问服务器内的对应站点,当然也能直接考虑关闭防火墙。

在这里插入图片描述

(五) 补遗

关于Mysql安装过程中,配置文件的问题,大多数情况下按照上述配置文件下是不会出现问题的,但是在某些场景下,比如在代码中使用了一些只能在非严格模式下执行的Sql语句,因为mysql数据库默认情况下会开启严格模式,所以这段非严格模式下的sql语句是会报错的。

在这里插入图片描述

出现这种sql语句报错,需要修改my.ini配置文件,在其中添加

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

然后重新启动mysql服务,配置文件生效,即可正常运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值