.NetCore Ubuntu 小笨蛋 发布于:2021年02月06日 更新于:2021年02月06日 287

前情

如何购买阿里云及如何配置这里就不细说了,网上找找吧。
我选择的镜像是Ubuntu20.04的镜像。

连接服务器软件

以下两款软件都是免费的
Xshell用于访问服务器
Xftp用于上传文件

安装MySql

  1. sudo apt-get update #更新源
  2. sudo apt-get install mysql-server #安装

验证

安装完成后,可以通过下面的命令来查看时候安装成功:

  1. systemctl status mysql

登陆MySql

以root用户登陆

  1. sudo mysql -u root -p # -u 指定用户名 -p需要输入密码

或者

  1. sudo mysql #可以不需要指定用户名密码

修改密码

MySql 从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空,可以直接修改密码,不用修改配置文件。

  1. use mysql;
  2. update user set authentication_string='' where user='root'; --将字段置为空
  3. alter user 'root'@'localhost' identified with mysql_native_password by 'MyPwd';

启动MySqlService

  1. sudo service mysql start

卸载MySQL

  1. sudo rm /var/lib/mysql/ -R
  2. sudo rm /etc/mysql/ -R
  3. sudo apt-get autoremove mysql* --purge

安装.Net

将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

  1. wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
  1. sudo dpkg -i packages-microsoft-prod.deb

官网详细文档

清除包列表

  1. sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
  2. sudo apt-get update

安装.net core SDK

  1. sudo apt-get update; \
  2. sudo apt-get install -y apt-transport-https && \
  3. sudo apt-get update && \
  4. sudo apt-get install -y dotnet-sdk-3.1 #注意版本

安装.net core运行时

  1. sudo apt-get install -y gpg
  2. wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
  3. sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
  4. wget https://packages.microsoft.com/config/ubuntu/20.04/prod.list
  5. sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
  6. sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
  7. sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
  8. sudo apt-get update; \
  9. sudo apt-get install -y apt-transport-https && \
  10. sudo apt-get update && \
  11. sudo apt-get install -y aspnetcore-runtime-5.0 #注意版本

验证安装版本

  1. dotnet --version

上传项目

这时你就可以把项目通过Xftp上传至服务器

安装rar

  1. sudo apt-get install rar
  2. sudo apt-get install unrar
  3. unrar x file.rar #解压rar
  4. unzip file.zip #解压zip

解压后可以通过dotnet CodeSnippet.cn.dll --urls http://*:5001命令来启动你的项目。


安装守护进程supervisor

  1. sudo apt install supervisor

创建配置文件

一般情况下,如果安装了 supervisor 以后,在对应的 /etc/supervisor 下面会产生一个文件,如果没有,可以通过以下命令进行创建。

  1. mkdir /etc/supervisor

目录创建成功后, 通过 echo_supervisord_conf 程序(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件。阿里云的服务器安装完守护进程后是自带这个文件的。

  1. echo_supervisord_conf > /etc/supervisor/supervisord.conf

添加配置文件

在本地创建文件CoreWebTest.conf 内容如下:(正常的配置文件好像是没有逗号)

  1. [program:CodeSnippet] ;自定义进程名称, 根据自己喜好命名
  2. command=dotnet CodeSnippet.cn.dll ;程序启动命令 使用dotnet 命令
  3. directory=/home/wwwroot/CodeSnippet ;命令执行的目录 你.NET Core 程序存放目录
  4. autostart=true ;在Supervisord启动时,程序是否启动
  5. autorestart=true ;程序退出后自动重启
  6. startretries=5 ;启动失败自动重试次数,默认是3
  7. startsecs=1 ;自动重启间隔
  8. user=root ;设置启动进程的用户,默认是root
  9. priority=999 ;进程启动优先级,默认999,值小的优先启动
  10. stderr_logfile=/var/log/CodeSnippet.err.log ;标准错误日志 路径可以自定义
  11. stdout_logfile=/var/log/CodeSnippet.out.log ;标准输出日志 路径可以自定义
  12. environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
  13. stopsignal=INT ;请求停止时用来杀死程序的信号

上传配置文件

将文件上传到目录:/etc/supervisor/conf.d下
如果文件传输的过程中,发现不能传输,可能是因为权限不够,可以执行如下命令,更改权限。

  1. chmod 777 + 文件路径

也可以通过如下命令。打开一个带有权限的资源管理器:

  1. sudo nautilus

更新新的配置

更新新的配置到supervisord,一般都是改.conf文件后使用该命令

  1. supervisorctl update

启动supervisor

  1. supervisord -c /etc/supervisor/supervisord.conf

报错

如果遇到如下错误

  1. Error: Another program is already listening on a port that one of our
  2. HTTP servers is configured to use. Shut this program down first before
  3. starting supervisord.For help, use /usr/bin/supervisord -h

这种情况下可以执行:

  1. unlink /var/run/supervisor.sock
  2. unlink /tmp/supervisor.sock

这个错误的原因就是supervisor.sock 这个文件会被系统自动删除或者其它原因不存在了,删除软连接就可以了。 supervisor.sock 生成的位置可以去 supervisor 的配置文件中找到。

其他常用命令

成功之后,就可以使用如下命令管理supervisor服务了

  1. # 停止
  2. systemctl stop supervisor
  3. # 启动
  4. systemctl start supervisor
  5. # 状态
  6. systemctl status supervisor
  7. # 重载
  8. systemctl reload supervisor
  9. # 重启
  10. systemctl restart supervisor
这里⇓感觉得写点什么,要不显得有点空,但还没想好写什么... 返回顶部
About 京ICP备13038605号 © 代码片段 2025