Django项目部署到服务器

安装

  1. sudo apt install python3-pip

  2. sudo pip3 install virtualenv

  3. sudo apt install nginx

  4. sudo apt install mysql-server

  5. 创建虚拟环境
    在项目目录下执行 /home/file/
    virtualenv venv

  6. 启动虚拟环境
    source venv/bin/activate

  7. 安装django
    pip install django==1.11.4

  8. 安装uwsgi
    pip install uwsgi

  9. 上传项目

  10. 在项目中创建uconfig.ini的文件 代码在下方

  11. 更改setting.py文件中的 STATIC_ROOT

    STATIC_ROOT = os.path.join(BASE_DIR, ‘collectstatic’)

  12. 执行命令
    python manage.py collectstatic

  13. 更改nginx的default文件代码在下方

  14. 更改nginx的nginx.conf文件(403没权限)

  15. 重启nginx
    16 .回到虚拟环境目录启动 uwsgi
    uwsgi uconfig.ini

  16. 关闭uwsgi
    uwsgi —stop uconfig.ini

  17. 如果关闭不掉杀死进程
    ps -ef | grep uwsgi
    Sudo kill 进程号

[uwsgi]

# 外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket  #
socket = 0.0.0.0:8000 # uwsgi的监听端口

# 指向项目目录
chdir =  /home/file/

# flask启动程序文件
wsgi-file = file/wsgi.py

plugins = python

# 处理器数
processes = 1

# 线程数
threads = 2

问题描述:

django admin没有样式

admin管理页面找不到base.css,dashboard.css文件

解决办法:

方法一

在settings文件中设置STATIC_ROOT目录,该目录不能在STATICFILES_DIRS中.

然后,执行命令

python manage.py collectstatic

执行后,django会将STATICFILES_DIRS下的所有文件以及admin所需要用到的js,css,image文件全都放到STATIC_ROOT目录下.

例如, 像下面这样写:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collectstatic')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]

简单描述一下这几个变量的意思

STATIC_URL: 当访问什么样的网址时, 按照访问静态文件的方式去查找文件.

STATICFILES_DIRS: 当访问静态文件是, 会在每个app中的static目录中查找, 然后再从STATICFILES_DIRS设置的路径列表中逐一查找.

STATIC_ROOT: 当执行python manage.py collectstatic时, 收集的静态文件放在该目录下.

更多可参考: http://python.usyiyi.cn/translate/django_182/ref/settings.html

此刻file下就会多出一个collectstatic的静态资源文件目录

default代码更改为

server{
listen  80; # 服务器监听端口
        server_name xxx.xxx.xxx.xxx; # 这里写你的域名或者公网IP
        location / {
                uwsgi_pass      127.0.0.1:8000; # 转发端口,需要和uwsgi配置当中的监听端口一致
               	include uwsgi_params; # 导入uwsgi配置
                uwsgi_param UWSGI_PYTHON /home/file/venv; #Python解释器所在的路径(这里为虚拟环境)
		 		uwsgi_param UWSGI_CHDIR  /home/file/;# 自己创建的目录 项目根目录
        } 
	location /static{
		alias /home/file/collectstatic/;
	}
}

访问可能会出现403没有权限的问题

解决办法

找到nginx.conf文件的位置

将第一行的代码进行修改

#user www-data; 
user root;
或者将 www-data更改权限

最后,不要忘了进入你的云服务器-控制台-安全组,设置入方向安全组端口号为80、
此刻就可以访问了、
如出现服务器访问错误,删除default文件下面两行的注释就可以了。

 uwsgi_param UWSGI_PYTHON /home/file/venv; #Python解释器所在的路径(这里为虚拟环境)
		 		uwsgi_param UWSGI_CHDIR  /home/file/;# 自己创建的目录 项目根目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值