ASP.NET Core快速入門之環(huán)境篇
前言
ASP.NET Core 是一個(gè)開(kāi)源和跨平臺(tái)的框架,用于構(gòu)建如 Web 應(yīng)用、物聯(lián)網(wǎng)(IoT)應(yīng)用和移動(dòng)后端應(yīng)用等連接到互聯(lián)網(wǎng)的基于云的現(xiàn)代應(yīng)用程序。ASP.NET Core 應(yīng)用可運(yùn)行于 .NET Core 和完整的 .NET Framework 之上。它整合了原來(lái)ASP.NET中的MVC和WebApi框架,你可以在 Windows、Mac 和 Linux 上跨平臺(tái)的開(kāi)發(fā)和運(yùn)行你的 ASP.NET Core 應(yīng)用。
vmware虛擬機(jī)安裝
vmware哪里下載?360軟件管家就可以下載。然后網(wǎng)上找個(gè)序列號(hào)。
我這里安裝的是12.1.1

安裝很簡(jiǎn)單一直下一步就好了。
CentOS7.3安裝
下載CentOS http://isoredirect.centos.org/centos/7/isos/x86_64/ 我們可以選擇163或阿里云的節(jié)點(diǎn),速度會(huì)快點(diǎn)。

下載完成后打開(kāi)vmware準(zhǔn)備安裝







菜鳥可以選擇有界面的


選好后然后開(kāi)始安裝,然后設(shè)置密碼,然后重啟就好了。

Windows的客戶端軟件
下載安裝Xshell https://www.baidu.com/baidu?word=Xshell
下載安裝WinSCP https://www.baidu.com/baidu?word=WinSCP (你也可以使用Xftp,記得選sftp,不然需要服務(wù)器支持ftp)
進(jìn)入CentOS,右鍵

開(kāi)始第一個(gè)命令。查看IP
ifconfig -a

接下來(lái),可以全部由Xshell操作。
打開(kāi)Xshell

然后輸入用戶名密碼登錄。(使用root登錄)

.NET Core1.1安裝
根據(jù)微軟資料 https://www.microsoft.com/net/core
在命令行執(zhí)行:
sudo yum install libunwind libicu #(安裝libicu依賴) curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 #(下載sdk壓縮包) 根據(jù)網(wǎng)速,可能快可能慢 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #(解壓縮) sudo ln -s /opt/dotnet/dotnet /usr/local/bin #(創(chuàng)建鏈接)
dotnet new console -o hwapp # 我們初始化一個(gè)示例Hello World應(yīng)用程序 (這里稍微耗時(shí)點(diǎn)) cd hwapp
dotnet restore dotnet run #運(yùn)行應(yīng)用程序

看到打印的hello world證明 .net core的環(huán)境已經(jīng)裝好了。
【小白技巧】
- "#"是注釋
- shirf + insert 粘貼 (不能ctrl + c v 有點(diǎn)不習(xí)慣)
- ctrl + insert 復(fù)制
nginx1.12.1安裝
curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx #安裝

systemctl start nginx #啟動(dòng)nginx systemctl enable nginx #設(shè)置nginx的開(kāi)機(jī)啟動(dòng)
然后登錄 CentOs系統(tǒng) 打開(kāi)瀏覽器 輸入 :192.168.233.129 (之前查到的IP)

看到這個(gè)頁(yè)面就代表安裝成功了。
配置防火墻
如果你在物理機(jī)的瀏覽器訪問(wèn),你會(huì)發(fā)現(xiàn)訪問(wèn)不了。
那是因?yàn)镃entOs的防火墻攔截了,我們打開(kāi)端口。
firewall-cmd --zone=public --add-port=80/tcp --permanent #(開(kāi)放80端口) systemctl restart firewalld #(重啟防火墻以使配置即時(shí)生效)
然后訪問(wèn)成功。
部署ASP.NET Core應(yīng)用程序
打開(kāi)VS2017 新建一個(gè).net core 項(xiàng)目

右鍵發(fā)布(發(fā)布之前最好先在本地跑下看正常不)

然后打開(kāi)我們的WinSCP(前面下載的)

點(diǎn)擊登錄,然后就可以看到CentOs系統(tǒng)的文件目錄了。然后隨便建個(gè)文件夾,準(zhǔn)備放我們發(fā)布發(fā)好的程序。

右鍵上傳

然后命令運(yùn)行
cd /home/NetCoreDemo #這個(gè)目錄 要輸入你自己對(duì)應(yīng)放的目錄 dotnet netcoreDemo.dll # netcoreDemo.dll 這個(gè)對(duì)應(yīng)你建的項(xiàng)目生成的dll

看到了5000 端口的一個(gè)網(wǎng)址,證明部署好了。
然后在虛擬機(jī)里面訪問(wèn) http://localhost:5000 ,ok。

nginx 配置
前面我們只說(shuō)了nginx,并沒(méi)有說(shuō)是干嘛的。nginx的作用有點(diǎn)先iis,是個(gè)web服務(wù)器。做轉(zhuǎn)發(fā)。
我們發(fā)現(xiàn)http://localhost:5000 可以訪問(wèn)。但是通過(guò)ip卻不能訪問(wèn)。那么我們現(xiàn)在就可以通過(guò)80訪問(wèn)nginx,然后nginx再幫我們?cè)L問(wèn)5000。

打開(kāi)路徑 /etc/nginx/conf.d
編輯default.conf 文件內(nèi)容替換為
server {
listen 80;
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添加至SELinux的白名單,否則會(huì)報(bào)502錯(cuò)誤。
nginx -s reload #使其即時(shí)生效 【注意】然后這里訪問(wèn)下 http://192.168.233.130/ (對(duì)應(yīng)你自己的centos ip,這一步好重要。應(yīng)該是要先主動(dòng)觸發(fā)這個(gè)502錯(cuò)誤吧。) yum install policycoreutils-python #(選y) cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx semodule -i mynginx.pp SELinux 對(duì)nginx訪問(wèn)目錄的影響 https://www.cnblogs.com/mywebnumber/p/5572984.html
然后我們就可以在物理機(jī)上通過(guò)ip訪問(wèn)了(不用帶端口了,直接80 然后 nginx 轉(zhuǎn)到了5000)。
配置守護(hù)服務(wù)(Supervisor)
yum install python-setuptools easy_install supervisor #安裝Supervisor mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf #配置Supervisor

文件的最后
;[include] ;files = relative/directory/*.ini
改成(【注意】去掉;且不能有空格)
[include] files = conf.d/*.conf
進(jìn)入目錄 /etc/supervisor/ 新建 conf.d文件夾,conf.d文件夾下新建 netcoreDemo.conf文件
內(nèi)容(【注意】看 第二行 第三行的 注釋,根據(jù)實(shí)際名字填入)
[program:netcoreDemo] command=dotnet netcoreDemo.dll ; (注意)運(yùn)行程序的命令 directory= /home/NetCoreDemo/ ; (注意 注意)對(duì)應(yīng)的你的項(xiàng)目的存放目錄,這個(gè)地方好多初學(xué)者搞錯(cuò)?。。? autorestart=true ; 程序意外退出是否自動(dòng)重啟 stderr_logfile=/var/log/WebApplication1.err.log ; 錯(cuò)誤日志文件 stdout_logfile=/var/log/WebApplication1.out.log ; 輸出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 進(jìn)程環(huán)境變量 user=root ; 進(jìn)程執(zhí)行的用戶身份 stopsignal=INT
supervisord -c /etc/supervisor/supervisord.conf ps -ef | grep netcoreDemo #【注意】netcoreDemo是上面 program:netcoreDemo 的命名 supervisorctl reload #重新加載

然后就好了,現(xiàn)在關(guān)掉那個(gè)5000界面也可以訪問(wèn)。
配置Supervisor開(kāi)機(jī)啟動(dòng)
打開(kāi)目錄 /usr/lib/systemd/system/ 新建文件 supervisord.service
內(nèi)容:
# 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
執(zhí)行命令:
systemctl enable supervisord systemctl is-enabled supervisord #來(lái)驗(yàn)證是否為開(kāi)機(jī)啟動(dòng) systemctl stop supervisord #關(guān)閉 systemctl disable supervisord #禁用
到此,完工。現(xiàn)在重新電腦什么都不用管,直接可以訪問(wèn)部署好的網(wǎng)站。
MySql5.6.37安裝
http://www.cnblogs.com/starof/p/4680083.html (我用的方法二)
安裝rar壓縮
下載 http://www.rarsoft.com/download.htm

把文件放服務(wù)器上。然后cd到這個(gè)目錄執(zhí)行
tar -zxvf rarlinux-x64-5.4.0.tar.gz # rarlinux-x64-5.4.0.tar.gz是你下載的文件名 cd rar make rar #安裝
安裝好了后我們就可以打命令解壓文件了
cd #跳到壓縮文件目錄 rar x ceshi.rar #解壓到當(dāng)前文件夾 ceshi.rar是壓縮文件名 rar a abc.rar ceshi #壓縮文件夾 到 abc.rar
在CentOS中安裝完rar命令,會(huì)自動(dòng)安裝zip命令
cd /home #進(jìn)入/home目錄 zip -r mydata.zip mydata #把/home目錄下面的mydata目錄壓縮為mydata.zip unzip mydata.zip -d mydatabak #把/home目錄下面的mydata.zip解壓到mydatabak目錄里面 zip -r abc123.zip abc 123.txt #把/home目錄下面的abc文件夾和123.txt壓縮成為abc123.zip unzip wwwroot.zip #把/home目錄下面的wwwroot.zip直接解壓到/home目錄里面 unzip abc\*.zip #把/home目錄下面的abc12.zip、abc23.zip、abc34.zip同時(shí)解壓到/home目錄里面 unzip -v wwwroot.zip #查看把/home目錄下面的wwwroot.zip里面的內(nèi)容 unzip -t wwwroot.zip #驗(yàn)證/home目錄下面的wwwroot.zip是否完整 unzip -j wwwroot.zip #把/home目錄下面wwwroot.zip里面的所有文件解壓到第一級(jí)目錄
常用linux命令
cd #目錄跳轉(zhuǎn) cd / #回到上一個(gè)目錄 ls #查看目錄下的文件 df -h #查看文件使用情況 mkdir #創(chuàng)建文件夾文件夾 vi # 編輯文件 :wq! #強(qiáng)制保存文件,并退出vi ifconfig -a #查看ip free #查看系統(tǒng)資源使用情況 http://blog.csdn.net/zhongluhuaok/article/details/52804187 firewall-cmd --zone=public --add-port=80/tcp --permanent #開(kāi)放80端口,也可以是其他端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent # 關(guān)閉端口 systemctl restart firewalld #重啟防火墻,使其生效 service mysqld restart #重啟mysql nginx -s reload # nginx 生效 reboot # 重啟系統(tǒng) supervisorctl start program_name #啟動(dòng)某個(gè)進(jìn)程(program_name=你配置中寫的程序名稱) supervisorctl stop program_name #停止某一進(jìn)程 (program_name=你配置中寫的程序名稱) supervisorctl reload #重新啟動(dòng)配置中的所有程序 supervisorctl stop all #停止全部進(jìn)程 supervisorctl update #更新新的配置到supervisord supervisorctl restart program_name #重啟某一進(jìn)程 (program_name=你配置中寫的程序名稱) supervisorctl #查看正在守候的進(jìn)程 http://blog.csdn.net/shudaqi2010/article/details/51153961 clear #刷新終端屏幕 (或者 ctrl + l) exit #退出 shift + insert #粘貼 ctrl + insert #復(fù)制
補(bǔ)充
centos上升級(jí) .net core 2.0 需要先執(zhí)行官網(wǎng)命令
curl -sSL -o dotnet.tar.gz https://aka.ms/dotnet-sdk-2.0.0-linux-x64 mkdir -p ~/dotnet && tar zxf dotnet.tar.gz -C ~/dotnet export PATH=$PATH:$HOME/dotnet
然后再刪除原有文件夾
rm -rf /opt/dotnet #刪除原有文件夾 rm -rf /usr/local/bin/dotnet #刪除原來(lái)定義的dotnet命令 sudo ln -s /root/dotnet/dotnet /usr/local/bin #重新定義dotnet命令
項(xiàng)目程序也要升級(jí)到2.0,不然dotnet dll不能成功。
以上就是ASP.NET Core快速入門之環(huán)境篇的詳細(xì)內(nèi)容,更多關(guān)于ASP.NET Core環(huán)境搭建的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
寫一個(gè)含數(shù)字,拼音,漢字的驗(yàn)證碼生成類
本文和大家分享的是一個(gè)集成1:小寫拼音;2:大寫拼音;3:數(shù)字;4:漢字的驗(yàn)證碼生成類。本章例子也會(huì)有一個(gè)mvc使用驗(yàn)證碼校驗(yàn)的場(chǎng)景。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01
.NET單元測(cè)試使用AutoFixture按需填充的幾種方式和最佳實(shí)踐記錄
AutoFixture是一個(gè).NET庫(kù),旨在簡(jiǎn)化單元測(cè)試中的數(shù)據(jù)設(shè)置過(guò)程,通過(guò)自動(dòng)生成測(cè)試數(shù)據(jù),它幫助開(kāi)發(fā)者減少測(cè)試代碼的編寫量,使得單元測(cè)試更加簡(jiǎn)潔、易讀和易維護(hù),本文介紹.NET單元測(cè)試使用AutoFixture按需填充的幾種方式和最佳實(shí)踐記錄,感興趣的朋友一起看看吧2024-07-07
Asp.net core Web Api配置swagger中文的實(shí)現(xiàn)
swagger是一個(gè)api文檔自動(dòng)生動(dòng)工具,還集成了在線調(diào)試. 可以為項(xiàng)目自動(dòng)生成接口文檔, 非常的方便快捷,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
Asp.net控制Tomcat啟動(dòng)關(guān)閉的實(shí)現(xiàn)方法
近日有個(gè)項(xiàng)目客戶要求能自己配置相關(guān)權(quán)限。由于歷史原因這個(gè)項(xiàng)目采用的是公司以前的權(quán)限系統(tǒng)2012-01-01
ASP.NET Core 3.0輕量級(jí)角色API控制授權(quán)庫(kù)
這篇文章介紹了ASP.NET Core 3.0輕量級(jí)角色API控制授權(quán)庫(kù),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
.NET下實(shí)現(xiàn)數(shù)字和字符相混合的驗(yàn)證碼實(shí)例
這篇文章介紹了.NET下實(shí)現(xiàn)數(shù)字和字符相混合的驗(yàn)證碼實(shí)例,有需要的朋友可以參考一下2013-11-11
ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection 集群場(chǎng)景)下篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09

