本文将说明如何在阿里云中使用Centos7系统来部署ZKEACMS,并使用MySql作为数据库。

拉取程序

这里我们直接使用CDN上已发布好的资源,这是已发布好的程序(自包含运行时发布方式发布),所以不需要另外安装.net core2.0的运行时。当然您也可以自己下载源代码自行发布。

源代码:https://github.com/SeriaWei/ZKEACMS.Core

ZKEACMS发布:http://www.zkea.net/zkeacms/document/publish/core

直接拉取程序和数据库:

curl -o cms.zip http://cdn.zkeasoft.com/core/centos.7-x64.zip

解压

阿里云的Centos7默认是没有安装zip/unzip,先安装zip/unzip:

yum install zip unzip

将拉取下来的包解压到cms目录备用,这样cms目录下有两个目录,一个是数据库目录DataBase,一个是程序目录Application

unzip cms.zip -d cms

安装MySql

依次执行以下命令:

sudo yum update
yum install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
sudo yum install mysql-server
sudo systemctl start mysqld

初始化MySql:

sudo mysql_secure_installation

输入命令后直接回车,一路输入Y,设置root的密码为root。或者您可以根据您的个人情况进行设置。

初始化数据库

首先使用以下命令来登录mysql,用root登录:

mysql -u root -p

创建数据库 cms

create database cms;
use cms;

初始化数据库,数据库的脚本文件在刚才的解压目录cms中,如果您是自己发布的程序,数据库脚本对应在DataBase/MySql目录(https://github.com/SeriaWei/ZKEACMS.Core/tree/master/DataBase/MySql):

source /root/cms/DataBase/MySql/Dump.sql;

数据库初始化完成,可以按ctrl+c或者输入exit退出mysql了。

注意

Linux下MySql安装完后默认是区分表名的大小写的,脚本生成的表名都是小写的,所以要先设置表名不区分大小写,编辑 /etc/my.cnf 添加 lower_case_table_names=1 配置,重启MySql服务

vi /etc/my.cnf

修改结果如下图

重启mysql服务

service mysqld restart

修改数据库连接字符串

ZKEACMS的数据库连接字符串在程序目录的appsettings.json文件中:

vi /root/cms/Application/appsettings.json

修改结果如下图所示:

添加执行权限

在执行ZKEACMS之前,必需先添加执行权限

chmod a+x /root/cms/Application/ZKEACMS.WebHost

安装 libunwind libicu,这个是运行.net core程序所必须的

sudo yum install libunwind libicu

接下来就可以尝试运行ZKEACMS了

cd /root/cms/Application
./ZKEACMS.WebHost

正常运行如下图所示:

程序虽然跑起来了,但依然不能正常访问,需要安装nginx做反向代理。

安装nginx

sudo yum install epel-release
sudo yum install nginx
sudo systemctl enable nginx

修改 nginx 的配置

添加 nginx 的配置,让它反向代理到 localhost:5000,修改全局配置文件 

vi /etc/nginx/nginx.conf 

修改 location 结点为以下内容

location / {
    proxy_pass http://localhost:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

启动 Nginx

sudo systemctl start nginx

添加ZKEACMS服务

创建一个服务,让 ZKEACMS在后台运行。

创建服务

vi /etc/systemd/system/zkeacms.service

输入以下内容保存

[Unit]
Description=ZKEACMS

[Service]
WorkingDirectory=/root/cms/Application
ExecStart=/root/cms/Application/ZKEACMS.WebHost
Restart=always
RestartSec=10
SyslogIdentifier=zkeacms
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production 

[Install]
WantedBy=multi-user.target

启动服务

systemctl start zkeacms.service

这样就可以安心的退出SSH远程连接了。

开机自启动

systemctl enable zkeacms

这样ZKEACMS就部署完成了。

阿里云安全组规则

如果不能通过IP访问,要先在安全组规则里面添加80端口: