Linux安装部署手册

一、安装.NET Core SDK

centos 7 系统命令为:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

sudo yum install dotnet-sdk-3.1

CentOS 8 系统命令为:

sudo dnf install dotnet-sdk-3.1

二、安装GDIP

装GDIP命令如下:

yum install libgdiplus-devel

三、安装MySQL

1.看linux操作系统版本和系统内核版本

cat /etc/redhat-release

uname -r

 

2.选择对应版本下载rpm包

官网下载地址:MySQL5.7下载地址

(我已经打包了,也可以自行下载,MySQL最低版本5.7)

3.解压rpm包并安装

解压rpm包并查看

#选择官网下的 tar上传 至服务器

#进入上传目录,进行解压(该命令与你下载的文件名称有关,请注意)

tar xf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar

安装所需要组件

注意:安装过程中会发现报错,因为centos系统自带mariadb,因此要卸载自带的 mariadb才能够成功安装

卸载mariadb

#查看系统的 mariadb

rpm -qa|grep mariadb

# 清除原有系统的  mariadb

# 【mariadb-libs-5.5.68-1.el7.x86_64】每一个系统都不一样

# --nodeps 结尾必须

rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

安装组件

#只需要安装部分组件 (需要安装)(该命令与你压缩包解压出来的文件名称需要一致,如果你用的是我打包的Mysql文件按照这些运行即可,否则需要更改一下名称)

rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.17-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm

#组件暂留

mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm

mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm

mysql-community-server-minimal-5.7.17-1.el7.x86_64.rpm

mysql-community-test-5.7.17-1.el7.x86_64.rpm

mysql-community-devel-5.7.17-1.el7.x86_64.rpm

mysql-community-embedded-5.7.17-1.el7.x86_64.rpm

mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm

安装组件异常图解:

问题1:

#补齐libaio环境

yum install libaio

问题2:

#补齐perl环境

yum install perl

问题3:

#补齐net-tools环境

yum install net-tools

安装成功示例图

安装之后的目录

/var/lib/mysql

配置文件

/etc/my.cnf

 

4. 当组件安装完成,需要进行 初始化mysql

mysqld --initialize --user=mysql

5.启动mysql服务并查看状态

#进行启动

systemctl start mysqld.service

#查看mysql 状态

systemctl status mysqld.service

 

5. 查看初始密码

grep "password" /var/log/mysqld.log

 

6.根据初始密码启动mysql并重置密码

启动mysql

#登录

mysql -u root -p

#输入密码

重置密码ROOT为用户名 123456 这一块是密码  

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

 

7.设置远程登录无需求可不设置

## 设置外网可访问的 root账号

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123123' WITH GRANT OPTION;

## 刷新

FLUSH PRIVILEGES;

 

8.修改mysql语言(lower_case_table_names=1  这条配置一定要加的

注意:设置好远程登录后MySQL基本已安装完成,但在使用数据库创表添加数据时却会发现,当添加的数据是字符时,此时就会因为编码错误导致添加失败,所以我们就要修改mysql的默认语言,将它们设置成utf-8的编码格式。(如果无需修改编码格式可不用配置,)

进入my.cnf文件

#打开配置文件

vim /etc/my.cnf

#添加以下语句,并保存(这些是设置编码,无需编码可以不需要)

[client]

default-character-set=utf8

[mysqld]

character-ser-server=utf8

collation-server=utf8_general_ci

#在[mysqld]节点下,加入该设置(无视大小写,必须加):

lower_case_table_names=1

保存后重启服务并进入mysql

service mysqld restart

9. 设置新用户以及权限

登录数据库

mysql -u root -p

SET GLOBAL log_bin_trust_function_creators = 1;

创建新用户

CREATE USER '用户名'@'允许的主机' IDENTIFIED BY '密码';

CREATE USER 'db_yuemintou'@'%' IDENTIFIED BY 'db_yuemintou123!@#';

授权

GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'允许的主机'

GRANT ALL ON *.* TO 'db_yuemintou'@'%';

刷新权限

flush privileges;

退出mysql

exit

10. 还原数据库

#切换到mysql数据备份还原路径  /usr/share/mysql

#切换CD之后需要把mysql脚本上传到该目录

cd /usr/share/mysql

#还原数据库操作

登录Mysql

mysql -u root -p

show databases;

#你要还原什么数据库就建立什么数据库名

create database db_yuemintou;

#切换到你刚才新建的数据库

use db_yuemintou;

#导入数据(该名称与你上传的Mysql脚本名称需要一致)

source db_yuemintou.sql;

#再次出现“mysql>”就说明成功了

四、安装NGINX代理服务器

#切换到home文件夹

cd /home

#下载资源文件

wget http://nginx.org/download/nginx-1.16.1.tar.gz

#解压

tar -zxvf nginx-1.16.1.tar.gz

#进入目录

cd nginx-1.16.1

#添加模块

./configure --with-http_stub_status_module --with-http_ssl_module

#编译

make

#安装

make install

#进入目录

cd /usr/local/nginx/sbin

#启动NGINX

./nginx

#重启命令

./nginx -s reload

#将  nginx.service  放置   cd /etc/systemd/system (我会一起打包,该服务是让nginx随着系统一起启动)

#设置nginx 自启动

/usr/local/nginx/sbin/nginx -s quit

systemctl enable nginx

systemctl start nginx.service

#注意:每次修改配置后需要重载一下配置

#nginx代理配置路径 /usr/local/nginx/conf

#注: 日志路径必须存在 如不存在则 需要运行不起来

server

{

listen 80;

server_name localhost;

location / {

proxy_pass http://localhost:3000;

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;

}

location /upload {

root  /www/wwwroot/fontEnd/;

}

access_log  /www/wwwlogs/access.log;

}

server

{

listen 8003;

server_name localhost;

location / {

proxy_pass http://localhost:8080;

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;

}

access_log  /www/wwwlogs/access.log;

}

#重启nginx

service nginx restart

五、安装Supervisor守护进程

#执行epel-release

sudo yum -y install epel-release

#安装Supervisor

sudo yum -y install supervisor

#通过配置文件来启动supervisor

sudo supervisord -c /etc/supervisord.conf

#启动supervisorctl

sudo supervisorctl -c /etc/supervisord.conf

#查看supervisor 版本

version

#将配置文件(我会一起打包,配置文件内的日志路径必须存在否则运行不起来)放置目录

cd /etc/supervisord.d

#启动supervisor

#启动方式1:通过supervisor服务端使用配置文件启动

sudo supervisord -c /etc/supervisord.conf

#启动方式2:通过客户端命令行启动

#先启动supervisorctl

sudo supervisorctl -c /etc/supervisord.conf

#重新加载配置文件

reload

#查看运行的状态

status

#错误一:

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.

#解决方法:

ps aux | grep supervisord

kill - 9  进程ID

#错误二:

Unlinking stale socket /var/run/supervisor/supervisor.sock

#解决方法:

unlink /var/run/supervisor/supervisor.sock

#Supervisor开机自启动(配置会一起打包)

#进入system目录 将 supervisor.service文件 放置这个目录

cd /usr/lib/systemd/system

#启动服务  注:启动服务之前要先关闭

supervisorctl stop all

systemctl enable supervisord

#验证一下是否为开机启动

systemctl is-enabled supervisord

#关于一些supervisorctrl操作

1、更新新的配置到supervisord

supervisorctl update

2、重新启动配置中的所有程序

supervisorctl reload

3、启动某个进程(program_name=你配置中写的程序名称)

supervisorctl start program_name

4、查看正在守候的进程

supervisorctl

5、停止某一进程 (program_name=你配置中写的程序名称)

pervisorctl stop program_name

6、重启某一进程 (program_name=你配置中写的程序名称)

supervisorctl restart program_name

7、停止全部进程

supervisorctl stop all

8、重载全部进程

supervisorctl restart all

六、安装nodejs 环境

#进入home目录

cd /home

创建node文件夹

mkdir node

#进入node文件夹

cd node

#下载资源文件

wget -c https://npm.taobao.org/mirrors/node/v14.18.1/node-v14.18.1-linux-x64.tar.xz

#解压文件

tar -xvf node-v14.18.1-linux-x64.tar.xz

#改名

mv node-v14.18.1-linux-x64 nodejs

#建立软连接 (注:目录路径需要一致 否则失败)

ln -fs /home/node/nodejs/bin/node /usr/local/bin/

ln -fs /home/node/nodejs/bin/npm /usr/local/bin/

#查看node和 npm版本号

node -v

npm -v

#安装pm2

npm install pm2 -g

#配置全局映射(注:目录路径需要一致 否则失败)

ln -fs /home/node/nodejs/bin/pm2  /usr/local/bin/pm2

#进入前端项目的根路径(注:我放置的是/www/wwwroot/fontEnd  你也可以自行放置,不过命令路径需要修改)

cd /www/wwwroot/fontEnd

npm i

#启动项目

pm2 start

#保存当前项目列表

pm2 save

#设置为开机启动

pm2 startup

七、防火墙相关命令

#开启防火墙命令

systemctl start firewalld.service

#重启防火墙命令

firewall-cmd --reload 或者 service firewalld restart

#禁用防火墙命令

systemctl stop firewalld

#防火墙永久开启端口命令

#例如我开启8002端口

firewall-cmd --zone=public --add-port=8002/tcp --permanent

#重载防火墙

firewall-cmd --reload

八、关于配置的下载

这是上文中需要的一些配置 mysql安装命令需要严格按照mysql的名字来

百度网盘链接: https://pan.baidu.com/s/1FQsggqiy0y0DqvS7b_o_Ew 提取码: aawt 复制这段内容后打开百度网盘手机App,操作更方便哦

在Linux上部署.net Core 步骤以及遇到的一些问题的更多相关文章

  1. 第二章 在Linux上部署.net core

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  2. 在Linux上部署DotNet Core项目的时候发现Apache无法转发Kestrel的5000端口的问题

    CentOS服务器上使用Apache托管Dotnet Core2,服务启动了,端口也打开了.在本地使用curl命令可以访问5000端口的网页内容,但是访问Apache的端口却无法获取到网页的内容.想起 ...

  3. So Easy - 在Linux服务器上部署 .NET Core App

    .NET Core 是微软提供的免费.跨平台和开源的开发框架,可以构建桌面应用程序.移动端应用程序.网络应用程序.物联网应用程序和游戏应用程序等.如果你是 Windows 平台下的 dotnet 开发 ...

  4. Linux上部署SVN

    Linux上部署SVN author:headsen chen  2017-10-16  16:45:04 前提:通过yum来安装,必须是centos6.5的桌面版的.否则会出现某些的安装包不全而导致 ...

  5. 在Linux上部署Web项目

    You believe it or not there is a feeling, lifetime all not lost to time. 在Linux上部署Web项目 这个是普通的web项目, ...

  6. 在linux上部署tomcat服务

    在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...

  7. 一、netcore跨平台之 Linux上部署netcore和webapi

    这几天闲着的时候在linux上部署了一下netcore webapi,下面就纪要一下这个过程. 中间遇到不少的坑,心里都是泪啊. 话不多说,开始干活. ------------------------ ...

  8. Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务

    文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...

  9. Linux上部署web服务器并发布web项目-转

    Linux上部署web服务器并发布web项目   近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...

  10. 在linux上部署自己开发的web项目

    在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...

随机推荐

  1. 【matplotlib 实战】--平行坐标系

    平行坐标系是一种统计图表,它包含多个垂直平行的坐标轴,每个轴表示一个字段,并用刻度标明范围.通过在每个轴上找到数据点的落点,并将它们连接起来形成折线,可以很容易地展示多维数据.随着数据增多,折线会堆叠 ...

  2. umich cv-2-2

    UMICH CV Linear Classifiers 在上一篇博文中,我们讨论了利用损失函数来判断一个权重矩阵的好坏,在这节中我们将讨论如何去找到最优的权重矩阵 想象我们要下到一个峡谷的底部,我们自 ...

  3. 使用ClosedXml查询Excel文件数据,匹配时间并显示

    使用Nuget包管理器安装ClosedXml包,VS没网在https://www.nuget.org/ 下载后,包源本地安装至项目 函数: private void SelectGrab(Cancel ...

  4. 实战|如何低成本训练一个可以超越 70B Llama2 的模型 Zephyr-7B

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  5. PTA乙级1099

    #include"bits/stdc++.h" using namespace std; int prime(int x) { if(x<2) return 0; for(i ...

  6. cdq分治/整体二分

    cdq分治: 使用场景: 三维偏序问题 优化dp 将动态问题转静态问题 99%题目能离线的情况下cdq可以替代树套树,时空都更优秀 整体二分: 起初用来解决动态区间第K min/max,在最基础的二分 ...

  7. Git文件权限与filemode配置方法

    一.问题 Clion是一个跨平台的IDE,今天将工程运行在Ubuntu下,在Git提交时发现有很多文件显示被更改,但是文件内容却是相同的. 二.Git 规则 Git对文件访问权限的管理与配置选项cor ...

  8. DiscuzQ官方最新v3.0.220211源码编译搭建教程和官方部署教程,适合二开(已本地编译通过,无任何错误)

    经过长达半个月的研究! 完成这篇DiscuzQ官方最新版本v3.0.220211的源码编译和官方部署教程.适合喜欢二次开发的小伙伴们,已经通过本地编译测试,保证没有任何错误. 具体教程在我搭建的dzq ...

  9. iOS内存管理机制

    这世上,没有谁活得比谁容易,只是有人在呼天抢地,有人在默默努力.   随着科技的发展,移动设备的内存越来越大,设备的运行速度也越来越快,但是相对于整个应用市场上成千上万的应用容量来说,还是及其有限的. ...

  10. Python有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

    n = 0 for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if(i != k) and (i != j) and ...