安装
-
sudo apt install python3-pip
-
sudo pip3 install virtualenv
-
sudo apt install nginx
-
sudo apt install mysql-server
-
创建虚拟环境
在项目目录下执行 /home/file/
virtualenv venv -
启动虚拟环境
source venv/bin/activate -
安装django
pip install django==1.11.4 -
安装uwsgi
pip install uwsgi -
上传项目
-
在项目中创建uconfig.ini的文件 代码在下方
-
更改setting.py文件中的 STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, ‘collectstatic’)
-
执行命令
python manage.py collectstatic -
更改nginx的default文件代码在下方
-
更改nginx的nginx.conf文件(403没权限)
-
重启nginx
16 .回到虚拟环境目录启动 uwsgi
uwsgi uconfig.ini -
关闭uwsgi
uwsgi —stop uconfig.ini -
如果关闭不掉杀死进程
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/;# 自己创建的目录 项目根目录