vue 以及core 在centos8上面部署的过程及产生的问题

本文详细介绍了如何在CentOS8系统中配置Nginx、MySQL以及部署ASP.NETCORE应用。包括XFtp和Xshell的使用,防火墙与SELinux的管理,Nginx的源更换与安装,MySQL的安装与权限配置,以及ASP.NETCORE的发布和开机自启设置。同时提到了Vue项目的Nginx部署和Linux环境的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常用指令

可以下载XFtp 和 Xshell 7 将自己的Windows和centos8 进行链接。XFtp 可以直接传问件,Xshell
可以在Windows上面进行终端操作,可以减少因为在虚拟机上面运行造成的卡顿

ifconfig 查看虚拟机CentOS本地IP

service firewalld status 可以查看相应防火墙的状态
firewall-cmd --zone=public --add-port=5000/tcp --permanent 开通相应防火墙的端口
firewall-cmd --reload 重启防火墙,才能执行上面的更改
systemctl stop firewalld 关闭防火墙

cd 绝对路径 进入到相应文件夹
cd … 返回上一个
vim 编辑相应文件

临时禁用SELinux,以root用户执行下面的命令:
echo 0 > /selinux/enforce
或者
setenforce 0

要永久禁用SELinux,请使用您最喜欢的文本编辑器打开/etc/sysconfig/selinux文件
vi /etc/sysconfig/selinux
然后将配置SELinux=enforcing改为SELinux=disabled
然后使用sestatus命令检查SELinux的状态

vim 可以编辑 ****.conf 。输入i 之后可以进行insert 想要保存退出可以用ESC+ :wq!进行退出保存

systemctl enable mysqld.service MySQL开机启动
nginx -t 查看Nginx的状态

systemctl enable nginx Nginx开机启动

systemctl restart nginx Nginx重启

Nginx的安装 及注意的地方
Nginx默认安装的是epel源是默认下载就是Fedora操作系统的。按照如此下载的话,Nginx是无法实现反向代理,后续的ASP.NET CORE 以及数据库均载问题都会收到影响。
所以如果安装好了Nginx的话,首先要看一下,在/etc/nginx/conf.d 中究竟有没有default.conf 如果没有证明这个Nginx的安装存在问题,需要进行当下Nginx的卸载,之后再按照相应的步骤进行安装

yum remove nginx 卸载Nginx

sudo yum install yum-utils 重新安装

sudo vim /etc/yum.repos.d/nginx.repo 创建新的nginx.repo文件

添加

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

调用稳定的Nginx的包
sudo yum-config-manager --enable nginx-mainline

开始安装Nginx
sudo yum install nginx

二、MySql 的安装过程

https://blog.csdn.net/qq_43762191/article/details/108896515

新建mysql 在home/user 之下

https://dev.mysql.com/downloads/mysql/ 在这个网址中下载MySql 安装红帽企业版

将离线的MySQL包,放在这个文件之下 注意后面是 .gz

tar -xzvf mysql.tar.gz

rpm -ivh mysql-community-common-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el8.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.26-1.el8.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.26-1.el8.x86_64.rpm --nodeps --force
rpm -qa | grep mysql 命令查看 mysql 的安装包

通过以下命令,完成对 mysql 数据库的初始化和相关配置

mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

cat /var/log/mysqld.log | grep password 查看数据库密码

mysql -uroot -p 敲回车键进入数据库登陆界面

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你数据库的密码’;

退出之后再用你自己的新的密码登录这个数据库

GRANT ALL ON . TO ‘root’@’%’;
或者
update user set host=’%’ where user =‘root’; 更新一下数据库的访问权限,设置远程访问

flush privileges; 让更改成功执行

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
或者
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’; 再次更新root权限的登录密码

三、ASP.NET CORE 在Linux中发布的过程

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm 在/home/user 的文件夹中执行,先注册Microsoft密钥和源,在终端里面执行下面的命令:

sudo yum update 更新可供安装的产品:

sudo yum install aspnetcore-runtime-3.1 安装ASP.NET Core 运行时

sudo mkdir /NetCoreDemo 在相应的问件夹下面新建一个问件

部署的时候可以用1、使用Kestrel启动 然后2、使用Nginx作为反向代理(不用反向代理的话是无法做数据库集群和负载均衡的)

首先,将发布好的后端文件夹上传到centos中,然后进入到相应的文件夹中 执行
dotnet VOL.WebApi.dll --urls http://*:5000 这里默认是5000是端口。可以根据需要进行更改(注意一定要关闭防火墙或者开通准入相应的端口),如果设置开机自启,那么就不要调用这个指令,这个指令可以在测试的时候使用

也可以新建一个Nginx的问件夹,在这个文件夹中执行rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx 执行安装

systemctl start nginx启动Nginx

Nginx默认开启80端口,我们要把80端口添加到防火墙中,添加完以后重启防火墙:

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

cd /etc/nginx
vim nginx.conf 可以更改里面的配置更改的方式
这里用到的是反向代理。主要利用的是在 /etc/nginx/conf.d/default.conf 中。注意一般Nginx安装之后可能没有default.conf 因为他默认的系统不是centos,可以通过我上面的配置安装Nginx,正确安装 80是端口,可以设置成8081 等都可以,自己预留出合适的端口。
Proxy_pass http://localhost:5000 这里是后端的运行IP路径。如此,配置好后

systemctl enable nginx Nginx开机启动

systemctl restart nginx Nginx重启
就可以正常使用,直接在可以ping通的电脑上(无论系统)运行,Nginx所在的主机IP都能打开相应的网址。

Nginx的安装和使用 详细请见

https://www.cnblogs.com/wlphp/p/9027610.html

四、使用Nginx发布vue 的过程

执行 npm run build 产生 dist 文件夹
之后通过xftp 上传到centos 然后进入到 /home/user/dist 中

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 执行命令安装环境

新建一个node 文件夹 wget https://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x86.tar.xz 执行改命令将node软件包下载在这个文件中

xz -d node-v8.11.1-linux-x86.tar.xz 进行解压

tar node-v8.11.1-linux-x86.tar 进行再解压

创建软连接
#ln -s /node/node-v8.11.1-linux-x86/bin/node /usr/local/bin/node 前面的路径是你下载然后解压后的文件路径
#ln -s /node/node-v8.11.1-linux-x86/bin/npm /usr/local/bin/npm

查看版本

node -v
npm -v

随后安装 cnpm,并创建软链接
npm install cnpm -g --registry=https://registry.npm.taobao.org
ln -s /opt/node-v12.18.1-linux-x64/bin/cnpm /usr/local/bin/cnpm
查看是否安装正确
cnpm -v
详情可见:https://www.cnblogs.com/_error/p/13201812.html

vim /etc/nginx/nginx.conf 修改Nginx的配置

  server {
        listen       8081;
       # listen       [::]:80 default_server;
        server_name  192.168.1.150;
        root         /home/sa/dist;
        index        index.html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        root  /home/sa/dist;
        index index.html;
        }

        location /api
        {
        # rewrite  ^/api/(.*)$ /$1 break;
         proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
         proxy_set_header REMOTE-HOST  $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_pass  http://192.168.1.150:5000;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

直接执行192.168.1.150:8081即可访问vue 切记,防火墙和Linux安全系统问题;端口无法访问等原因大多是因为这两个东西没有配置好。

因为Linux中默认没有图片组件 ,要获得验证编码的时候 需要安装 libgdiplus

sudo yum install https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/libgdiplus-6.0.4-3.el8.x86_64.rpm
凡是出现y/s 则是选择y

dnf install libgdiplus 然后可以直接运行dotnet VOL.WebApi.dll --urls http://*:5000
详情可见:

https://blog.csdn.net/u011511086/article/details/114824740

五、未来可能出现Linux 断电等情况,在Linux上面设置开机自启

自启(这就意味着 asp.net core 不再以dotnet VOL.WebApi.dll --urls http://*:5000 的方式启动 )

首先在这个文件中创建一个kestrel-hellomvc.service的服务
sudo vim /etc/systemd/system/kestrel-hellomvc.service

把下面的内容按照自己的情况进行更改

[Unit]
  
Description=Example .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/home/sa/iisShow                                          //你的后端工作地址(文件夹)
ExecStart=/usr/bin/dotnet /home/sa/iisShow/VOL.WebApi.dll      //你的dotnet的位置+一个空格+你的后端webapi的位置
Restart=always
Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10  
SyslogIdentifier=dotnet-example
User=sa                                                                       、//本机用户名
Environment=ASPNETCORE_ENVIRONMENT=Development

[Install]
WantedBy=multi-user.target

设置成为开机自启

systemctl enable kestrel-hellomvc.service

更新加载服务的配置文件

systemctl daemon-reload

开始启动自己新建的服务项目

systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service

重新启动该服务

systemctl restart kestrel-hellomvc.service

停止该服务

systemctl stop kestrel-hellomvc.service

查看当前正在运行的服务

systemctl list-units --type=service

但是,开机自启的最大问题在于无法可以自定义端口dotnet --urls 的方式被抛弃,我们可以利用UseUrls的方式进行端口定义。所幸的是vol中的program.cs 支持useurls 可以通过直接配置,来实现端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值