言:上一篇,我们介绍了,如何本地调试和部署到windows服务器。

本篇,将带大家,从0到1,开始部署到Centos系统上。。。

经过测试,可以完美支持Centos。这也是.net core 跨平台的真正意义所在。

项目github地址:https://github.com/hogenwang/comcms_core

QQ讨论群:1600800

说明:本篇仅是整合整个过程,实际上,所有的操作,google都有,大家可以多google.....

前方高能预警,全程傻瓜式,只要你复制代码,粘贴执行即可!!!

一、安装.net core SDK 2.1 (采用微软官方方法)

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-2.1

安装后,输入:

dotnet --info

看到下面画面,就说明成功了。

二、安装Mysql 5.7

1、下载安装源:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2、安装源

rpm -ivh mysql57-community-release-el7-.noarch.rpm

3、安装mysql

yum -y install mysql-server

4、启动Mysql

systemctl start mysqld

查看mysql状态

systemctl status mysqld

 看到绿色就放心了

5、设置开机启动

systemctl enable mysqld

systemctl daemon-reload

6、mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过上面的方式找到root默认密码(:后面为密码),然后登录mysql进行修改

grep 'temporary password' /var/log/mysqld.log

注意密码是红色框全部。

登录mysql

mysql -uroot -p

输入刚刚找到的密码。

mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR报错。

此处代码用来修改密码强度:0 or LOW(密码任意,但长度在 8 位或以上)。

我们这里只是为了方便才这么设置,如果是生产环境,建议使用高强度密码

set global validate_password_policy=;

设置最少密码长度4:

set global validate_password_length=;

修改密码:

set password for 'root'@'localhost'=password('新密码');

7、添加远程账户,主要因为默认账户只能本地登录。或者修改,或者添加一个远程,这样可以使用navicate来远程链接

GRANT ALL PRIVILEGES ON *.* TO 'comcms'@'%' IDENTIFIED BY 'Password@123' WITH GRANT OPTION;

当然,如果是阿里云服务器,你还要去设置好端口安全策略。这里就不再赘述如何配置。

这就说明成功了。然后就可以导入SQL啦。

三、安装Nginx

1、下载源

curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、安装源

rpm -ivh nginx.rpm

3、安装Nginx

yum install nginx

4、启动Nginx服务器

systemctl start nginx

5、设置开机启动Nginx:

systemctl enable nginx

一般情况下,启动后,输入服务器IP地址,应该可以看到:

如果防火墙没有开放80端口,则可以配置一下:

命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)

命令:systemctl restart firewalld(重启防火墙以使配置即时生效)

至此,已经成功了一半了。再接再厉,继续。。。。。

四、上传编译好的COMCMS 文件

1、建立好目录:/home/wwwroot/comcms

2、上传文件

3、使用dotnet 命令运行COMCMS

进入comcms目录后运行:

dotnet COMCMS.Web.dll

如果看到正常运行,说明成功。

4、修改Nginx配置,转发.net core

修改 /etc/nginx/conf.d/default.conf 文件。修改为:

server {
listen ;
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

nginx –s reload

5、打开IP地址,浏览是否成功:http://47.106.32.133

看到这样的,就说明成功了。

随后登录:

至此,已经成功部署到Centos 7.4

五、配置守护服务(Supervisor)

1、安装Supervisor

yum install python-setuptools

easy_install supervisor

2、配置Supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改尾部并保存:

[include]
files = conf.d/*.conf

3、配置对COMCMS应用的守护

创建一个 comcms.conf文件,内容如下

[program:COMCMS]
command=dotnet COMCMS.Web.dll ; 运行程序的命令
directory=/home/wwwroot/comcms/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/comcms.err.log ; 错误日志文件
stdout_logfile=/var/log/comcms.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

保存到:/etc/supervisor/conf.d 目录

4、运行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf

ps -ef | grep comcms

5、配置Supervisor开机启动

新建一个“supervisord.service”文件

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

拷贝到:/usr/lib/systemd/system/supervisord.service

执行命令:

systemctl enable supervisord

查看是否生效:

systemctl is-enabled supervisord

至此已经完全配置好了。

最后,几点坑:

如果安装后,发现XCode提示错误,请拉去最新的NewLife.Core 和XCode。编译后,替换dll

最后,讨论群:1600800

COMCMS 微进阶篇,从0开始部署到Centos 7.4的更多相关文章

  1. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  2. idea 插件的使用 进阶篇

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 idea 插件的使用 进阶篇(个人收集 ...

  3. [转]抢先Mark!微信公众平台开发进阶篇资源集锦

    FROM : http://www.csdn.net/article/2014-08-01/2820986 由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在 ...

  4. flink进阶篇

    Flink 面试--进阶篇 1.Flink是如何支持批流一体的? 2.Flink是如何做到高效的数据交换的? 3.Flink是如何做容错的? 4.Flink 分布式快照的原理是什么? 5.Flink ...

  5. 2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  6. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

  7. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  8. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  9. 最快让你上手ReactiveCocoa之进阶篇

    前言 由于时间的问题,暂且只更新这么多了,后续还会持续更新本文<最快让你上手ReactiveCocoa之进阶篇>,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+Rea ...

随机推荐

  1. [20181108]with temp as 建立临时表吗.txt

    [20181108]with temp as 建立临时表吗.txt --//链接:http://www.itpub.net/thread-2106304-1-1.html--//作者提到在dg上使用w ...

  2. Node 各个版本支持ES2015特性的网站

    如果想了解Node 各个版本支持ES2015到那个程度,可以看下面网站. https://node.green/

  3. 一、JSP标签介绍,自定义标签

    一.JSP标签介绍 1. 标签库有什么作用 自定义标签库是一种优秀的表现层技术,之前介绍的MVC模式,我们使用jsp作为表现层,但是jsp语法嵌套在html页面,美工还是很难直接参与开发,并且jsp脚 ...

  4. 安装Window 10系统------计算机经验

    为什么这次安装window10系统呢?不是和window7系统的安装方法一样么?如果你是这样的想的话,是不完全对的,因为window10系统的安装有些繁杂,需要耐心.下面我就准备了官方原版的windo ...

  5. Linux 系统出现电流音解决方案

    迫于Windows 系统最近的各种故障,今天脱坑换了openSUSE Linux ,在上网途中播放视频时偶尔会出现电流音,虽然影响不大,但是还是进行了一些排查. 通过观察电流音出现时的系统负载的波段, ...

  6. C++ 中operator用法:隐式类型转换

    [转]C++ operator两种用法 C++,有时它的确是个耐玩的东东,就比如operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator c ...

  7. 获取当前页面的URL信息

    以前在做网站的时候,经常会遇到当前页的分类高亮显示,以便让用户了解当前处于哪个页面.之前一直是在每个不同页面写方法.工程量大,也不便于修改.一直在想有什么简便的方法实现.后来在网上查到可以用获取当前U ...

  8. Jenkins的环境部署

    一.Tomcat环境安装 1.安装JDK(Java环境) JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index. ...

  9. Numpy 模块的应用

    数据分析三剑客: Numpy, Pandas, Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数 ...

  10. 机器学习算法总结(九)——降维(SVD, PCA)

    降维是机器学习中很重要的一种思想.在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”.另 ...