ʻApache` exécute le flux pour exécuter l'application flask.
Avec Werkzeug
, il est assez facile de démarrer, mais
ʻApache+
mod_wsgi` soulève l'obstacle dès qu'il le devient, alors je l'ai résumé grossièrement.
Tous sont pour mac, veuillez donc lire le chemin, etc.
Entrez virtualenv en vous référant à cette zone. http://qiita.com/k2tanaka/items/5f111612ec1b6d7584a6
mkvirtualenv -p ~/.pythonz/pythons/CPython-2.7.6/bin/python2.7 v2.7.6
workon et pip
jusqu'à flask.
workon v2.7.6
pip install flask
Le contenu est très approprié. Pour le moment, avec un minimum d'exemple.
Faites correspondre le chemin du fichier avec la configuration de ʻapache` après cela.
/Users/kuryu/workspace/test/flask
├── app.wsgi
├── app_templates
│ └── index.html
└── main.py
app.wsgi
# -*- coding:utf-8 -*-
import sys, os
import logging
#Requis pour enregistrer Apache
logging.basicConfig(stream = sys.stderr)
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from main import app as application
main.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
from flask import Flask, render_template
from jinja2 import FileSystemLoader
app = Flask(__name__)
#Essayez de changer le répertoire des modèles de jinja2
#Cela n'a pas à être séparé.
#Si omis, la même hiérarchie que ce fichier"templates"devenir.
app.jinja_loader = FileSystemLoader(
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'app_templates')
)
@app.route("/")
def index():
from flask import render_template
return render_template('index.html')
@app.route("/foo")
def foo():
return "foo"
@app.route("/foo/bar")
def foo_bar():
return "foobar"
if __name__ == "__main__":
app.run()
app_templates/index.html
hogehoge
mod_wsgi
Est omis.
Peut-être que si c'est Linux, vous pouvez le saisir avec ʻapt ou
yum, ou il est inclus dans ʻapache
depuis le début.
sur mac
brew tap homebrew/apache
brew install mod_wsgi
fais le
brew info mod_wsgi
Si vous le faites, vous connaîtrez le pass.
Puisque vitualenv est utilisé, spécifiez l'emplacement de python
avec WSGIPythonHome.
flask.conf
## mod_wsgi
LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/3.5/libexec/mod_wsgi.so
WSGIPythonHome /Users/kuryu/.virtualenvs/v2.7.6
WSGIDaemonProcess test user=kuryu group=staff threads=5
WSGIScriptAlias /test /Users/kuryu/workspace/test/flask/app.wsgi
WSGISocketPrefix /var/run/wsgi
<Directory /Users/kuryu/workspace/test/flask>
Options +ExecCGI
SetHandler wsgi-script
AddHandler wsgi-script .wsgi
Order deny,allow
Allow from all
</Directory>
Redémarrer ʻApache`.
sudo apachectl restart
Puisque / test
est spécifié dans WSGIScriptAlias, l'url est comme ceci.
curl localhost/test/
curl localhost/test/foo
curl localhost/test/foo/bar
c'est tout.
90% des causes de désagrément sont «apache» ...
Recommended Posts