阿里云服务器部署Django项目(Linux服务器、宝塔、纯新手)
要是有问题欢迎在评论区留言,我会尽量帮你解决⸜₍๑•⌔•๑ ₎⸝
目录
1. 前言 🚲
最近产生了搭建个人网站的想法,能发表一些观点和想法(Blog),也可以用来和他人交流,同时配置好的服务器也能用来进行一些项目,NICE👍
在使用Linux服务器之前,购买过阿里云的Windows服务器,不得不说其配置比较 “繁琐”(更可怜的是,配置了好几天结果还是失败了)听说Linux服务器配置更加简单,所以产生了使用Linux服务器试试看的想法(反正阿里云可以更改服务器的系统 🤣)
谁想到…使用Linux服务器后仅仅使用了一个上午就配置成功了!!!🎉🎉🎉
(所以没有使用过Linux服务器的大家不用慌张~)
由于个人原因,比较熟悉Django框架,所以这里主要是谈一下配置Django项目到阿里云服务器的整个流程
特此记录在这里帮助有同样需求的人,炫耀一下,也方便自己后续添加正式项目(哈哈哈)
2. 服务器购买和初步搭建🛵
2.1 购买服务器
- 点击红框处购买服务器
- 特别注意购买页面中选择CentOS 7.x镜像(当然其它Linux内核的系统也可、购买细节参考官方论坛)-- 记得购买时设置的密码和用户名!!!
Tips: 如果已有WIndow Server服务器(或者买错了),可以更改服务器镜像,具体注意事项详见:这篇博客
2.2 初步搭建服务器
-
购买或者更改完成后,进入到阿里云控制台,找到刚刚创建的实例(ECS)点击远程连接
-
登陆后我们先安装宝塔,参照博客或者官方教程
简单来说就是使用安装命令(2021-04-14)yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
然后在本地打开对应的面板页面进行安装所需软件
这里体现出了宝塔面板的好处,无需自己下载配置Nginx,在安装宝塔面板时可以自动完成安装与配置 -
配置Python项目管理器
- 进入宝塔面板软件商店,搜索 Python项目管理器 并安装,选中首页显示即可在首页看到管理器。
- 安装完成后点击Python项目管理器的设置->版本管理->安装Python版本(此处我安装的是3.7.9)
3.本地Django项目设置 🏍
3.1 本地虚拟环境导出
每个项目都有一个自己的虚拟环境,这也是做Python的几乎所有项目的特点,这样做可以便于在新的机器上安装所需的环境。
在上传本地的Django项目之前,首先要:
- 激活当前项目的虚拟环境
例如:
# 这里在Windows的CMD中,virtualenv
E:\Pycharm\Chinese_Seal>cd venv #进入项目中虚拟环境所在文件夹
E:\Pycharm\Chinese_Seal\venv>Scripts\activate #激活虚拟环境
(venv) E:\Pycharm\Chinese_Seal\venv> #出现了前面的()表明成功激活
# 或者在Git Bash里
$/e/Pycharm/Chinese_Seal $ cd venv/
$/e/Pycharm/Chinese_Seal/venv $ . Scripts/activate
$(venv) /e/Pycharm/Chinese_Seal/venv $
- 激活成功后,导出当前项目依赖环境到requirements.txt
# 这里在Windows的CMD中,virtualenv
(venv) E:\Pycharm\Chinese_Seal\venv>pip freeze > requirements.txt
# 在GitBash中,virtualenv
$(venv) /e/Pycharm/Chinese_Seal/venv $ pip freeze > requirements.txt
3.2 收集静态文件
静态文件也就是css之类的网页文件
- 首先要修改项目中的settings.py
STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# os.path.join(BASE_DIR, 'static'),
# )
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
- 然后收集静态文件
python manage.py collectstatic
这样就会把项目中的所有静态文件放到项目根目录下的static文件夹中
3.3 别忘了!
以防大家忘记,特地提醒一下:settings.py中
Debug = False #不开启Debug模式
Listen = ['*'] #所有IP均可以访问
'''(此处有疑问:是否设置为服务器端的公网IP也可以, 尚未测试)'''
4.上传项目并配置服务器🚗
4.1 项目文件夹打包上传到服务器
!!! 一定要打包上传,不然特别慢…
上传到如图所示的路径: www/wwwroot/
然后直接解压
4.2 项目部署**
- 打开python项目管理器,点击“添加项目”,进行相关配置(uwsgi选择即可完成配置)
- 各个项目:
- 项目名称:显示在Python项目管理器中的名称,没有特别要求。
- 路径:选择项目文件夹,即第二步上传项目解压后的文件夹。
- Python版本:可使用系统默认的Python版本即可。
- 框架:选择Djaogo框架 (Python是否可以?)
- 启动方式:有gunicorn和uwsgi两种选择,启动后会在项目中增加不同的配- 置文件,这里我们使用uwsgi.
- 启动文件/文件夹:选择Django项目配置文件夹下的wsgi.py(配置文件夹即settings.py所在的文件夹)
- 端口:选择一个端口号(若已在安全组中开放,则可直接通过这个端口号,访问项目)
4.3 配置uwsgi
- 这一步骤十分重要,如果配置不好就会出现’Internal Server Error’。
- 可以点击Python管理器项目的 ‘配置’ 进行修改,也可以找到这个在项目中的uwsgi文件,在文本编辑中进行修改,修改后会自动同步到 ‘配置’ 选项卡里。
'''记得改成自己的项目文件夹名称!!!'''
[uwsgi]
master = true
processes = 1
threads = 2
chdir = /www/wwwroot/test_DjangoServer '''这里'''
wsgi-file= /www/wwwroot/test_DjangoServer/test_DjangoServer/wsgi.py'''这里'''
http = 0.0.0.0:8201 '''监听端口'''
logto = /www/wwwroot/test_DjangoServer/logs/error.log '''报错可查看这里'''
chmod-socket = 660
vacuum = true
master = true
max-requests = 1000
static-map = /static=/www/wwwroot/test_DjangoServer/static '''这一行添加'''
- 当完成上述步骤后,在Python项目管理器中点击运行项目
开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!
开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!
开启后已经可以在本地电脑上通过 IP:端口号 进行访问啦!!!
4.4 开启映射(反向代理)
- 如果你有域名可以使用映射来让域名访问指定到某个项目,如果你没有域名也可以设置映射(虽然我觉得没有啥必要…)
- 设置原因:如果你有一个域名,就可以通过反向代理,通过IP(不用带端口)或者域名访问。
- 在Python项目管理器中找到项目,点击映射,输入域名。(有时会显示添加失败,但是打开宝塔面板的 ‘网站’ 选项,还是能看到这个映射后的站点,我使用时并没有影响)。
- 反向代理设置:参考博文
4.5 静态文件路径
- 点击网站,找到刚刚建立的站点,点击站点名>配置文件,添加如图所示信息
# '''记得改成自己的文件路径'''
location ^~ /static/ {
root /www/wwwroot/test_DjangoServer/;
}
- 你也可以在这里添加额外的域名以及其对应的端口
- 完成后把Python管理器中的项目重启一下,站点也重启一下~
- 补上坑,大家记得在阿里云上的安全组中进行配置,开放你设置的端口(如何配置阿里云安全组在前面宝塔安装的部分的链接中有介绍!)
OK!搞定!已经可以用域名或者IP地址访问了!🎊🎊🎊
5.域名相关 🏎
- 可能人要问域名怎么购买,怎么配置
- 这里我大约说一下:
==问题:反向代理作用==
这里是当前我能够记起来的所有配置过程啦!如果大家有什么问题欢迎留言呀~~(如果有大佬能够补充一下就更好啦!😂)