怎样在AlpineLinux中搭建Python3+Django环境

一、概述

Alpine Linux是一个十分轻量级的Linux发行版本,其Docker镜像大概只有5m。现在,我们将从Alpine中构建Python3+Django环境。

演示环境:Alpine 3.11 的Docker容器环境

接下来我们将从一个纯净的Alpine系统开始搭建Python3+Django运行环境。首先在本机的Linux桌面环境开启一个Linux容器,如下代码

docker run -it --name django -p 80:80 -p 465:465 -p 9090:9090 -p 8001:8001 -p 8002:8002 -v $PWD:/www alpine:3.11

二、详细过程

2.1 切换加速镜像软件源

编辑 /etc/apk/repositories,将里面 dl-cdn.alpinelinux.org 的改成 mirrors.aliyun.com ,保存退出即可
可以直接使用一下命令进行替换

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

2.2 安装Python3

Django是一个Django的框架,所以Python是必须的,此次我们安装Python3

apk add --no-cache python3 python3-dev python3-pip

实际上,我们还需要安装python3-dev软件库,否则在安装Django时会报错。同时我们需要安装python3-pip

2.3 安装基本基本的开发工具包

我们在开发程序是会使用到一些基本的工具包,我们先安装上,否则在编译或者运行程序时可能会出错

apk add --no-cache zlib-dev bzip2-dev pcre-dev openssl-dev ncurses-dev sqlite-dev readline-dev tk-dev

2.4 安装编译工具

后面我们可能会用编译工具编译源代码,我们先安装上基本的编译工具

apk add --no-cache gcc g++ make cmake

2.5 安装easy_install

# 升级pip
pip3 install --upgrade pip
# 安装setuptools
pip3 install setuptools

实际上,安装之后会自带easy_install,我在进行测试的时候系统是Python3.8.1版本,即可使用以下命令查看easy_install的版本信息。

easy_install-3.8 --version

2.6 安装uwsgi

apk add --no-cache linux-headers #安装依赖
pip3 install uwsgi

测试 uwsgi 是否正常:

新建 test.py 文件,内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    test ="Hello World"
    return test.encode("utf-8")

因为我们使用的是Python3,所以需要制定编码,再返回,然后在终端运行以下代码:

uwsgi --http :8001 --wsgi-file test.py #后台运行

此时通过电脑访问http://127.0.0.1:8001
如果正常显示"Hello World",否则检查一下安装过程

2.7 安装Django

pip3 install django

检查django是否正常

django-admin.py startproject demosite
cd demosite
python3 manage.py runserver 0.0.0.0:8002

在浏览器访问:http://127.0.0.1:8002
检查django是否运行正常。

2.8 安装Nginx

# 下载
wget http://nginx.org/download/nginx-1.17.8.tar.gz
# 解压
tar -zxvf nginx-1.17.8.tar.gz
cd nginx-1.17.8/
# 编译配置
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module
# 编译与安装
make && make install

使用一下命令测试是否Nginx正常

/usr/local/nginx/sbin/nginx

然后在浏览器打开http://127.0.0.1
如果不正常,检查一下安装过程

2.9 配置uwsgi

在/etc/目录下新建uwsgi9090.ini,添加如下配置:

[uwsgi]
socket = 127.0.0.1:9090
master = true         #主进程
#vhost = true          #多站模式
#no-site = true        #多站模式时不设置入口模块和文件
workers = 2           #子进程数
reload-mercy = 10     
vacuum = true         #退出、重启时清理文件
max-requests = 1000   
limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid    #pid文件,用于下面的脚本启动、停止该进程
daemonize = /www/uwsgi9090.log

创建对应的日志文件

touch /www/uwsgi9090.log

2.10 配置nginx

找到nginx的安装目录(本次安装在:/usr/local/nginx/),打开conf/nginx.conf文件,修改server配置:

server {
    listen       80;
    server_name  localhost;
    
    location / {            
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:9090; #必须和uwsgi中的设置一致
        uwsgi_param UWSGI_SCRIPT demosite.wsgi; #入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
        uwsgi_param UWSGI_CHDIR /demosite;#项目根目录
        index  index.html index.htm;
        client_max_body_size 35m;
    }
}

在浏览器输入:http://127.0.0.1,你就可以看到 django 的 OK 了。

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

评论已关闭

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。