LOADING

加载过慢请开启缓存 浏览器默认开启

前后端部署

服务器部署

腾讯云上部署

jdk下载

先把jdk包下载到/tmp目录下

cd /usr/local/
sudo mkdir java
cd java
sudo cp -R /tmp/openjdk-22.0.2_linux-x64_bin.tar.gz /usr/local/java
sudo tar -xvf openjdk-22.0.2_linux-x64_bin.tar.gz 
sudo mv jdk-22.0.2 jdk22

sudo vim /etc/profile添加:

export JAVA_HOME=/usr/local/java/jdk22
export PATH=$JAVA_HOME/bin:$PATH

esc :wq!

source /etc/profile重新执行profile脚本增加环境变量。

echo $JAVA_HOME查看java环境变量

java --version查看jdk版本

nginx

先增加一些配置文件

sudo apt install g++ 
sudo apt install -y libpcre3 libpcre3-dev
sudo apt install -y zlib1g zlib1g-dev
sudo apt install -y openssl libssl-dev

cd /tmp/使用wget下载nginx

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

/usr/local/中下载

cd /usr/local/
sudo mkdir nginx
sudo cp -R /tmp/nginx-1.24.0.tar.gz /usr/local/nginx
sudo tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0/

编译

sudo ./configure --with-http_stub_status_module --with-http_ssl_module
sudo make && make install

查看目录结构

$ cd /usr/local/nginx/nginx-1.24.0
$ ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
$ cd /usr/local/nginx
$ ls
client_body_temp  html          nginx-1.24.0.tar.gz  scgi_temp
conf              logs          proxy_temp           uwsgi_temp
fastcgi_temp      nginx-1.24.0  sbin

conf(配置)

cd /usr/local/nginx/conf

# 内网ip
ifconfig

# 公网ip
curl ifconfig.me

sudo vim nginx.conf


#服务器
server{
    listen 80;
    server_name 159.75.116.168; #你的服务器ip或域名

    #前端
    location / {
        root /home/vue/dist;
        index index.html index.htm;
        try_files $uri $uri /index.html;
    }
    #后端
    location /api/ {  
        rewrite ^/api/(.*)$ /$1 break;  

        proxy_pass http://159.75.116.168:8080;  
       }

esc :wq!

sudo /usr/local/nginx/sbin/nginx -t检查配置语法有没有出错

修改/home/vue/dist权限

ls -ld /home/vue/dist  # 查看权限
ls -l /home/vue/dist 
sudo chmod -R 755 /home/vue/dist # 所有用户读取
sudo chown -R nobody:nogroup /home/vue/dist

cat nginx.conf查看是否写入。

sbin(启动)

cd /usr/local/nginx/sbin
sudo ./nginx -s stop      # 停止
sudo ./nginx              # 启动
sudo ./nginx -s reload    # 重启
ps aux | grep nginx  # 查看是否运行
ps -ef | grep nginx

// sudo /usr/local/nginx/sbin/nginx

使用 systemctl打开或启用 Nginx 服务器。

由于是源码编译的nginx所以需要做一个配置才能使用 systemctl

sudo vim /etc/systemd/system/nginx.service

[Unit]  
Description=Nginx Web Server  
After=network.target  

[Service]  
ExecStart=/usr/local/nginx/sbin/nginx  
ExecReload=/usr/local/nginx/sbin/nginx -s reload  
ExecStop=/usr/local/nginx/sbin/nginx -s stop  
User=root  
Group=www-data  
Restart=on-failure  

[Install]  
WantedBy=multi-user.target

esc :wq!

sudo systemctl daemon-reload重新加载systemd 配置

sudo systemctl start nginx   # 启动
sudo systemctl enable nginx  # 开机自启动
sudo systemctl status nginx  # 检查状态
sudo systemctl restart nginx #重启

MySQl

下载

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
cd /usr/local/
sudo cp -R /tmp/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz /usr/local
sudo tar -xJvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
sudo rm -r mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
sudo mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql

添加用户组

sudo mkdir /data/mysql
sudo groupadd mysql  
sudo useradd -r -g mysql mysql  
sudo chown -R mysql:mysql /usr/local/mysql  
sudo chown -R mysql:mysql /data/mysql

ls -l /usr/local/mysql Or ll查看文件权限

安装mysql

sudo apt install libaio1sudo apt install libaio1
sudo /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --initialize

密码:/F94(uheF6g?

一些配置

# 连接
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
# 找到相应的文件再链接
find / -name libtinfo.so*
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.4 /usr/lib64/libtinfo.so.5
sudo ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
sudo apt-get update  
sudo apt-get install --reinstall libncurses5
# 验证
ls -l /usr/lib64/libtinfo.so.5

mysql配置文件 my.cnf

vim /etc/my.cnf

[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
# skip-grant-tables
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

启动mysql

# 将 mysql 加到服务中
cp -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo /etc/init.d/mysql start
chkconfig mysql on

进入mysql mysql -u root -p

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
USE mysql;  
UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost';  
FLUSH PRIVILEGES;

远程连接尝试:

打开防火墙

mysql -h 159.75.116.168 -P 3306 -u root -p

redis

下载

cd /tmp
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
cd /usr/local/
sudo cp -R /tmp/redis-5.0.4.tar.gz /usr/local/
sudo tar xzf redis-5.0.4.tar.gz 
sudo rm -r redis-5.0.4.tar.gz 
sudo mv redis-5.0.4 redis
cd redis
sudo make

运行

cd /usr/local/redis/src
./redis-server
./redis-server --daemonize yes  // 后台运行
sudo systemctl status redis
sudo systemctl stop redis

or

sudo apt-get update
sudo apt-get install redis
sudo systemctl start redis

sprintboot项目打包

cd /home/vue

配置:

root@VM-20-3-ubuntu:/home/vue# cat application.yml 
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${ip}:3306/big_event
    username: root
    password: 123456
  data:
    redis:
      host: localhost
      port: 6379
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB

mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名和下划线命名的自动转换
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server:
  port: 8080

file:
  upload-dir: /tmp

python:
  interpreter: /root/miniconda3/envs/paddle_env/bin/python

okhttp:
  connect-timeout: 30
  read-timeout: 30
  write-timeout: 30
  max-idle-connections: 200
  keep-alive-duration: 300

wenxin:
  apiKey: isBtin2KboRoULW3PuzqTo5V
  secretKey: TouZAeES992L5K9x3vvSr2wcQPoPEmg9
  accessTokenUrl: https://aip.baidubce.com/oauth/2.0/token
  ERNIE-Bot4:
    0URL: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-lite-8k

ip: 159.75.116.168

开启脚本start.sh

nohup java -jar big-event-1.0-SNAPSHOT.jar > server.log 2>&1 &

关闭脚本stop.sh

#!/bin/bash  

PORT=8080  
# 使用正确的命令和 awk 表达式来查找 PID  
pid=$(netstat -tnlp | grep ":$PORT" | grep -v grep | awk '{print $7}' | cut -d/ -f1)  

# 检查 pid 是否为空  
if [ -n "$pid" ]; then  
    # 如果 pid 不为空,则杀死进程  
    kill -9 $pid  
    if [ $? -eq 0 ]; then  
        echo "Killed process listening on port $PORT"  
    else  
        echo "Failed to kill process listening on port $PORT"  
    fi  
else  
    # 如果 pid 为空,则不执行任何操作(或可选地输出一条消息)  
    echo "No process found listening on port $PORT"  
fi

加权限chmod +x *

开一下tcp

运行cd /home/vue + ./start.sh

运行后查看

ps -ef | grep java
tail -f server.log

创建python环境

环境准备

cd /usr/local/
sudo mkdir python_env
cd python_env
sudo apt install python
sudo apt install python3-venv 
// sudo apt install python3-pip

搭建python环境

sudo python3 -m venv seg_env
source /usr/local/python_env/seg_env/bin/activate  
deactivate // 退出
Or
conda create —name [env-name] python=3.9  // conda create -n miccai_env python=3.9
conda activate [env-name]                 // conda activate miccai_env

删除环境

deactivate 
sudo rm -rf seg_env

安装包

(seg_env) $ which pip
>>> /usr/local/python_env/seg_env/bin/pip

pip install nibabel --break-system-packages # 强制安装

pip list     // 查看已经安装的包
pip freeze   // 输出requirementstxt 
pip show numpy

$ which python
/usr/bin/python

修改application.yml配置

python:
  interpreter: /usr/bin/python

报错解决

遇到 “413 Request Entity Too Large” 错误通常意味着你尝试上传的文件大小超过了服务器(在这个案例中是 Nginx)配置的最大允许请求体大小。这个限制是为了防止服务器因为处理过大的请求而耗尽资源。

需要修改 Nginx 的配置文件(通常是 nginx.conf 或者在 sites-available/ 目录下的某个文件),增加或修改 client_max_body_size 指令的值。这个指令用于设置允许客户端请求的最大单文件字节数。

例如,可以将 client_max_body_size 设置为 20M(20兆字节)或更高,具体取决于你的需求:

http {  
    ...  
    client_max_body_size 20M;  
    ...  
}