2017-08-31 5 views
-1

J'essaie de visualiser mon application Flask sur un serveur RHEL7 Apache 2.4. structure de fichier est la suivante à l'intérieur /var/www/htmlProblèmes de déploiement de l'application Flask sur Apache 2.4

/app 
app.wsgi 
    /app 
    app.py 
    /templates 
    /static 

Dans mon /etc/httpd/conf/httpd.conf je le code suivant pour mettre en place mon projet:

<VirtualHost *> 
     ServerName 10.65.112.75:443 
     WSGIDaemonProcess app user=apache group=apache threads=5 home=/var/www/html/app/app 
     WSGIScriptAlias//var/html/app/app.wsgi 

<Directory /var/www/html/app/app/> 
     WSGIProcessGroup app 
     WSGIApplicationGroup %{GLOBAL} 
     WSGIScriptReloading On 
     Order deny,allow 
     Require all granted 
</Directory> 
     Alias /static /var/www/html/app/app/static/ 
<Directory /var/www/html/app/app/static/> 
     Order deny,allow 
     Require all granted 
</Directory> 

Et mon app.wsgi contient les éléments suivants:

#!/usr/bin/python 
import sys 
sys.path.insert(0, "/var/www/html/app/app/") 
from app import app as application 

Le code du projet lui-même peut être trouvé dans mon dépôt github here.

Je n'obtiens aucune erreur lorsque j'essaie de naviguer sur le serveur. Cela ne fait rien. Exécuter mon script à partir du terminal fonctionne, cependant.

Merci pour l'aide.

Répondre

0

Il y a plusieurs choses qui ne vont pas.

Vous avez:

WSGIScriptAlias//var/html/app/app.wsgi 

alors qu'il semble qu'il devrait être:

WSGIScriptAlias//var/www/html/app/app.wsgi 

Et:

<Directory /var/www/html/app/app/> 

semble qu'il devrait être:

<Directory /var/www/html/app> 

Votre définition de VirtualHost semble également incorrecte. Vous avez:

<VirtualHost *> 
    ServerName 10.65.112.75:443 

Si vous voulez vraiment que ce soit pour les connexions HTTPS, vous manquez toutes les directives SSL pour ajouter un certificat SSL.

ServerName est généralement un nom de domaine complet et non un IP: PORT. Le numéro de port se trouve généralement dans la directive VirtualHost. Par exemple, pour HTTP, utilisez:

<VirtualHost *:80> 
    ServerName my.host.name 

my.host.name est le nom d'hôte complet du public pour votre machine que vous utilisez dans l'URL, pas une adresse IP.

+0

Merci pour votre aide. J'ai fait les changements et j'ai quitté ServerName parce que je n'ai pas de domaine à utiliser. Lorsque j'essaie d'accéder au site via l'adresse IP de mon navigateur, il ne parvient pas à se connecter, lorsque j'utilise https, il me dit que je n'ai pas le droit d'accéder au site. J'ai défini Exiger tout dans mon précédemment. – Huel

+0

Avez-vous également supprimé le '' ''? Y a-t-il d'autres définitions '' VirtualHost'' dans la configuration principale d'Apache ou des fichiers de sites? Si vous n'utilisez pas de nom d'hôte et qu'il existe d'autres définitions '' VirtualHost'', Apache utilisera par défaut le premier qu'il trouve. –

+0

Nous avons trouvé le problème: je n'ai pas dit au serveur d'écouter sur le port 80 donc j'ai ajouté 'Listen 12.34.56.78: 80'.Puisque nous voulons que ce soit https je dois comprendre comment ajouter les directives pour les certificats que nous avons déjà! Merci beaucoup pour l'aide, cependant! – Huel