web与webapi服务部署,ubuntu环境下nvm、nodejs、dotnet、mysql安装与项目运行

web与webapi服务部署

1. web服务部署

1.1 安装nvm(Ubuntu下nvm的安装使用)

nvm是一个node版本管理器,类似与Python中的 Anaconda 、virtural-env。

nvm的github仓库地址为 https://github.com/creationix/nvm

在终端执行以下命令,将自动进行nvm的安装:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

​ nvm将被安装到 $HOME/.nvm 目录中。

安装完成后,执行以下命令查看是否安装完成:

nvm --version

出现 Command ‘nvm’ not found 的解决办法:
关掉当前终端并重新打开一个新的窗口,问题解决。

1.2 使用
第一步:安装node

查看所有可供安装的node版本:

nvm ls-remote

选择自己想要的版本进行安装,本项目选用 v18.12.1 安装,

nvm install v18.12.1

​输入以上命令后,自动进行node下载和安装。

查看本地已安装的node:

nvm ls

其他nvm的相关指令,参见 nvm --help

第二步:npm的更新

安装完node后,默认会安装 npm,但不是最新版本,需要手动更新。

第三步:查看版本
npm -v
第四步:更新到最新版本
npm install -g npm
第五步:更新到指定版本,@版本号
npm -g install npm@8.19.2
第六步:修改npm包的全局安装位置

查看 npm 的配置

npm config ls

prefix 为当前包的全局安装位置,为了方便管理,设置为自己的路径

npm config set prefix "new_path"
第七步:修改npm为国内镜像
npm config set registry "http://registry.npm.taobao.org/"

2. webapi服务部署

2.1 安装dotnet

.NET SDK 是一组库和工具,开发人员可使用它创建.NET 应用程序和库。

下载SDK:点击下载
安装 SDK:

下载完成后,打开终端并运行以下命令以提取 SDK 并使这些命令在终端上可用。

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.201-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
2.2 安装mysql
第一步 :更新软件包
sudo apt update 
第二步 :直接安装最新mysql
sudo apt install mysql-server -y
第三步:全部安装完成,查看mysql版本,本项目安装的是mysql Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
mysql --version
第四步 :启动服务
sudo /etc/init.d/mysql stop
第五步 :依次输入命令,最后一次命令的&不要漏掉了
sudo mkdir /var/run/mysqld

sudo chown mysql /var/run/mysqld

sudo mysqld_safe --skip-grant-tables&
第六步 :进入mysql
sudo mysql --user=root mysql
第七步:输入mysql命令,执行完成以后刷新一下
UPDATE mysql.user SET authentication_string=null WHERE User='root';

flush privileges;
第八步 :修改mysql密码并刷新
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

flush privileges;
第九步 :输入exit 回车退出mysql,或者Ctrl+z
最后一步 :停止mysql,重新启动,进入mysql
进入mysql :sudo mysql -p -u root 输入密码即可
设置mysql开机自启动:
sudo update-rc.d -f mysql defaults
取消mysql开机自启动:
sudo update-rc.d -f mysql remove
重点:修改mysql登录密码,直接通过 mysql -uroot -p 进入到mysql,是不需要密码的。
2.3 数据库初始化
第一步:进入mysql
sudo mysql -uroot -p
第二步:创建数据库
CREATE DATABASE IF NOT EXISTS `agvsystem` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
第三步:执行sql文件(文件在项目代码中webapi目录,名为agvsystem.sql)
Source 文件名.sql
第四步:退出mysql
exit

3. 项目启动

第一步:从项目仓库中clone醒目代码
git clone --branch develop http://192.168.1.119:8090/agv/agvweb.git
第二步:进入项目目录
cd agvweb
第三步:安装web依赖
npm install
第四步:启动web项目
npm run start
第五步:启动webapi项目
cd agvAPI
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
dotnet run

4. 项目启动脚本(agvWeb同级目录下运行该脚本)

# !/bash/sh

# 运行WebApi
processNum=`ps -a |grep agvProject| wc -l`
echo $processNum
if [ $processNum -eq 0 ];then
    echo webapisystem is not running
    echo "try to run webapisystem"
    gnome-terminal -- bash -c "cd agvweb/agvAPI;dotnet run;" &
    sleep 3
else
    echo webapisystem is already running.
	read -p "do you want to kill this process?[y/n]" input
	echo $input
	if [ $input = "y" ];then
	    sudo killall -9 dotnet
	    sudo killall -9 agvProject
	    echo kill node
	    echo "try to run webapisystem"
	    gnome-terminal -- bash -c "cd agvweb/agvAPI;dotnet run;" &
            sleep 3
	fi
fi

# 运行web
processNum=`ps -a |grep "node"| wc -l`
echo $processNum
if [ $processNum -eq 0 ];then
    echo websystem is not running
    echo "try to run websystem"
    gnome-terminal -- bash -c "cd agvweb;npm run start;" &
    sleep 3
else
        echo websystem is already running
    	read -p "do you want to kill this process?[y/n]" input
	echo $input
	if [ $input = "y" ];then
	    sudo killall -9 "npm run start"
	    sudo killall -9 "node"
	    echo kill node
	echo "try to run websystem"
	gnome-terminal -- bash -c "cd agvweb;npm run start;" &
        sleep 3
	fi
fi

5. 项目编译

5.1 后端编译

在webapi项目根目录下执行dotnet build命令。
编译完成后编译结果在agvweb\agvAPI\bin\Debug\net8.0目录下。
运行编译结果:在结果目录打开终端执行agvProject命令。

5.2 前端编译

在agvweb项目根目录下执行npm run build命令。
编译完成后编译结果在agvweb\build目录下。
运行编译结果:在build目录中双击index.html文件即可。

5.3 项目更新

前端编译结果build目录中的文件最后将全部放至后端编译结果wwwroot目录下(若无该目录则手动创建一个),更新时直接将该目录内容重置即可。
注:需将build目录下的index.html重命名为home.html(不为原名即可)。
启动后端后前端静态页面访问地址:http://localhost:5050/home.htmljs/

  • 31
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值