CentOS安装Django环境
本文采用的服务器为阿里云轻量级应用服务器,所使用的系统是CentOS 7.3,所搭建的环境为python3.7,Django 2.2。
阿里云CentOS系统
-
将阿里云服务器重置为CentOS系统
登录阿里云后台服务器,选择重置系统,选择CentOS 7.3,填写短信验证码重置系统。
-
升级yum
sudo yum update
-
防火墙设置,开放端口
由于重置系统为CentOS后,防火墙只会开启22端口,所以其他端口要使用需要自己开启,而CentOS 7后都使用防火墙,而不是使用iptables了,开启后同时需要确认阿里云服务器后台是否开启次端口。
# 开启防火墙 sudo systemctl start firewalld.service # 开放80端口 sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 重启防火墙 sudo systemctl restart firewalld.service # 重置防火墙配置 sudo firewall-cmd --reload
-
安装数据库mariadb
# 安装mariadb yum -y install mariadb mariadb-server # 启动数据库 sudo systemctl start mariadb # 设置数据库开机启动 sudo systemctl enable mariadb # 设置数据库密码等 mysql_secure_installation
CentOS安装python 3.7
我们可以使用python --version
来查看当前系统的python版本,我当前的python版本为2.7.5
-
安装python 3.7
# 返回主目录,并新建python3文件夹 cd ~ mkdir python3 cd python3 # 安装python 3 依赖环境 sudo yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel libffi-devel MySQL-python mysql-devel # 下载python 3.7 wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz # 解压python tar -zxvf Python-3.7.3.tgz # 配置python3安装目录 cd /usr/local sudo mkdir python3 cd ~/Python-3.7.3 ./configure --prefix=/usr/local/python3/ # 编译python,make命令可能需要时间很长 make # 安装 sudo make install
至此python 3.7已经安装成功了,可以
cd /usr/local/python3/
目录下查看是否安装成功,但是此时在控制台输入python3是没有该命令的,还需要做以下操作:sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3 sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
此时python3和pip3都可以在命令中找到了,最后安装一个mysqlclient
sudo pip3 install mysqlclient
安装Django
-
安装Django以及测试
# 安装django sudo pip3 install django sudo ln -s /usr/local/python3/bin/django-admin /usr/bin cd ~ sudo mkdir Test cd Test # 创建Django测试工程 sudo django-admin startproject MyTest cd MyTest # 启动Django sudo python3 manage.py runserver 0.0.0.0:80
此时启动Django应该会报错,需要修改settings.py里面的一些配置,settings.py修改数据库配置
ALLOWED_HOSTS = [] ->> ALLOWED_HOSTS = ['*'] # 数据库修改 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '自己新建的数据名', 'USER': 'root', 'PASSWORD': '配置数据库时的密码', 'HOST': 'localhost', 'PORT': '3306', } }
再次启动Django
sudo python3 manage.py runserver 0.0.0.0:80
,本机访问服务器地址,可以看到Django的图标等,表明Django的环境已经搭建成功了
配置uwsgi和nginx
-
安装uwsgi和nginx
sudo pip3 install uwsgi sudo yum -y install nginx sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
-
配置uwsgi和nginx
修改项目中的settings.py文件,关闭DEBUG模式,修改静态文件链接,在settings.py中STATIC_URL下添加静态链接文件位置,并在项目中建立静态文件夹static# 添加静态链接文件位置,该文件夹需要在服务器上创建 STATIC_ROOT = os.path.join(BASE_DIR, '../collected_static') STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
在项目中新建uwsgi配置文件uwsgi.ini并填入以下内容,并根据自身项目修改,在项目目录新建uwsgi文件夹
[uwsgi] socket = 127.0.0.1:8000 # uwsgi监听端口 chdir = ***** # 自身项目在服务器上地址 module = *****.wsgi #自身项目中的wsgi master = true processes = 1 threads = 2 # 线程数 max-requests = 2000 # 最大请求 chmod-socket = 664 vacuum = true # uwsgi文件存放地址 stats = %(chdir)/uwsgi/uwsgi.status pidfile = %(chdir)/uwsgi/uwsgi.pid daemonize = %(chdir)/uwsgi/uwsgi.log
在服务器中链接静态文件,如果看到多少文件链接成功则配置成功
sudo python3 manage.py collectstatic
修改nginx配置,
sudo vim /etc/nginx/nginx.conf
,修改server配置# Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. server { listen 80; server_name localhost; charset utf-8; location / { # 监听端口和uwsgi相同 uwsgi_pass 127.0.0.1:8000; include /etc/nginx/uwsgi_params; } location /static { #uwsgi配置的静态链接的地址 alias ******/collected_static/; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
上面已经配置完成了,下面启动项目
# 到项目目录下 sudo uwsgi3 --ini uwsgi.ini # 启动nginx sudo systemctl start nginx
如果以上两个都没有报错表面已经配置成功了,可以到本地机器上通过IP访问看下是否成功 .
如果更改了代码,需要重新启动uwsgi3# 到项目目录下 cd uwsgi sudo uwsgi3 --reload uwsgi.pid