场景:在本地的pycharm上已经写好了一个Django架构的网站,现在要把它放到公网上
一、阿里云服务器
选择云服务器ECS,新用户可以免费使用三个月
购买时选择预装宝塔面板
买好后,进入云服务器控制台
重置实例密码
远程连接至服务器,这里用阿里自带的workbench,不用下别的远程连接软件了
二、宝塔
浏览器中输入,公网ip:8888,打开宝塔面板
初始账号密码获取:在服务器界面输入 bt default 查看
三、配置nginx和python
可以从宝塔配置,因为在命令行里配置貌似宝塔不会同步
点击PHP项目、Python项目,会提示你未下载,点击下载即可,Python选Pycharm同版本就行
查看Python版本号:pycharm命令行中输入 python --version
从命令行配置可能遇到的问题:yum,apt命令无法使用 阿里云服务器安装Nginx时,显示安装失败
浏览器输入ip+端口打不开?
因为端口未开放
阿里云:
宝塔:
两个都要改!
宝塔创建python项目
项目路径:Django根目录
运行文件:我也不清楚要选什么,我选的views文件,也可以正常运行
升级pip pip3 install --upgrade pip
安装python库
从命令行:pip3 install django (这里版本对不上也没关系
从宝塔:
安装uwsgi
执行以下命令,安装uWSGI。
sudo pip3 install uwsgi
如果回显信息如下所示,表示uWSGI已安装成功。
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting uwsgi
Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/b3/8e/b4fb9f793745afd6afcc0d2443d5626132e5d3540de98f28a8b8f5c753f9/uwsgi-2.0.21.tar.gz (808kB)
100% |████████████████████████████████| 808kB 72.9MB/s
Installing collected packages: uwsgi
Running setup.py install for uwsgi ... done
Successfully installed uwsgi-2.0.22
将本地文件上传至服务器
从宝塔:
好像可以直接上传目录,挺好的,也可以压缩上传再解压
我当时受其它帖子影响,放在了wwwroot文件夹下,不过放哪好像都行,放root下也行
配置settings.py
允许所有ip访问 输入i
进入编辑模式,将ALLOWED_HOSTS = [ ] 修改为ALLOWED_HOSTS = ["*"] 修改完成后,ECS,输:wq保存并退出文件。
命令行文件编辑常用操作:按i进入编辑模式,esc退出编辑,输入:wq保存并退出
:wq无法退出,可能是你没有权限,输入:q退出,文件不会保存
ctrl+C可以退出一些软件 ctrl+D可以退出Python
连接数据库 我没有数据库,跳过
编写uwsgi.ini文件
[uwsgi]
#项目目录
chdir=/www/wwwroot/PyProject
#指定项目application
wsgi-file=/www/wwwroot/PyProject/firstWEB/views.py
# 进程个数
processes=4
# 线程个数
threads=2
#指定启动时的pid文件路径(用于停止服务和重启服务,请勿删除)
pidfile=/www/wwwroot/PyProject/uwsgi.pid
# 指定ip及端口
# 默认http模式,可切换至socket模式
http=0.0.0.0:8000
#socket=0.0.0.0:8000
#启动uwsgi的用户名和用户组
uid=www
gid=www
#启用主进程
master=true
# 后台运行,并输出日志
daemonize = /www/wwwlogs/python/PyProject/uwsgi.log
# 自定义设置项请写到该处,
# 如果项目的启动方式您不想使用 wsgi-file 请注释掉,但不要删除,通讯方式(http, socket)同理;
# 最好以上面相同的格式 <注释 + 换行 + key = value> 进行书写,方便以后查阅
静态文件同步
数据迁移
在服务器命令行运行
/www/server/pyporject_evn/Django项目名称_venv/bin/python3 manage.py makemigrations
/www/server/pyporject_evn/Django项目名称_venv/bin/python3 manage.py migrate
然后重启Python
运行Django
cd到Django根目录下
python manage.py runserver 0:8000
上面的写法可以避免 Error: That IP address can't be assigned to.
注意,要将代码中涉及文件地址的地方修改为现在服务器的地址
输入ip+端口号即可访问
Python项目--Flask/Django框架项目部署 - Linux面板 - 宝塔面板论坛 (bt.cn)