用到的软件如下
- xshell
- xftp
- vs2017.3
- centos 7.3 64位
安装环境:
.net core 2.0 可以在以下版本linux 下运行
- Red Hat Enterprise Linux 7 x64
- CentOS 7 x64
- Oracle Linux 7 x64
- Fedora 25, 26 x64
- Debian 9, 8.7+ x64
- Ubuntu 17.04, 16.04, 14.04 x64
- Linux Mint 18, 17 x64
- openSUSE 42.2+ x64
- SUSE Enterprise Linux (SLES) 12 SP2+ x64
实验用到的环境
aliyun centos 7.3 64位
安装.net core 2.0 依赖的组件
- deltarpm
- epel-release
- unzip
- libunwind
- gettext
- libcurl-devel
- openssl-devel
- zlib
- libicu-devel
直接yum安装这些组件
yum install deltarpm epel-release unzip libunwind gettext libcurl-devel openssl-devel zlib libicu-devel
安装.net core 2.0
sudo dnf install libunwind libicu curl -sSL -o dotnet.tar.gz https://aka.ms/dotnet-sdk-2.0.0-linux-x64 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin dotnet --help
在命令 dotnet --help 看到下面信息就安装.net core 2.0成功了
[root@iZ6r8lfyydxll0Z ~]# dotnet --help .NET Command Line Tools (2.0.0) Usage: dotnet [runtime-options] [path-to-application] Usage: dotnet [sdk-options] [command] [arguments] [command-options] path-to-application: The path to an application .dll file to execute. SDK commands: new Initialize .NET projects. restore Restore dependencies specified in the .NET project. run Compiles and immediately executes a .NET project. build Builds a .NET project. publish Publishes a .NET project for deployment (including the runtime). test Runs unit tests using the test runner specified in the project. pack Creates a NuGet package. migrate Migrates a project.json based project to a msbuild based project. clean Clean build output(s). sln Modify solution (SLN) files. add Add reference to the project. remove Remove reference from the project. list List reference in the project. nuget Provides additional NuGet commands. msbuild Runs Microsoft Build Engine (MSBuild). vstest Runs Microsoft Test Execution Command Line Tool. Common options: -v|--verbosity Set the verbosity level of the command. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. -h|--help Show help. Run 'dotnet COMMAND --help' for more information on a command. sdk-options: --version Display .NET Core SDK version. --info Display .NET Core information. -d|--diagnostics Enable diagnostic output. runtime-options: --additionalprobingpath <path> Path containing probing policy and assemblies to probe for. --fx-version <version> Version of the installed Shared Framework to use to run the application. --roll-forward-on-no-candidate-fx Roll forward on no candidate shared framework is enabled. --additional-deps <path> Path to additonal deps.json file.
使用VS2017.3 新建一个.net core 2.0 的测试代码
可以从此地址下载:http://files.cnblogs.com/files/fun5/webcore.zip
使用xftp 把生成好的程序 (webcore\webcore\bin\Debug\netcoreapp2.0\publish下的文件)上传到 /home/test 目录下
执行命令
cd /home/test dotnet webcore.dll &
可以看到 已经运行起来了,localhost:5000
安装配置nginx
yum install nginx
配置nginx.conf
server {
listen 80;
server_name test.fun5.cn;
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;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
执行 nginx -s reload
访问 nginx 绑定的域名可以看到网站可以跑起来了 http://test.fun5.cn/
配置守护进程
安装Supervisor
yum install supervisor
Supervisor配置文件,创建一个ini 配置文件 webcore.ini
[program:webcore]
command=dotnet webcore.dll
directory=/home/test
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/var/log/webcore.err.log
stdout_logfile=/var/log/webcore.out.log
创建好之后,使用 xftp 上次到 /etc/supervisord.d 目录下
最后启动
supervisord -c /etc/supervisord.conf
如果想要supervisord开机自启动
# 编辑启动文件
vi /etc/rc.local
# 在新行添加要执行的命令
supervisord -c /etc/supervisord.conf
常用命令
# 查看所有action
supervisorctl help
# 控制所有进程
supervisorctl start all
supervisorctl stop all
supervisorctl restart all
# 控制目标进程
supervisorctl stop shadowsocks
supervisorctl start shadowsocks
supervisorctl restart shadowsocks
结束!
参考资料
https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction
https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x