博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将本地django项目部署到服务器上
阅读量:2054 次
发布时间:2019-04-28

本文共 3803 字,大约阅读时间需要 12 分钟。

将本地django项目部署到服务器上

一.将本地项目上传至服务器或者发布到Github

二.登录服务器

1.先升级一下库的版本

sudo apt-get updatesudo apt-get upgrade

2.安装virtualenv

pip3 install virtualenv

3.进入到部署项目文件夹,从 GitHub 中拉取项目代码

git clone https://github.com/shibangCLL/my_blog.git

4.在服务器生成虚拟环境

virtualenv --python=python3.7 env

5.进入虚拟环境

source env/bin/activate

6.安装项目依赖

进入requirements.txt 目录

pip3 install -r requirements.txt

这里报错

Using cached mysqlclient-2.0.1.tar.gz (87 kB)    ERROR: Command errored out with exit status 1:     command: /home/site/like2learn.online/env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-k1ul2tp7         cwd: /tmp/pip-install-ui4j2m4z/mysqlclient/    Complete output (12 lines):    /bin/sh: 1: mysql_config: not found    /bin/sh: 1: mariadb_config: not found    /bin/sh: 1: mysql_config: not found    Traceback (most recent call last):      File "
", line 1, in
File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py", line 15, in
metadata, options = get_config() File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup_posix.py", line 65, in get_config libs = mysql_config("libs") File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup_posix.py", line 31, in mysql_config raise OSError("{} not found".format(_mysql_config_path)) OSError: mysql_config not found ----------------------------------------ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

执行这个代码

sudo apt-get install python3.7-dev libmysqlclient-dev

7. 收集静态文件

python3 manage.py collectstatic

8.生成数据库

python3 manage.py makemigrationspython3 manage.py migrate

三.配置nginx

1.启动nginx

sudo service nginx start

2.重新写 Nginx 的配置文件

cd /etc/nginx/sites-availabletouch like2learn.online

编写 like2learn.online

server {
charset utf-8; listen 80; server_name like2learn.online; # 改成你的 IP location /static {
alias /home/site/like2learn.online/my_blog/collected_static; } location /media {
alias /home/site/like2learn.online/my_blog/media; } location / {
include proxy_params; proxy_pass http://unix://home/site/like2learn.online/my_blog/like2learn.online.sock; }}

这个配置文件链接到在用配置上去

sudo ln -s /etc/nginx/sites-available/like2learn.online /etc/nginx/sites-enabled

四.Gunicorn及测试

1.安装gunicorn

pip3 install gunicorn

2.重启nginx

sudo service nginx reload

3.启动Gunicorn

gunicorn --bind unix:/tmp/like2learn.online.socket blog.wsgi:application

还可以这样

gunicorn blog.wsgi:application -w 4 -b 0.0.0.0:8001

五.进程托管

1.systemd

进入文件夹新建文件

cd /etc/systemd/systemtouch like2learn.online.service

编辑like2learn.online.service

[Unit]Description=like2learn.online serviceAfter=network.target[Service]User=rootGroup=rootWorkingDirectory=/home/site/like2learn.online/my_blogExecStart=/home/site/like2learn.online/env/bin/gunicorn --access-logfile - --workers 2 --bind unix:/home/site/like2learn.online/my_blog/like2learn.online.sock blog.wsgi:application[Install]WantedBy=multi-user.target

2.执行

systemctl enable like2learn.online
$ systemctl status like2learn.online    # 查看进程状态$ systemctl stop like2learn.online    # 终止my_blog进程$ systemctl start like2learn.online    # 启动my_blog进程$ systemctl restart like2learn.online    # 重新启动my_blog进程

六.后期维护

之后的项目维护中,如果更改了 gunicorn 的配置文件,那么需要依次执行下面两条语句去重启服务,如果只是修改了 Django 项目的内容,只需要单独执行第二条重启命令即可:

~$ sudo systemctl daemon-reload~$ sudo systemctl restart like2learn.online

如果修改了 Nginx 的配置文件,那么需要依次执行下面两条语句去重启服务:

~$ sudo nginx -t~$ sudo systemctl restart nginx

参考链接

转载地址:http://rgdlf.baihongyu.com/

你可能感兴趣的文章
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>