文章目录

  • 一、搭好docker容器
  • 二、配置好Python3.6和pip3
  • 1. 进入容器
  • 2. 安装EPEL和IUS软件源
  • 3. 安装Python3.6
  • 4. 创建python3连接符
  • 5. 安装pip3
  • 6. 创建pip3链接符
  • 三、安装Nginx
  • 1. 安装
  • 2. 修改端口测试Nginx
  • 三、安装uwsgi
  • 1. 安装
  • 2. 出现问题
  • 3. 升级pip
  • 4. 再次安装
  • 5. 发现需要安装python-devel(python36u-devel)
  • 6. 安装gcc编译环境
  • 7. 安装完成后再次uwsgi,终于安装成功
  • 四、配置django
  • 1. 安装
  • 2. 新建一个django项目
  • 3. 设置项目路径为:/root/server/dj_test
  • 4. 迁移数据库
  • 5. 修改setting.py的ip配置
  • 6. 试运行django
  • 五. 配置uwsgi.ini
  • 1. 在项目根目录下新建uwsgi.ini
  • 2. 写入以下内容
  • 3. 启动uwsgi
  • 六. 配置Nginx
  • 1. 进入配置文件
  • 2. 修改配置文件(nginx.conf)
  • 3. 重启Nginx
  • 4. 配置成功
  • 5. 生成镜像,push到创库
  • 七. 遇到过的一下问题
  • 1. 配置好Nginx,uswgi停止后无法启动
  • 2. `The page you are looking for is temporarily unavailable. Please try again la`问题



环境:centos7+Nginx+uwsgi+python36+django1.2.4

一、搭好docker容器

二、配置好Python3.6和pip3

1. 进入容器

2. 安装EPEL和IUS软件源

yum install epel-release -y
yum install https://centos7.iuscommunity.org/ius-release.rpm -y

3. 安装Python3.6

yum install python36u -y

4. 创建python3连接符

ln -s /bin/python3.6 /bin/python3

5. 安装pip3

yum install python36u-pip -y

6. 创建pip3链接符

ln -s /bin/pip3.6 /bin/pip3

三、安装Nginx

1. 安装

yum install -y nginx

2. 修改端口测试Nginx

# 进入配置目录
cd /usr/etc/
cd /etc/nginx/
# 备份
cp nginx.conf nginx.conf.back
# 修改端口,将默认端口改为70等其他端口
vi nginx.conf
# 开启Nginx
 /usr/sbin/nginx

内网 docker 里安装ifconfig docker安装iis_nginx

测试成功!

三、安装uwsgi

1. 安装

pip3 install uwsgi

2. 出现问题

raise Exception("you need a C compiler to build uWSGI")
    Exception: you need a C compiler to build uWSGI

    ----------------------------------------
Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-tqaeqiis/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-kz3ekp8d-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-tqaeqiis/uwsgi/
You are using pip version 9.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

3. 升级pip

pip3 install --upgrade pip

4. 再次安装

还是那个问题

Exception: you need a C compiler to build uWSGI
# 没有编译

5. 发现需要安装python-devel(python36u-devel)

但是安装完成还是没有解决问题

6. 安装gcc编译环境

yum install gcc

7. 安装完成后再次uwsgi,终于安装成功

[root@b2e801a3b6ee ~]# pip3 install uwsgi
Collecting uwsgi
  Using cached https://files.pythonhosted.org/packages/e7/1e/3dcca007f974fe4eb369bf1b8629d5e342bb3055e2001b2e5340aaefae7a/uwsgi-2.0.18.tar.gz
Installing collected packages: uwsgi
  Running setup.py install for uwsgi ... done
Successfully installed uwsgi-2.0.18

四、配置django

1. 安装

pip3 install django==2.1.4

安装过程中因为服务器问题出现一些错误

pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

使用软件源安装pip会出现这样的问题,其他方式安装则没有这种问题。需要多次尝试才能成功

2. 新建一个django项目

3. 设置项目路径为:/root/server/dj_test

4. 迁移数据库

python3 manage.py migrate

5. 修改setting.py的ip配置

ALLOWED_HOSTS = ["*"]

6. 试运行django

运行成功

五. 配置uwsgi.ini

1. 在项目根目录下新建uwsgi.ini

2. 写入以下内容

[uwsgi]

socket = 0.0.0.0:4433	#本地ip:端口
chdir =/root/server/dj_test	#项目绝对地址
module =dj_test.wsgi	#wsgi.py相对地址
master =true
process =4
threads = 2
buffer-size = 65536
vacuum =true
daemonize =/root/server/uwsgi.log	#日志
pidfile =/root/server/pid.log	#日志

3. 启动uwsgi

uwsgi --ini uwsgi.ini

六. 配置Nginx

1. 进入配置文件

2. 修改配置文件(nginx.conf)

  • 原内容:
server {
        listen       70 default_server;
        listen       [::]:70 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
  • 修改后内容:
server {
        listen       70 default_server;
        listen       [::]:70 default_server;
        server_name  *.*.*.*;	#服务器IP
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        include /etc/nginx/uwsgi_params;
        uwsgi_pass 127.0.0.1:4433;
        client_max_body_size 35m;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

3. 重启Nginx

4. 配置成功

内网 docker 里安装ifconfig docker安装iis_python_02

5. 生成镜像,push到创库

七. 遇到过的一下问题

1. 配置好Nginx,uswgi停止后无法启动

原因:setting.py的ip没有配置

2. The page you are looking for is temporarily unavailable. Please try again la问题

原因:setting.py的ip没有配置

还有各种问题忘了…