2010-12-12 8 views
13

Ich habe ein VPS läuft eine neue Installation von Ubuntu 10.04 LTS. Ich versuche eine Live-Anwendung mit dem Flask-Mikrorahmen einzurichten, aber das bereitet mir Probleme. Ich machte mir Notizen, während ich versuchte, es zum Laufen zu bringen, und hier ist mein Stück für Stück, um genau festzustellen, wo ich falsch gelaufen bin.Sehen Sie etwas falsch mit meinem Versuch, Flask zum Laufen zu bringen? (mod_wsgi + virtualenv)

INSTALLATION

http://flask.pocoo.org/docs/installation/#installation

$ adduser myapp 
$ sudo apt-get install python-setuptools 
$ sudo easy_install pip 
$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 

$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 
-- env/ 

$ . env/bin/activate 
$ easy_install Flask 

mod_wsgi

http://flask.pocoo.org/docs/deploying/mod_wsgi/

$ sudo apt-get install apache2 
$ sudo apt-get install libapache2-mod-wsgi 

Erstellen WSGI Datei

$ nano /home/myapp/www/myapp.wsgi 

--myapp.wsgi contents:-------------------------- 
activate_this = '/home/myapp/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
from myapp import app as application 

/home/myapp/ 
-- www/ 
    -- myapp.wsgi 
-- env/ 

Konfigurieren von Apache

$ nano /etc/apache2/sites-available/myapp.com 

-----myapp.com file contents --------------------- 
<VirtualHost *:80> 
    ServerName myapp.com 

    WSGIDaemonProcess myapp user=myapp group=myapp threads=5 python-path=/home/myapp/env/lib/python2.6/site-packages 

    WSGIScriptAlias//home/myapp/www/myapp.wsgi 

    <Directory /home/myapp/www> 
     WSGIProcessGroup myapp 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 

Aktivieren Sie die virtuelle Host-Datei Ich habe gerade

$ cd /etc/apache2/sites-enabled 
$ ln -s ../sites-available/myapp.com 

Restart Apache

$ /etc/init.d/apache2 restart 

Server mir eine 500-Server-Fehlerseite. Hier ist das neueste Fehlerprotokoll:

Die Fehler spielen darauf an, dass es etwas auffallend offensichtlich ist, aber ich bin ziemlich verloren.

+0

Übrigens, wussten Sie über den Befehl 'Katze'? Es druckt den Inhalt einer Datei aus (in diesem Protokoll würde also automatisch das erzeugt, was Sie aus 'nano' kopiert haben) –

Antwort

8

Offensichtlich kann es Ihr "myapp" Paket nicht finden. Sie sollten es auf den Pfad in Ihrer myapp.wsgi Datei wie folgt hinzu:

import sys 
sys.path.append(DIRECTORY_WHERE_YOUR_PACKAGE_IS_LOCATED) 
from myapp import app 

Auch wenn myapp Modul ein Paket ist, sollten Sie setzen und leere __init__.py Datei in seinem Verzeichnis.

0

Zeile bearbeiten sys.path.append, es muss eine Zeichenfolge sein.

import sys 
sys.path.append('directory/where/package/is/located') 

Hinweis die einfachen Anführungszeichen.