2016-08-20 124 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 ..你的意思是我需要將靜態移動到wsgi(新文件夾?)...還有什麼必須在wsgi文件夾中? –

+0

你還沒有解釋它是如何工作的。你在哪裏看到錯誤,瀏覽器或日誌?什麼是錯誤?或者只是該問題的CSS和其他靜態不工作?至於''static''的位置,你想要的是''mkdir wsgi; mv static wsgi /''。請嘗試解釋第一個問題。 –

回答

0

是的,你確實需要使用Openshift的環境變量設置註冊IP和端口。

嘗試增加在下面的代碼設置,如果你是在OS或本地主機正確的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」文件中提供了您自己的可運行Web服務器/應用程序。他們沒有提供''app.py''文件,但有一個''wsgi.py''文件,這是Apache/mod_wsgi將要使用的文件。問題可能在於它所在的位置,但由於沒有解釋錯誤,所以很難說。 –