CodeSnippet.Cn
代码片段
Csharp
架构设计
.NetCore
西班牙语
kubernetes
MySql
Redis
Algorithm
Ubuntu
Linux
Other
.NetMvc
VisualStudio
Git
pm
Python
WPF
java
Plug-In
分布式
CSS
微服务架构
JavaScript
DataStructure
Shared
.net core程序部署到阿里云
0
.NetCore
Ubuntu
小笨蛋
发布于:2021年02月06日
更新于:2021年02月06日
194
#custom-toc-container
## 前情 如何购买阿里云及如何配置这里就不细说了,网上找找吧。 我选择的镜像是Ubuntu20.04的镜像。 ## 连接服务器软件 以下两款软件都是免费的 Xshell用于访问服务器 Xftp用于上传文件 ## 安装MySql ```shell sudo apt-get update #更新源 sudo apt-get install mysql-server #安装 ``` ### 验证 安装完成后,可以通过下面的命令来查看时候安装成功: ```shell systemctl status mysql ``` ### 登陆MySql 以root用户登陆 ```shell sudo mysql -u root -p # -u 指定用户名 -p需要输入密码 ``` 或者 ```shell sudo mysql #可以不需要指定用户名密码 ``` ### 修改密码 MySql 从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空,可以直接修改密码,不用修改配置文件。 ```shell use mysql; update user set authentication_string='' where user='root'; --将字段置为空 alter user 'root'@'localhost' identified with mysql_native_password by 'MyPwd'; ``` ### 启动MySqlService ```shell sudo service mysql start ``` ### 卸载MySQL ```shell sudo rm /var/lib/mysql/ -R sudo rm /etc/mysql/ -R sudo apt-get autoremove mysql* --purge ``` ------------ ## 安装.Net 将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。 ```shell wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb ``` ```shell sudo dpkg -i packages-microsoft-prod.deb ``` [官网详细文档](https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu "官网详细文档") ### 清除包列表 ```shell sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update ``` ### 安装.net core SDK ```shell sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-3.1 #注意版本 ``` ### 安装.net core运行时 ```shell sudo apt-get install -y gpg wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ wget https://packages.microsoft.com/config/ubuntu/20.04/prod.list sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-5.0 #注意版本 ``` ### 验证安装版本 ```shell dotnet --version ``` ------------ ## 上传项目 这时你就可以把项目通过Xftp上传至服务器 ## 安装rar ```shell sudo apt-get install rar sudo apt-get install unrar unrar x file.rar #解压rar unzip file.zip #解压zip ``` 解压后可以通过`dotnet CodeSnippet.cn.dll --urls http://*:5001 `命令来启动你的项目。 ------------ ## 安装守护进程supervisor ```shell sudo apt install supervisor ``` ### 创建配置文件 一般情况下,如果安装了 supervisor 以后,在对应的 /etc/supervisor 下面会产生一个文件,如果没有,可以通过以下命令进行创建。 ```shell mkdir /etc/supervisor ``` 目录创建成功后, 通过 echo_supervisord_conf 程序(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件。阿里云的服务器安装完守护进程后是自带这个文件的。 ```shell echo_supervisord_conf > /etc/supervisor/supervisord.conf ``` ### 添加配置文件 在本地创建文件CoreWebTest.conf 内容如下:(正常的配置文件好像是没有逗号) ```shell [program:CodeSnippet] ;自定义进程名称, 根据自己喜好命名 command=dotnet CodeSnippet.cn.dll ;程序启动命令 使用dotnet 命令 directory=/home/wwwroot/CodeSnippet ;命令执行的目录 你.NET Core 程序存放目录 autostart=true ;在Supervisord启动时,程序是否启动 autorestart=true ;程序退出后自动重启 startretries=5 ;启动失败自动重试次数,默认是3 startsecs=1 ;自动重启间隔 user=root ;设置启动进程的用户,默认是root priority=999 ;进程启动优先级,默认999,值小的优先启动 stderr_logfile=/var/log/CodeSnippet.err.log ;标准错误日志 路径可以自定义 stdout_logfile=/var/log/CodeSnippet.out.log ;标准输出日志 路径可以自定义 environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量 stopsignal=INT ;请求停止时用来杀死程序的信号 ``` ### 上传配置文件 将文件上传到目录:/etc/supervisor/conf.d下 如果文件传输的过程中,发现不能传输,可能是因为权限不够,可以执行如下命令,更改权限。 ```shell chmod 777 + 文件路径 ``` 也可以通过如下命令。打开一个带有权限的资源管理器: ```shell sudo nautilus ``` ### 更新新的配置 更新新的配置到supervisord,一般都是改.conf文件后使用该命令 ```shell supervisorctl update ``` ### 启动supervisor ```shell supervisord -c /etc/supervisor/supervisord.conf ``` ### 报错 如果遇到如下错误 ```shell Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.For help, use /usr/bin/supervisord -h ``` 这种情况下可以执行: ```shell unlink /var/run/supervisor.sock unlink /tmp/supervisor.sock ``` > 这个错误的原因就是supervisor.sock 这个文件会被系统自动删除或者其它原因不存在了,删除软连接就可以了。 supervisor.sock 生成的位置可以去 supervisor 的配置文件中找到。 ### 其他常用命令 成功之后,就可以使用如下命令管理supervisor服务了 ```shell # 停止 systemctl stop supervisor # 启动 systemctl start supervisor # 状态 systemctl status supervisor # 重载 systemctl reload supervisor # 重启 systemctl restart supervisor ```
这里⇓感觉得写点什么,要不显得有点空,但还没想好写什么...
返回顶部
About
京ICP备13038605号
© 代码片段 2024