2019独角兽企业重金招聘Python工程师标准>>>
部署方式
Nginx > uwsgi > Django
前置组件
- lnmp
- pyenv
- Python3
- uwsgi
详细步骤:
STEP 1:
安装lnmp
有能力的可以自行编译安装,实际需要的组件是 Nginx & Mysql
这里推荐使用军哥的一件LNMP脚本安装,地址:https://lnmp.org/install.html
STEP 2:
安装pyenv
地址:https://github.com/pyenv/pyenv
如果觉得复杂,可以使用一件脚本
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
在你想要安装PYENV的目录
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
添加命令行环境变量
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile增加
pyenv init
到SHELL$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile重启命令行环境,使得命令生效
$ exec "$SHELL"安装 Python3
$ pyenv install 3.6.1STEP 3:
创建虚拟运行环境
- 创建Django-sspanel 运行的虚拟环境
$ pyenv virtualenv 3.6.1 venv-sspanel
- 切换到www网站目录
$ cd /home/www/STEP 4:
Clone并编写配置
- clone 项目到本地
$ git clone https://github.com/Ehco1996/django-sspanel.git
- 将项目文件夹的环境设置为 virtualenv
$ pyenv local venv-sspanel # 这个时候,我们就有一个干净的Python运行环境了
- 安装项目所需的第三方包
$ cd /home/www/django-sspanel # 进入项目目录 # cent os 需要手动安装mysqlclient $ sudo yum install python-devel mysql-devel $ sudo yum install python3-devel $ pip3 install mysqlclient # 最后安装其他第三方包 $ pip install -r requirements.txt
- 编写自定义配置
$ cd django-sspanel # 进入项目配置文件夹 $ nano simple_setting_product.py # 编写配置# DEBUG设置 DEBUG = False # 域名设置 # 修改为自己的域名 ALLOWED_HOSTS = [ 'www.ehcozone.club', 'ehcozone.club', ] # mysql 设置 # 修改为自己的配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sspanel', 'USER': 'root', 'PASSWORD': 'pass', 'HOST': '127.0.0.1', 'PORT': '3306', } } # 邮件服务设置: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 我使用163邮箱作为smtp服务器 EMAIL_USE_TLS = False EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = 25 EMAIL_HOST_USER = 'USER' EMAIL_HOST_PASSWORD = 'PASS' DEFAULT_FROM_EMAIL = 'USERNAME' # SS面板设置: MB = 1024 *1024 GB = 1024 * 1024 * 1024 DEFAULT_TRAFFIC = 5 * GB START_PORT = 10000 # 签到流量设置 MIN_CHECKIN_TRAFFIC = 10 * MB MAX_CHECKIN_TRAFFIC = 200 * MB # 是否启用支付宝系统(需要配置支付宝当面付插件) USE_ALIPAY = True # 网站title TITLE = '谜之屋' SUBTITLE = '秘密的小屋' # 网站邀请界面提示语 INVITEINFO = '邀请码实时更新,如果用完了进进telegram群问bot要 群链接:https://t.me/Ehcobreakwa11'
- 建立sspanel数据库
$ mysql -uroot -p # 输入安装lnmp时mysql的密码 $ create database sspanel; # 创建数据库
- 测试项目是否正常运行
$ cd .. # 切回项目根目录 $ python manage.py migrate # 通过djang ORM 建立所需数据库表 $ python manage.py runserver # 测试项目是否运行
- 创建管理员账号
$ python manage.py createsuperuser # 按照提示创建即可如果没有报错,那么恭喜你,这一步你成功了。 如果报错了,根据信息来慢慢解决。
STEP 5:
编写Nginx 和 uwsgi 配置
$ nano nginx_vhost.conf #server { listen 80; server_name www.ehcozone.club; # 项目域名 root /home/www/django-sspanel; # 项目的目录 location /media { alias /home/www/django-sspanel/media; # your Django project's media files - amend as required } location /static { alias /home/www/django-sspanel/static; #静态文件地址,js/css expires 12h; } location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8080; } }将配置文件复制到Nginx配置目录
$ cp nginx_vhost.conf /usr/local/nginx/conf/vhost/projectname.conf配置uwsgi
$ nano uwsgi.ini[uwsgi] # variables projectname = django-sspanel # 项目名字 projectdomain = 'ehcozone.club' # 项目域名 base = /home/www/django-sspanel # config chdir= /home/www/django-sspanel/ plungins = python socket = 127.0.0.1:8080 # 运行端口 module = django-sspanel.wsgi:application pidfile = /tmp/django-sspanel.pid # pid文件 master = True vacuum = True增加定时任务
$ python manage.py crontab add运行项目
$ uwsgi uwsgi.iniok,尝试访问你的域名吧!
PS:管理员账号登录之后,先得去django后台绑定一下
只有管理员才需要这个步骤,正常通过注册生成的用户会自动绑定的
具体步骤:
- 登录管理账号
- 进入django后台
- 选择ssserver应用下的ss账户
- 点击右上角的添加账号
- 绑定自己的管理员账号
- © 2017 GitHub, Inc.