哎,部署之路,越走越远。不懂的东西太多了,中途实在是艰难,幸好我没有放弃,
我大概部署了快2个星期了吧,从一开始的只能终端运行runserver,到昨天的只能
配着uwsgi运行,然后到今天的和nginx一起搭配工作,百度前几页的资料基本都看过
哎。。。。难受,不过也还好,最终还是成功部署上线了,主要参考的文章有。
可以看我部署成功的案例,有不会的随时可以留言,我每天都会定时的查看博客情况
django官方部署文档
django python项目管理
宝塔面板成功部署流程
另外还有两个很重要的地方,都是涉及到数据库的
一个是sqlite3,和mysqldb,都是因为版本过低导致无法正常的运行,
具体的报错信息需要自行百度,很快就能找到解决方案的。
正文开始
因为不懂的东西太多太多所以只能摸着石头过河,走一步算一步,
首先将项目打包放在/data/wwwroot/目录下,
1.安装宝塔面板(自行百度,并安装好lnmp套件,会有提示的)
2.安装python项目管理工具,(在宝塔面板的商店里免费安装)
3.接着进入python项目管理器的版本管理,安装python3.7.2(因为系统自带的是2.7的,宝塔面板又依赖这个版本的python,所以不能卸载)
4.安装会等待一段时间,接着进入项目管理器,点击设置,然后加上日志信息daemonize = /data/wwwroot/files/files/uwsgi.log (位置可以自己定义)
5.接着就可以简单的尝试域名映射,不出意外的话,会失败,我也不知道啥问题。很无奈。但是没关系,接着往下看
6.需要注意的是,选择启动文件的时候一定要选到app下面的wsgi.py文件,否则项目都会创建失败,选择项目选django框架,启动文件uwsgi,
7.项目创建好之后就可以尝试用域名 设置的端口尝试访问了,如果正常,就继续,有错误不能正确访问就去查看错误日志 cat /data/wwwroot/files/files/uwsgi.log
8.根据错误信息然后找到原因解决,因为终端的差异,很多情况都是预料不到的。(小技巧,把错误信息放到百度上,能够解决大部分问题,找不到就google)
9.配置成功后就开始配置nginx反向代理了,用于处理静态文件,
首先找到user root root;第一行,改成root,避免访问不了的情况,然后去到/data/wwwroot/你的项目文件给上权限,chmod 757 -R 项目名 (避免因为权限问题报错)
然后找到server配置模块
server { listen 80; server_name dd.666cc.cn; # 这里改为你的项目的域名 index index.html index.htm index.php; root /data/wwwroot/files/; # 这里指向项目的根文件 rewrite ^/$ / break;
error_page 404 /404.html; include enable-php.conf; location / { include uwsgi_params; proxy_pass http://127.0.0.1:8000; # 这里指向uwsgi的端口进行转发 uwsgi_param UWSGI_SCRIPT files.wsgi; # 这是启动文件 uwsgi_param UWSGI_CHDIR /data/wwwroot/files/; } location /static/ { alias /data/wwwroot/files/files/static/; # 这里很重要,用于处理静态文件的,一定要这一步, }
如果是部署成功后css样式丢失的话,
1.首先检查setting中的STATIC_ROOT有无设置好,
代码语言:javascript复制DEBUG = True
ALLOWED_HOSTS = ['*']
STATIC_URL = '/static/'
# STATICFILES_DIRS = [
# os.path.join(BASE_DIR, "static")
# ]
STATIC_ROOT = os.path.join(BASE_DIR, "static") # 就是这句
2.没有设置的话设置好之后把DEBUG改为False,接着执行静态文件收集命令,python manage.py collectstatic )
这样所有的静态文件都会被收集到static文件中(css,js,image,等等静态文件)
收集完成之后可以ctrl shift r无缓存刷新浏览器在尝试访问,正常都是没有问题的
按照步骤走,让部署变的简单,其实部署过之后就会觉得,就是这么简单。。。。不要被眼前的困难所打倒,加油!!
引用自文章开头的篇文章,另加上了自己感觉应该注意的细节问题,祝你好运