V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fyyz
V2EX  ›  Python

发一个 Fedora23 上自动搭建、配置 Flask 的 shell 脚本

  •  
  •   fyyz · 2016-02-01 21:38:53 +08:00 · 2415 次点击
    这是一个创建于 3251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前一段时间我发了个贴: http://v2ex.com/t/254525
    经过几天的努力,终于把搭建 Flask 遇到的大多数坑都踩了一遍,现在把它做成一个一键脚本,发给大家供大家使用。
    默认使用的是 80 端口,可以通过修改 hosts 文件,将 default.site 解析成当前服务器的 IP 地址,否则会打开 Fedora 内置的 nginx 默认界面。
    由于 nginx 与 uwsgi 之间使用 socket 通讯,而 Fedora23 默认是开启 SELINUX 的,会造成网页打不开弹 502 ,而要禁用 SELINUX 的话就必须重启,所以脚本最后加了个 reboot 。

    接下来放脚本,欢迎反馈 BUG ,或者交金币 (^-^)

    #!/bin/bash
    
    echo
    echo "#####################################################"
    echo "#                                                   #"
    echo "#      update system and install some software      #"
    echo "#                                                   #"
    echo "#####################################################"
    echo
    
    dnf install nginx uwsgi uwsgi-plugin-python3 mariadb-server python3-pip vim git -y
    pip3 install --upgrade pip
    pip3 install virtualenv
    systemctl enable nginx
    systemctl enable uwsgi
    systemctl enable mariadb
    
    firewall-cmd --add-service=http --permanent
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    
    echo
    echo "#####################################################"
    echo "#                                                   #"
    echo "#             install flask environment             #"
    echo "#                                                   #"
    echo "#####################################################"
    echo
    
    mkdir -p /var/web/default.site
    cd /var/web/default.site
    virtualenv venv
    source venv/bin/activate
    pip3 install flask
    deactivate
    
    echo
    echo "#####################################################"
    echo "#                                                   #"
    echo "#              edit some config files               #"
    echo "#                                                   #"
    echo "#####################################################"
    echo
    
    cat > /etc/nginx/conf.d/default.site.conf << EOF
    server
    {
            listen                  80;
            server_name             default.site;
            root                    /var/web/default.site;
    
            location /
            {
                    include         uwsgi_params;
                    uwsgi_pass      127.0.0.1:8000;
            }
    }
    EOF
    
    cat > /etc/uwsgi.d/default.site.ini << EOF
    [uwsgi]
    
    socket = :8000
    processes = 2
    
    chdir = /var/web/default.site
    home = /var/web/default.site/venv
    wsgi-file = /var/web/default.site/manager.py
    callable = app
    plugins = python3
    
    master = true
    vacuum = true
    EOF
    
    chown uwsgi:uwsgi /etc/uwsgi.d/*
    
    cat > /var/web/default.site/manager.py << EOF
    #!/usr/bin/env python3
    
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
            return "<span style='color:red'>Flask is running...</span>\n"
    EOF
    
    reboot
    
    4 条回复    2016-02-02 10:00:16 +08:00
    fyyz
        1
    fyyz  
    OP
       2016-02-01 21:39:50 +08:00
    一楼自己占了,收金币
    wolfan
        2
    wolfan  
       2016-02-01 21:46:43 +08:00 via Android
    送铜币
    rootit
        3
    rootit  
       2016-02-02 09:07:34 +08:00
    setenforce 0 即时生效 disabele selinux
    rim99
        4
    rim99  
       2016-02-02 10:00:16 +08:00
    挺好 收了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.