.Net Core 部署到 CentOS7 64 位系统中的步骤
建議使用 root 管理員賬戶操作
1、安裝工具
1、apache
2、.Net Core(dotnet-sdk-2.0)
3、Supervisor(進程管理工具,目的是服務器一開機就啟動服務器 上發布的ASP.NET Core Web網站)
2、安裝apache
???在安裝apache之前,要先做一件事就是,把當前登錄用戶權限設置為root相同的權限,否則 在執行sudo命令時會報 “不在 sudoers 文件中。此事將被報告”。
當前登錄用戶權限設置為root相同的權限操作如下:
su root
sudo vim /etc/sudoers
在vim命令調出的vim編輯窗口中,找到如下行:
root????ALL=(ALL:ALL)?ALL ?
在下面添加你自己的賬號,如 linjie ALL=(ALL:ALL)?ALL,添加以后的文件如下:
root????ALL=(ALL:ALL)?ALL
linjie ALL=(ALL:ALL)?ALL
點擊Esc 輸入:再輸入wq! 這樣就可以保存退出了,之后
su linjie 切換到自己的賬號,就可以使用sudo 執行命令了。
上面設置完成后,下面安裝apache(三步操作)
1、在終端中輸入命令: ?yum install httpd?
2、配置ServerName(可以省略) ?vi?/etc/httpd/conf/httpd.conf
如果沒有域名,則:ServerName localhost:80 或者?ServerName 127.0.0.1:80
?3、Apache服務添加到 開機自啟中
systemctl start httpd
systemctl enable httpd
在瀏覽器里輸入http://localhost或者是http://127.0.0.1,如果看 到了Testing ?123..,那就說明Apache就成功的安裝了。
Linux系統中服務的配置文件,以及存放位置如下:
服務目錄 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
網站數據目錄 /var/www/html
訪問日志 /var/log/httpd/access_log
錯誤日志 /var/log/httpd/error_log
主配置文件: vim /etc/httpd/conf/httpd.conf
在httpd服務程序主配置文件中最為常用的參數包括有:
ServerRoot 服務目錄
ServerAdmin 管理員郵箱
User 運行服務的用戶
Group 運行服務的用戶組
ServerName 網站服務器的域名
DocumentRoot 網站數據目錄
Listen 監聽的IP地址與端口號
DirectoryIndex 默認的索引頁頁面
ErrorLog 錯誤日志文件
CustomLog 訪問日志文件
Timeout 網頁超時時間,默認為300秒.
Include 需要加載的其他文件
從上面表格中可以得知DocumentRoot正是用于定義網站數據保存路徑的參數,其參數的默認值是把網站數據存放到了/var/www/html目錄中的,而網站首頁的名稱應該叫做index.html,因此可以手動的向這個目錄中寫入一個文件來替換掉httpd服務程序的默認網頁。
3、安裝.NET Core 2.0
1、注冊Linux系統(Cent OS 7)
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
?
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
2、更新安裝包,安裝.NET Core
sudo yum update?
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.4
4、查看一下 dotnet --version ?結果是 ?2.1.4 則說明安裝成功。
???(注:簡單的應用程序項目文件夾,使用以下命令啟動網站,只要打開發布網站的文件,右鍵終端中打開 dotnet run或者dotnet xx.dll,即可運,xx為網站的名稱)
sudo dotnet xxx.dll
然后就可以在瀏覽器打開使用實際IP和端口訪問(mmps的端口設置的是8080)?
注意這個過程可能會遇到的問題:
問題1
如果外網無法訪問8080端口(:這個端口是程序中的訪問端口)的話,設置如下
1、sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
2、firewall-cmd --reload
問題2
如果打開瀏覽器,無法打開的話,就是網絡問題,
1、查看詳細信息
?
2、點擊 身份 -- 勾選 自動連接,點擊應用。
?
到此位置基本就實現了通過IP訪問,然而每次關機以后,重新開機都需要去手動的啟動發布的網站項目才能訪問,因此我們下面使用Supervisor托管自動啟動網站服務操作,保證每次只要一開機,網站就可以正常。
3、安裝Supervisor(設置開機自動設置網站)
1、右鍵在終端中打開,輸入安裝命令:
安裝python的supervisor
yum search setuptools
sudo yum install -y python-setuptools.noarch
easy_install supervisor
2、安裝完成之后,創建相關文件,
??????第一種:
創建supervisor配置文件目錄
sudo mkdir??/etc/supervisor
創建主配置文件
echo_supervisord_conf >/etc/supervisor/supervisord.conf ?
如果提示權限不夠,
su root
echo_supervisord_conf >/etc/supervisor/supervisord.conf
創建項目配置文件目錄conf.d
cd /etc/supervisor/
sudo mkdir?conf.d ??????
在文件目錄conf.d下創建創建項目配置文件(開機啟動的網站)?
sudo vim conf.d/MmPSCore.conf (編輯完成后 ,按Esc,在按:冒號,之后再輸入wq!,即可以退出)
第二種:
echo_supervisord_conf?>?supervisord.conf
sudo ?mkdir?/etc/supervisor
sudo ?mkdir?/etc/supervisor/conf.d
sudo cp?supervisord.conf??/etc/supervisor/supervisord.conf
注:1、supervisord.conf中的 /tmp換成相應的/var/run或者 /var/log
(使用sudo chmod a+w?etc/supervisor/supervisord.conf?就可以打開進行編輯了,/tmp換成相應的/var/run或者 /var/log替換之后,保存)
2、把supervisord.conf中的
;[include]節點處
;files = relative/directory/*.ini
換成
[include]
files = /etc/supervisor/conf.d/*.conf
?
3、配置文件,取名為 MmPSCore.conf (當前項目的名稱)
sudo touch /etc/supervisor/conf.d/MmPScore.conf?(自定義項目名稱,本項目是MmPScore.conf)
打開MmPSCore.conf寫入如下命令(如果沒有權限,
請如下方法
sudo chmod a+w?/etc/supervisor/conf.d/MmPScore.conf(命令啟動編輯)
?
命令內容如下:
[program:MmPSCore]
command=dotnet MmPSCore.dll #要執行的命令(發布網站執行文件)
directory=/home/xx/MmPSCore#命令執行的目錄(發布網站文件路徑)environment=ASPNETCORE__ENVIRONMENT=Production #環境變量
user=www-data #進程執行的用戶身份(可能需要去掉)
stopsignal=INT
autostart=true?#是否自動啟動
autorestart=true?#是否自動重啟
startsecs=1 #自動重啟間隔
user=root ; #進程執行的用戶身份(可以不寫)
stderr_logfile=/var/log/TestCore.err.log #標準錯誤日志
stdout_logfile=/var/log/TestCore.out.log #標準輸出日志
?//注:#后面的內容為注釋,在保存上面的文件代碼時,記得刪除
?
上述操作完后,保存,
運行supervisord,查看是否生效,執行以下命令:
supervisord -c /etc/supervisor/ supervisord.conf
ps -ef | grep ProjectName
返回
root 27007 27006 ?1 13:21 ? ?00:00:02 dotnet ProjectName.dll
root 27026 26810 0 13:23 pts/0 00:00:00 grep --color=auto ProjectName
表示運行成功!
如果有錯誤的話,建議執行下面的命令
這個兩句命令很重要
sudo supervisord -c /etc/supervisor/supervisord.conf?服務端
sudo supervisorctl -c /etc/supervisor/supervisord.conf?客戶端
?
4、配置supervisord開機啟動
?????????sudo touch /usr/lib/systemd/system/supervisord.service
?????????sudo chmod a+w usr/lib/systemd/system/supervisord.service
B.輸入以下內容:
[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
?
保存并退出
C.執行以下命令:
systemctl enable supervisord
提示:
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
D.驗證是否為開機啟動:
systemctl is-enabled supervisord
提示:
enabled
表示設置成功!
至此,創建supervisor守護進程完畢。
5、測試
接下來重啟機器,在瀏覽器中輸入IP地址,看看網站是否跟隨開機自動運行。
轉載于:https://www.cnblogs.com/1175429393wljblog/p/8317455.html
總結
以上是生活随笔為你收集整理的.Net Core 部署到 CentOS7 64 位系统中的步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转] Java, 使用 Reactor
- 下一篇: Windows 10 IoT Core