web与webapi服务部署
- 1. web服务部署
- 2. webapi服务部署
- 2.1 安装dotnet
- 2.2 安装mysql
- 第一步 :更新软件包
- 第二步 :直接安装最新mysql
- 第三步:全部安装完成,查看mysql版本,本项目安装的是mysql Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
- 第四步 :启动服务
- 第五步 :依次输入命令,最后一次命令的&不要漏掉了
- 第六步 :进入mysql
- 第七步:输入mysql命令,执行完成以后刷新一下
- 第八步 :修改mysql密码并刷新
- 第九步 :输入exit 回车退出mysql,或者Ctrl+z
- 最后一步 :停止mysql,重新启动,进入mysql
- 进入mysql :sudo mysql -p -u root 输入密码即可
- 设置mysql开机自启动:
- 取消mysql开机自启动:
- 重点:修改mysql登录密码,直接通过 mysql -uroot -p 进入到mysql,是不需要密码的。
- 2.3 数据库初始化
- 3. 项目启动
- 4. 项目启动脚本(agvWeb同级目录下运行该脚本)
- 5. 项目编译
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.html
js/