ubuntu 常用部署流程


上传写入权限

bash
sudo chown -R ubuntu:ubuntu /home/ubuntu/目录名 # 将 blog 目录及内部文件所属用户改为 ubuntu
sudo chmod -R u+rwX /home/ubuntu/目录名         # 给 ubuntu 用户添加读写权限,目录添加进入权限

或者先上传到有访问呢权限目录的地方,再命令复制

bash
sudo cp /home/ubuntu/Caddyfile /etc/caddy/Caddyfile

加入系统服务实现自启动

路径:/etc/systemd/system/
创建文件:*.service

如果不知道服务名称可查看当前运行列表
systemctl list-units --type=service

示列:

ini
[Unit]
Description=Huey  #程序名称
After=network.target gunicorn.service  #等待网路和gunicorn启动后运行

[Service]
User=root #用户
Group=root 组
WorkingDirectory=/home/mysite  #应用程序所在目录

# 检测reids 远程服务端口是否可访问,再启动
ExecStartPre=/bin/bash -c 'for i in {1..30}; do nc -z 192.168.1.11 6379 && break || sleep 5; done'

#应用程序自身路径
ExecStart=/usr/bin/python3 /home/mysite/manage.py run_huey -w 40 -k greenlet
Restart=always
ExecStartPre=/bin/sleep 20  #延迟20秒运行

[Install]
WantedBy=multi-user.target

从虚拟python环境运行

ini
[Unit]
Description=flask
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/home/flask
Environment="PATH=/home/flask/venv/bin"
ExecStart=/home/flask/venv/bin/python /home/flask/ask.py

[Install]
WantedBy=multi-user.target

#添加文件后重新加载systemd配置
sudo systemctl daemon-reload

#启动
sudo systemctl start myapp

#查看运行
sudo systemctl status myapp

#停止
sudo systemctl stop myapp

#重启
sudo systemctl restart myapp

#重载
sudo systemctl reload myapp

#开机启动
sudo systemctl enable redis-server

#禁止开机启动
sudo systemctl disable myapp

#查看错误
sudo journalctl -u blog.service -r

时区问题

timedatectl list-timezones //查看时区
sudo timedatectl set-timezone Asia/Shanghai //设置系统时区
sudo apt install --reinstall tzdata //安装时区

静态目录

加入程序目录为/home/www
把static目录放置在jingtai/static目录
然后定位到www目录下,执行sudo ln -s /home/www/jingtai/static static
这样程序在开发的时候指定static目录就会上传到/jingtai/static,
而反向代理的根目录就是root * /home/www/jingtai/

所以浏览器访问 /static目录也刚刚好被反向代理定位到/jingtai/static