本文爲本人最近學習將.Net Core部署到Linux的一些經驗總結,也提供點也和我同樣對Linux接觸很少的.Net Core開發者。html
一.部署用到的環境和工具mysql
1.Linux採用最新的CentOS7.5版本,開發使用VS2017搭配的.Net Core 爲2.0的SDK版本號2.1.202(可到微軟官方下載:https://dotnet.microsoft.com/download/dotnet-core/2.0)linux
2.數據庫爲Mysql 5.7版本,同CentOS系統同樣部署在同一個騰訊雲服務器上(配置爲1C2G1M)git
3.Linux的SSH2客戶端使用XShell6,文件傳輸使用WinScp,能夠自行下載,我這打包一份網上收集的(https://pan.baidu.com/s/1_tKLCcRQQYjDIpZ49fUEiQ 提取碼: v9uu )web
4.在CentOS上用Git代碼管理sql
5.反向代理工具使用jexus數據庫
二.CentOS發佈環境搭建 vim
1.從0開始,重裝了雲服系統。centos
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-9.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=1 gpgcheck=1 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.202
也是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
/// 一、切換到Jexus配置文件目錄 cd /usr/jexus/siteconf /// 二、複製默認的配置文件爲Ae cp default Ae /// 三、編輯配置文件,這裏端口爲8080,若用80請把defualt中默認的80改成其餘端口,Ator.Site.dll爲Web項目生成的dll爲主入口文件 vi Ae ###################### # Web Site: Ae ######################################## port=8080 root=/ /var/www/Ae hosts= * #OR your.com,*.your.com AppHost={CmdLine=dotnet /var/www/Ae/Ator.Site.dll;AppRoot=/var/www/Ae/;Port=5000}
最後重啓下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