服务器部署
腾讯云上部署
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;
...
}