Centos7部署Django(nginx+python3+uwsgi+mysql)

Tips:先关闭防火墙

service firewalld stop

Python3

yum install yum-utils
yum-builddep python
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar -xvJf  Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/python3

uwsgi

pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

测试一下uwsgi是否安装成功,编写test.py。

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World!"]

执行如下命令。

uwsgi --http :8001 --wsgi-file test.py

在浏览器里访问http://IP:8001,如果成功出现"Hello World!"就成功了。

Nginx

 vi /etc/yum.repos.d/nginx.repo

写入以下内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/x86_64/
gpgcheck=0
enabled=1 

执行yum install nginx

关闭selinux

setenforce 0  

或者永久关闭selinux。

vi /etc/selinux/config

#将文件里SELINUX=enforcing 改成SELINUX=disabled,但是这个要重启才能生效。

Mysql

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install mysql-server

修改nginx配置文件(/etc/nginx/conf.d/default.conf)

server{
    listen 80;
    server_name localhost;
    
    location / {
        root /usr/share/nginx.html;
        index index.html index.html;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html{
        root /usr/share/nginx/html;
    }
}
server {
    listen       8089;
    listen      [::]:8089;
    server_name 127.0.0.1 192.168.10.114;

    location / {
        include /etc/nginx/uwsgi_params;
        uwsgi_pass 127.0.0.1:9000;
    }
    location /index/ {
        root /index/;
    }
    location /static{
        alias /home/root/pydj/django_one/sign/static;
    }

}

进入项目路径下,例如我的项目名是HelloWorld,所以我要进入到这个目录下,
首先将该目录下与该目录同名的目录下的settings.py中的allow = []修改成allow = [’*’],方便外网访问。

vi django-uwsgi.ini

将以下内容写入

[uwsgi]
# 通过uwsgi访问django需要配置成http
# 通过nginx请求uwsgi来访问django 需要配置成socket
# 9000 是django的端口号
socket = :9000

# web项目根目录
chdir = /root/Project/django/HelloWorld/

# module指定项目自带的的wsgi配置文件位置
module = HelloWorld.wsgi

# 允许存在主进程
master = true

# 开启进程数量
processes = 3

# 服务器退出时自动清理环境
vacuum = true

#plugins = python

启动uwsgi

uwsgi --ini django_uwsgi.ini

重启nignx

service nginx restart

查看是否能访问成功,如果可以看到django的默认启动页面的话,那就说明可以成功。

接下来,添加防火墙规则

firewall-cmd --zone=public --add-port=8081/tcp --permanent#开放8081端口
firewall-cmd --reload#重新加载
service firewalld start

Tips:安装过程可能会出现各种各样的问题,多百度,注意看日志文件/var/log/nginx/error.log,一般都是nginx配置的问题,有可能是权限问题,有可能是端口占用,这个就需要大家自己根据日志解决了,每个人的问题都可能不一样,耐心一点就好了。

你可能感兴趣的:(环境搭建)