2016-08-20 2 views
1

Следующие коды работают без проблем в локальном хосте моей системы ... Но не работает на OpenShift .. Что-то не так с моим wsgi.py .. Есть ли у меня передать мое имя пользователя и пароль с помощью переменных окружения ИЛИ мне нужно изменить localhost?Развертывание колбы в Openshift

Ниже приводится дерево каталогов/хранилище ...

myflaskaws 
├── requirements.txt 
├── setup.py 
├── static 
│   ├── assets 
│   │   ├── style.css 
│   └── images 
│    ├── no.png 
│    └── yes.png 
├── templates 
│   ├── index.html 
│   ├── login.html 
│   ├── searchlist.html 
│   ├── update.html 
├── test.py 
├── test.pyc 
└── wsgi.py` 

wsgi.py

#!/usr/bin/python 
import os 
virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/' 
virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 
try: 
    execfile(virtualenv, dict(__file__=virtualenv)) 
except IOError: 
    pass 
from test import app as application 
if __name__ == '__main__': 
    from wsgiref.simple_server import make_server 
    httpd = make_server('localhost', 8051, application) 
    print("Serving at http://localhost:8051/ \n PRESS CTRL+C to Terminate. \n") 
    httpd.serve_forever() 
    print("Terminated!!") 

test.py

from flask import Flask 
app = Flask(__name__) 

PS: Я не использую "если имя == 'главный':" в test.py

+0

Объясните, как он не работает, какую ошибку вы видите и где. Если '' myflaskaws'' является подкаталогом вашего репо, это не сработает. OpenShift 2 ожидает, что все в этом каталоге окажется в корне репо. Кроме того, для OpenShift 2 статические файлы должны находиться в каталоге '' wsgi/static'', а не '' static'' относительно корня репо. –

+0

@GrahamDumpleton: myflaskaws является APP-NAME .. Вы имеете в виду, что мне нужно переместить static в wsgi (новая папка?) ... Что еще должно быть в папке wsgi? –

+0

Вы еще не объяснили, как он не работает. Где вы видите ошибку, браузер или журналы? Какая ошибка? Или проблема только в том, что css и другая статика не работают? Что касается '' статического ''местоположения, то вы хотите' 'mkdir wsgi; mv static wsgi/''. Попробуйте объяснить, в чем проблема. –

ответ

0

Да, вы должны использовать переменные окружения OpenShift, чтобы установить вверх по IP и порту.

Попробуйте добавить нижеприведенный код, чтобы настроить правильный IP-адрес и порт в зависимости от того, находитесь ли вы в ОС или локальном хосте.

Import os 

if 'OPENSHIFT_APP_NAME' in os.environ:    #are we on OPENSHIFT? 
    ip = os.environ['OPENSHIFT_PYTHON_IP'] 
    port = int(os.environ['OPENSHIFT_PYTHON_PORT']) 
else: 
    ip = '0.0.0.0'       #localhost 
    port = 8051 

httpd = make_server(ip, port, application) 
+0

Порт применим, если не используется встроенный Apache/mod_wsgi, и вы поставляете свой собственный исполняемый веб-сервер/приложение в файле '' app.py''. Они не поставляют файл '' app.py'', но имеют файл '' wsgi.py'', который будет использовать Apache/mod_wsgi. Проблема может заключаться в том, где она находится, но так как объяснения ошибки пока трудно сказать. –

Смежные вопросы