$ sudo su
$ yum install httpd
$ chkconfig httpd on
$ service httpd start
$ service httpd status #Confirmation
$ yum install mod_wsgi # mod_installation wsgi
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py
$ pip install virtualenv
$ mkdir /var/www/myapp
$ cd /var/www/myapp
$ virtualenv venv #Créer un environnement virtualenv
$ source venv/bin/activate #virtualenv activé
$ pip install flask #installation du ballon
$ touch app.py #Créer un dossier de candidature
$ touch app.wsgi #Créer un dossier de candidature
app.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def hello():
return jsonify("Hello World!"), 201
if __name__ == "__main__":
app.run()
app.wsgi
import os
import sys
DIR=os.path.dirname(__file__)
sys.path.append(DIR)
activate_this = os.path.join(DIR, 'venv/bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
from app import app as application
La structure finale du fichier est la suivante
$ tree -L 2
.
├── app.py
├── app.wsgi
└── venv
├── bin
├── lib
├── lib64
└── pyvenv.cfg
$ vi /etc/httpd/conf/httpd.conf
Ajoutez la ligne suivante
Listen 8888
Lorsque j'ajoute le port 8888 et redémarre Apache, j'obtiens l'erreur suivante
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:8888
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:8888
Ajouter un port avec selinux Référence http://hetarena.com/archives/495
$ semanage port -a -t http_port_t -p tcp 8888
$ vi /etc/httpd/conf.d/myenv.conf
myenv.conf
<VirtualHost *:8888>
WSGIDaemonProcess wsgi_flask user=apache group=apache threads=10
WSGIScriptAlias / /var/www/myapp/app.wsgi
WSGIScriptReloading On
<Directory "/var/www/myapp">
WSGIProcessGroup wsgi_flask
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
--Vérifiez le fichier de configuration
$ apachectl configtest
https://deep-blog.jp/engineer/12317/
$ service httpd graceful
$ sudo su
$ rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
$ yum install mysql-community-server
$ service mysqld start
$ service mysqld status #Confirmation
$ sudo su
$ tail /var/log/mysqld.log #Vérifier le mot de passe du journal
$ mysql -uroot
$ mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YQM3rCyae8Ft?';
Référence https://dev.classmethod.jp/articles/how-to-serve-flask-with-apache-mod_wsgi-virtualenv-on-ec2/
Recommended Posts