安装Nginx
yum install nginx
启动nginx
systemctl start nginx.service systemctl enable nginx.service
安装Python3.6
yum install https://centos7.iuscommunity.org/ius-release.rpm -y yum install python36u -y yum install python36u-pip python36u-devel -y
配置 Python PIP 的清华镜像
mkdir ~/.config/pip
然后在文件pip.conf内添加如下代码
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装mysql
- 下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。
yum -y install mysql-community-server
- 数据库配置
启动 systemctl start mysqld.service
看运行状态 systemctl status mysqld.service
找密码的命令 grep "password" /var/log/mysqld.log
修改密码 ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new password‘;
修改密码的验证
mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
移除yum仓库中的mysql yum -y remove mysql57-community-release-el7-10.noarch
初始化虚拟环境
为了不影响外界环境的清洁,所以我们使用虚拟环境来配置 Django 项目
cd /home/ mkdir django cd django python3.6 -m venv venv
创建完成后,执行命令,进入虚拟环境
source venv/bin/activate
然后在虚拟环境中安装 django 并初始化项目
pip install django django-admin startproject my cd my python manage.py startapp mine
pip install mysqlclient
的时候会报错
要安装mysql依赖
yum install mysql-devel gcc gcc-devel python-devel
预览项目
创建完成 App 后,我们需要修改 my/settings.py 使 Django 能处理来做所有域名中的请求
DEBUG = False # 修改允许的域名 ALLOWED_HOSTS = ['ip地址']
收集静态文件:python manage.py collectstatic
。
修改完成后,执行如下命令来启动 Django 的测试服务器。
python /home/django/my/manage.py runserver 0.0.0.0:80
这时,你可以访问 IP 地址 查看预览界面
安装 Uwsgi
- uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。uwsgi是使用python编写的,因此通过
pip install uwsgi
就可以了。(uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中)。 - 使用命令
uwsgi --http :8000 --module zhiliaoketang.wsgi --vritualenv=/root/.virtualenvs/django-env-py2
。用uwsgi
启动项目,如果能够在浏览器中访问到这个页面,说明uwsgi
可以加载项目了。
配置 Uwsgi
首先,我们来创建一个目录用于存放 Django 的配置文件
mkdir -p /home/django_conf
然后在这个目录下创建一个文件 [uwsgi.ini].
示例代码:/home/django_conf/uwsgi.ini
[uwsgi] # Django相关的配置 # 必须全部为绝对路径 # 项目的路径 chdir = /srv/zhiliaoketang # Django的wsgi文件 module = zhiliaoketang.wsgi # Python虚拟环境的路径 home = /root/.virtualenvs/django-env-py2 # 进程相关的设置 # 主进程 master = true # 最大数量的工作进程 processes = 10 # socket文件路径,绝对路径 socket = /srv/zhiliaoketang/zhiliaoketang.sock # 设置socket的权限 chmod-socket = 666 # 退出的时候是否清理环境 vacuum = true
然后使用命令uwsgi --ini zhiliaoketang.ini
,看下是否还能启动这个项目。
配置 Nginx
配置完成 Uwsgi 后,我们来创建 Nginx 的配置文件(/etc/nginx/conf.d/my.conf
)
示例代码:/etc/nginx/conf.d/my.conf
upstream name { server unix:///root/django/project_name/name.scok } server { listen 80; server_name ip地址 域名; charset utf-8; client_max_body_size 75M; location /media { alias /root/django/my/media; # media路径 } location /static { alias /root/django/my/static; # static文件路径 } location / { uwsgi_pass unix:///root/django/my/my.sock; # 跟uwsgi配置的socket要保持一致 uwsgi_pass name include /etc/nginx/uwsgi_params; } }
然后,重启 Nginx
systemctl restart nginx.service
配置 Supervisord
使用supervisor配置:
让supervisor管理uwsgi,可以在uwsgi发生意外的情况下,会自动的重启。
supervisor
的安装:在系统级别的python环境下pip install supervisor
。- 在项目的根目录下创建一个文件叫做
zlkt_supervisor.conf
。内容如下:
# supervisor的程序名字 [program:mysite] # supervisor执行的命令 command=uwsgi --ini zlkt_uwsgi.ini # 项目的目录 directory = /srv/zhiliaoketang # 开始的时候等待多少秒 startsecs=0 # 停止的时候等待多少秒 stopwaitsecs=0 # 自动开始 autostart=true # 程序挂了后自动重启 autorestart=true # 输出的log文件 stdout_logfile=/srv/zhiliaoketang/log/supervisord.log # 输出的错误文件 stderr_logfile=/srv/zhiliaoketang/log/supervisord.err [supervisord] # log的级别 loglevel=info # 使用supervisorctl的配置 [supervisorctl] # 使用supervisorctl登录的地址和端口号 serverurl = http://127.0.0.1:9001 # 登录supervisorctl的用户名和密码 username = admin password = 123 [inet_http_server] # supervisor的服务器 port = :9001 # 用户名和密码 username = admin password = 123 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
然后使用命令supervisord -c zlkt_supervisor.conf
运行就可以了。
以后如果想要启动uwsgi
,就可以通过命令supervisorctl -c supervisor.conf
进入到管理控制台,然后可以执行相关的命令进行管理:
- status # 查看状态
- start program_name #启动程序
- restart program_name #重新启动程序
- stop program_name # 关闭程序
- reload # 重新加载配置文件
- quit # 退出控制台