.Net core2.0+Mysql5.7部署到CentOS7.5完整實踐經驗

    本文爲本人最近學習將.Net Core部署到Linux的一些經驗總結,也提供點也和我一樣對Linux接觸不多的.Net Core開發者。

一.部署用到的環境和工具

  1.Linux採用最新的CentOS7.5版本,開發使用VS2017搭配的.Net Core 爲2.0的SDK版本號2.1.202(可到微軟官方下載:https://dotnet.microsoft.com/download/dotnet-core/2.0)

  2.數據庫爲Mysql 5.7版本,同CentOS系統一樣部署在同一個騰訊雲服務器上(配置爲1C2G1M)

  3.Linux的SSH2客戶端使用XShell6,文件傳輸使用WinScp,可以自行下載,我這打包一份網上收集的(https://pan.baidu.com/s/1_tKLCcRQQYjDIpZ49fUEiQ 提取碼: v9uu )

  4.在CentOS上用Git代碼管理

  5.反向代理工具使用jexus

二.CentOS發佈環境搭建 

   

 

  1.從0開始,重裝了雲服系統。

  

  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

/// 1、切換到Jexus配置文件目錄
cd /usr/jexus/siteconf
/// 2、複製默認的配置文件爲Ae
cp default Ae
/// 3、編輯配置文件,這裏端口爲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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章