Note that there are some explanatory texts on larger screens.

plurals
  1. POapache2 and mod wsgi : Target WSGI script cannot be loaded as Python module
    primarykey
    data
    text
    <p>I am trying to install mod_wsgi on apache2, on ubuntu. So I install libapache2-mod-wsgi package, I activate him with a2enmod.</p> <p>I got a web site (languageAnalyz), that I am trying to use with mod_wsgi. When I call localhost/languageAnalyz, I got an error 500.</p> <p>In apache2 log, I can see this :</p> <pre><code>[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): Target WSGI script '/var/www/languageAnalyz/test-wsgi.py' cannot be loaded as Python module. [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/test-wsgi.py' ignored. [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] Traceback (most recent call last): [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/test-wsgi.py", line 10, in &lt;module&gt; [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] WSGIServer(app).run() [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi.py", line 112, in run [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] sock = self._setupSocket() [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 997, in _setupSocket [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] req.run() [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 572, in run [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] self._end(appStatus, protocolStatus) [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 601, in _end [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] sys.exit(appStatus) [Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] SystemExit: 0 </code></pre> <p>I googled this error, and I find lot of solutions (most of the times for Django project). What I undsertand, is that I need to create a <code>__init__.py</code> file. What I did, here is my <code>__init__.py</code> file :</p> <pre><code>__all__ = ['app','get_size_dir','get_nbrf_dir','getStats'] #name of my functions import index # my three python files import analyz import test-wsgi </code></pre> <p>In the <code>__all__</code> list, this is the name of the functions in the three files. I am just trying to launch test-wsgi.py, and get the same error 500.</p> <p>Here is my test-wsgi.py file :</p> <pre><code>import os,sys sys.path.append(os.path.dirname(__file__)) from cgi import escape,parse_qs from flup.server.fcgi import WSGIServer def app(environ, start_response): start_response('200 OK',[('Content-Type','text/plain; charset=utf-8')]) yield "hello world!" WSGIServer(app).run() </code></pre> <p>So what's wrong ? Thank you,</p> <p>Edit : here is my apache2 conf :</p> <pre><code>WSGIPythonPath /var/www/languageAnalyz &lt;VirtualHost *:80&gt; ... &lt;Directory /var/www/languageAnalyz/&gt; Options +Indexes ExecCGI FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all DirectoryIndex index.py SetHandler wsgi-script &lt;/Directory&gt; ... &lt;/VirtualHost&gt; </code></pre> <p>Edit_bis : So I try to do as I read on django doc. I change my apache2 conf to :</p> <pre><code>WSGIPythonPath /var/www/languageAnalyz &lt;VirtualHost *:80&gt; ... WSGIScriptAlias /IPA /var/www/languageAnalyz/testwsgi.py &lt;Directory /var/www/languageAnalyz/&gt; Options +Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all DirectoryIndex testwsgi.py &lt;/Directory&gt; ... &lt;/VirtualHost&gt; </code></pre> <p>I restart apache2, and I got the same error, and one more before :</p> <pre><code>[Sun Aug 25 12:47:18 2013] [notice] caught SIGTERM, shutting down [Sun Aug 25 12:47:19 2013] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/lib/apache2/suexec) [Sun Aug 25 12:47:19 2013] [notice] FastCGI: process manager initialized (pid 7879) [Sun Aug 25 12:47:19 2013] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads. [Sun Aug 25 12:47:19 2013] [notice] mod_python: using mutex_directory /tmp [Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Compiled for Python/2.7.3. [Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Runtime using Python/2.7.4. [Sun Aug 25 12:47:19 2013] [notice] Apache/2.2.22 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 PHP/5.4.9-4ubuntu2.2 mod_python/3.3.1 Python/2.7.4 mod_ruby/1.2.6 Ruby/1.8.7(2012-02-08) mod_wsgi/3.4 configured$ [Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI! [Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_NAME required by WSGI! [Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PORT required by WSGI! [Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI! [Sun Aug 25 12:47:19 2013] [error] Status: 200 OK\r [Sun Aug 25 12:47:19 2013] [error] Content-Type: text/plain; charset=utf-8\r [Sun Aug 25 12:47:19 2013] [error] \r [Sun Aug 25 12:47:19 2013] [error] hello world! [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): Target WSGI script '/var/www/languageAnalyz/testwsgi.py' cannot be loaded as Python module. [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/testwsgi.py' ignored. [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] Traceback (most recent call last): [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/testwsgi.py", line 10, in &lt;module&gt; [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] WSGIServer(app).run() [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi.py", line 112, in run [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] sock = self._setupSocket() [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 997, in _setupSocket [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] req.run() [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 572, in run [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] self._end(appStatus, protocolStatus) [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 601, in _end [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] sys.exit(appStatus) [Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] SystemExit: 0 </code></pre> <p>Edit_ter :</p> <p>Ok, I just successfully launch testwsgi.py. I change my app function into application, and I add some lines at the end :</p> <pre><code>if __name__ == '__main__': from wsgiref.simple_server import make_server server = make_server('localhost', 8080, application) server.serve_forever() </code></pre> <p>I event don't know, why it's working, why it was not working before. ... And now I got some problem to open files, with their path (config files, or templates files ...)</p> <pre><code>[Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/analyz.py", line 22, in getStats [Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1] flangs=open('config/languages.yml') </code></pre> <p>I try with absolute path, it didn't work too ...</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload