2013-06-29 2 views
1

(извините кулака вопрос еще не ответил ничего, я доберусь до него!)Внутренняя ошибка сервера Apache и WSGI (с колба)

Я пытаюсь настройки Колба с Apache2 и mod_wsgi в убунту 12,04 виртуальной машина, в основном, чтобы я знал, как это сделать в будущем, когда я прихожу к развертыванию приложения Flask. Просто так, что вы, ребята, знаете, я новичок в Python и Flask, но я знаком с PHP и, как следствие, с общей практикой программирования.

Я следую за this tutorial, чтобы установить колбу. Я успешно настроили тест приложения определено в руководстве, однако при попытке установки существующего приложения с помощью учебника я получаю следующее сообщение об ошибке:

Internal Server Error 
    The server encountered an internal error and was unable to complete your request.  
    Either the server is overloaded or there is an error in the application. 

Вот мой файл app.py, я подозреваю, что есть ошибка здесь, но я не могу ее найти, я добавил в код запуска приложения из учебника. В надежде, что это сработает, но это не так, я получил ту же ошибку, и я никогда не мог получить журнал ошибок, поэтому я переключился на «app.run()», и когда я перезапустить Apache я получаю журнал ошибок:

import flask 
import settings 

# Views 
from main import Main 
from login import Login 
from remote import Remote 
from music import Music  

app = flask.Flask(__name__) 
app.secret_key = settings.secret_key 

# Routes 
app.add_url_rule('/', 
       view_func=Main.as_view('main'), 
       methods=["GET"]) 
app.add_url_rule('/<page>/', 
       view_func=Main.as_view('page'), 
       methods=["GET"]) 
app.add_url_rule('/login/', 
       view_func=Login.as_view('login'), 
       methods=["GET", "POST"]) 
app.add_url_rule('/remote/', 
       view_func=Remote.as_view('remote'), 
       methods=['GET', 'POST']) 
app.add_url_rule('/music/', 
       view_func=Music.as_view('music'), 
       methods=['GET']) 

@app.errorhandler(404) 
def page_not_found(error): 
    return flask.render_template('404.html'), 404 

#app.debug = True 
app.run() 

#if __name__ == '__main__': 
    #"Are we in the __main__ scope? Start test server." 
    #app.run(host='0.0.0.0',port=5000,debug=True) 

а вот файл error.log, который возвращается. Я прочитал его б

[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] mod_wsgi (pid=5739): Target WSGI script '/home/carwyn/public_html/wsgi/learningflask.wsgi' cannot be loaded as Python module. 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] mod_wsgi (pid=5739): Exception occurred processing WSGI script '/home/carwyn/public_html/wsgi/learningflask.wsgi'. 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/home/carwyn/public_html/wsgi/learningflask.wsgi", line 3, in <module> 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  from app import app as application 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/home/carwyn/public_html/apps/learningflask/app.py", line 35, in <module> 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  app.run() 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 772, in run 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  run_simple(host, port, self, **options) 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 710, in run_simple 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  inner() 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 692, in inner 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  passthrough_errors, ssl_context).serve_forever() 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 436, in serve_forever 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  HTTPServer.serve_forever(self) 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] File "/usr/lib/python2.7/SocketServer.py", line 225, in serve_forever 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1]  r, w, e = select.select([self], [], [], poll_interval) 
[Sat Jun 29 11:59:23 2013] [error] [client 127.0.0.1] error: (4, 'Interrupted system call') 

Если вам нужна дополнительная информация, то я был бы рад предоставить это, я был бы признателен за всю помощь, которую я могу получить.

EDIT:

Вот мой learningflask.wsgi файл:

import sys 
sys.path.insert(0, '/home/carwyn/public_html/apps/learningflask') 
from app import app as application 

А вот мои доступные сайты апач файл-вещь (так называемый learningflask), это в значительной степени просто следует учебник один, но устанавливается для обучающей программе:

<VirtualHost *:8081> 

     # ---- Configure VirtualHost Defaults ---- 

    ServerAdmin [email protected] 

     DocumentRoot /home/carwyn/public_html/http/learningflask/ 

     <Directory /> 
       Options FollowSymLinks 
       AllowOverride None 
     </Directory> 

     <Directory /home/carwyn/public_html/http/learningflask/> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride None 
       Order allow,deny 
       allow from all 
     </Directory> 

     # ---- Configure WSGI Listener(s) ---- 

     WSGIDaemonProcess learningflask user=www-data group=www-data threads=5 
     WSGIScriptAlias /learningflask /home/carwyn/public_html/wsgi/learningflask.wsgi 

     <Directory /home/carwyn/public_html/http/learningflask> 
       WSGIProcessGroup learningflask 
       WSGIApplicationGroup %{GLOBAL} 
       Order deny,allow 
       Allow from all 
     </Directory> 

     # ---- Configure Logging ---- 

    ErrorLog /home/carwyn/public_html/logs/error.log 
    LogLevel warn 
    CustomLog /home/carwyn/public_html/logs/access.log combined 

</VirtualHost> 

ВТОРОЙ EDIT:

Надеюсь, это поможет, я удалил app.run и перезагрузил страницу, и я получил ошибку. Затем я просмотрел свой ранее очищенный журнал ошибок и ничего не получил. Поэтому я перезапущен апач и посмотрел в моем журнале ошибок, и я получаю это:

[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=5908): Target WSGI script '/home/carwyn/public_html/wsgi/learningflask.wsgi' cannot be loaded as Python module. 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=5908): Exception occurred processing WSGI script '/home/carwyn/public_html/wsgi/learningflask.wsgi'. 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/home/carwyn/public_html/wsgi/learningflask.wsgi", line 3, in <module> 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  from app import app as application 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/home/carwyn/public_html/apps/learningflask/app.py", line 35, in <module> 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  #app.run() 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 772, in run 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  run_simple(host, port, self, **options) 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 710, in run_simple 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  inner() 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 692, in inner 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  passthrough_errors, ssl_context).serve_forever() 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 436, in serve_forever 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  HTTPServer.serve_forever(self) 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] File "/usr/lib/python2.7/SocketServer.py", line 225, in serve_forever 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1]  r, w, e = select.select([self], [], [], poll_interval) 
[Sat Jun 29 21:33:19 2013] [error] [client 127.0.0.1] error: (4, 'Interrupted system call') 

ответ

0

Вы не должны называть:

app.run() 

Это начинает собственный сервер HTTP КОЛБЫ в рамках процесса Apache.

Была причина, по которой он находился внутри оператора if(), проверяя, было ли __name__ «__main__». Это было связано с тем, что он вызывается только при запуске скрипта из интерпретатора Python из командной строки. Вы не хотите, чтобы он запускался под Apache.

+0

Когда я удалить app.run полностью я получаю следующее сообщение об ошибке: Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо есть ошибка в приложении. Так что я понятия не имею, что происходит за пределами этого. Есть ли еще отладочная информация, которую я могу предоставить? –

+0

Надеюсь, это поможет, я удалил app.run и перезагрузил страницу, и я получаю сообщение об ошибке.Затем я просмотрел свой ранее очищенный журнал ошибок и ничего не получил. Поэтому я перезапустил apache и посмотрел в свой журнал ошибок, и я получаю кучу ошибок, которые я добавил к основному сообщению внизу. –

+0

В вашей ошибке указано, что вы изменили код, но не перезапустили Apache должным образом, как и та же ошибка, но получили фрагменты кода из измененного файла на диске. Попробуйте сделать полную остановку и запустить Apache, чтобы убедиться, что код перезагружен. –

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