购买
购买阿里云服务器后,会向购买账号的手机号发送一条带有登录名和重置密码的提醒(在阿里云‘’实例列表‘’哪里进行操作)。
通过xshell进入阿里云服务器
搭建python3环境
参考这个:
https://www.cnblogs.com/zhangxue521/p/8335556.html
注意点是
步骤
1 通过wget下载python3.6.4(后续可以升级到其他版本步骤是一样的)
2 ./configure --with-ssl 预编译并且带ssl
3 ./configure --prefix=/usr/local/python3 配置安装目录
4 make 编译
make install 安装
5 建立软连接(注意不要将原来的python2误删除了,后期会有好多 麻烦)
可以先进去、usr/bin下面查看一下当前的python的软连接
ls -la
6 此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字(记住你更改的python2的名字,下面报错的时候会用到)
mv /usr/bin/python /usr/bin/python_old
再建立新版本python的链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
安装django环境
pip3 install django
出现的问题:
1 ModuleNotFoundError: No module named '_sqlite3’
2 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.8.2).
解决:https://blog.csdn.net/qq_39969226/article/details/92218635
或者 https://blog.csdn.net/weixin_43336281/article/details/100055435
访问django
出现连接拒绝但安全组已经开发8000端口
解决https://blog.csdn.net/u010910682/article/details/89710307
就是启动是0.0.0.0:8000
开发环境下把setting文件的 HOST=[ ] 改为 HOST = [ * ]
创建虚拟环境
Python创建虚拟环境
创建虚拟环境是为了让项目运行在一个独立的局部的Python环境中,使得不同环境的项目互不干扰。
回到顶部
一、用命令创建虚拟环境
- 安装虚拟环境的第三方包 virtualenv
pip install virtualenv
使用清华源安装:pip install virtualenv -i https://pypi.python.org/simple/ (尝试过出错,可能在修复)
- 创建虚拟环境
cd 到存放虚拟环境光的地址
virtualenv ENV 在当前目录下创建名为ENV的虚拟环境(如果第三方包virtualenv安装在python3下面,此时创建的虚拟环境就是基于python3的)
virtualenv -p /usr/local/bin/python2.7 ENV2 参数 -p 指定python版本创建虚拟环境
virtualenv --system-site-packages ENV 参数 --system-site-packages 指定创建虚拟环境时继承系统三方库
- 激活/退出虚拟环境
cd ~/ENV 跳转到虚拟环境的文件夹
source bin/activate 激活虚拟环境
pip3 list 查看当前虚拟环境下所安装的第三方库
deactivate 退出虚拟环境
- 删除虚拟环境
直接删除虚拟环境所在目录即可
uWSGI部署
同样为了环境的隔离和纯净,这次我也选择在同样的虚拟环境下安装:
pip3 install uwsgi
安装完成后可
uwsgi --version查看版本,
uwsgi --python-version还可以间接查看到python的版本。
创建完成之后,在目录中创建uwsgi.ini文件。
vim uwsgi.ini
内容如下:
[uwsgi]
项目目录
chdir=/opt/project_teacher/teacher/
#启动uwsgi的用户名和用户组
uid=root
gid=root
指定项目的application
module=teacher.wsgi:application
指定sock的文件路径
socket=/opt/project_teacher/script/uwsgi.sock # sock文件是由uwsgi.ini文件启动之后自动生成
启用主进程
master=true
#进程个数
workers=5
pidfile=/opt/project_teacher/script/uwsgi.pid
#自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
#序列化接受的内容,如果可能的话
thunder-lock=true
#启用线程
enable-threads=true
#设置自中断时间
harakiri=30
#设置缓冲
post-buffering=4096
#设置日志目录
daemonize=/opt/project_teacher/script/uwsgi.log
特别注意****在阿里云上socket = 内网地址
以上配置完成之后,启动uwsgi.ini文件,并查看进程
uwsgi --ini uwsgi.ini
nginx的部署
sudo apt-get install nginx (这个地方有坑的自行解决)
参考
https://blog.csdn.net/qq_40311292/article/details/102796454
https://www.cnblogs.com/MrLee/p/10469580.html
安装报 Errors were encountered while processing:
参考:https://blog.csdn.net/qingfengxiaosong/article/details/87889995
在site-enable中设置自己引用的webapp
特别注意在阿里云上面只需监听端口,在uwsgi-pass中写公网ip:端口
注意区分这和腾讯云不一样
一些问题
如果出现static静态资源无法访问
参考http://www.mamicode.com/info-detail-2309868.html