Hello,

Interesting.  I don't see anything of consequence in the Apache config
regarding CGI (unless I shouldn't be loading mod_cgi?)

a...@mmdev0:~/www/cgi-bin/foobar$ grep -rn cgi /etc/apache2/*|grep -v
sites-available
/etc/apache2/apache2.conf:145:#ErrorDocument 404 "/cgi-bin/
missing_handler.pl"
/etc/apache2/apache2.conf:202:DirectoryIndex index.html index.cgi
index.pl index.php index.xhtml
/etc/apache2/apache2.conf:339:# To use CGI scripts outside /cgi-bin/:
/etc/apache2/apache2.conf:341:#AddHandler cgi-script .cgi
/etc/apache2/mods-available/cgid.conf:2:ScriptSock /var/run/apache2/
cgisock
/etc/apache2/mods-available/cgi.load:1:LoadModule cgi_module /usr/lib/
apache2/modules/mod_cgi.so
/etc/apache2/mods-available/cgid.load:1:LoadModule cgid_module /usr/
lib/apache2/modules/mod_cgid.so
/etc/apache2/mods-enabled/cgi.load:1:LoadModule cgi_module /usr/lib/
apache2/modules/mod_cgi.so
/etc/apache2/sites-enabled/000-default:6:    WSGIScriptAlias /foobar /
var/www/aj/cgi-bin/foobar/baz.py


So on your suggestion, I moved the script to a different location:
mmdev0:/var/www/aj/foobar# ll
total 4
-rwxr-xr-x  1 root root 253 Mar  6 16:12 baz.py

Here's the new Apache config:
a...@mmdev0:~/www/foobar$ cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmas...@localhost
    DocumentRoot /var/www/

    #WSGIScriptAlias /foobar /var/www/aj/cgi-bin/foobar/baz.py
    WSGIScriptAlias /foobar /var/www/aj/foobar/baz.py

    CustomLog /var/log/apache2/access.log combined
    ErrorLog /var/log/apache2/error.log
    LogLevel info

</VirtualHost>

And the results in the log:
[Fri Mar 06 16:15:44 2009] [notice] SIGHUP received.  Attempting to
restart
[Fri Mar 06 16:15:45 2009] [warn] mod_wsgi: Compiled for Python/2.4.4.
[Fri Mar 06 16:15:45 2009] [warn] mod_wsgi: Runtime using Python/
2.4.1.
[Fri Mar 06 16:15:45 2009] [warn] mod_wsgi: Python module path '/usr/
lib/python24.zip:/usr/lib/python2.4/:/usr/lib/python2.4/plat-linux2:/
usr/lib/python2.4/lib-tk:/usr/lib/python2.4/lib-dynload'.
[Fri Mar 06 16:15:45 2009] [notice] Apache/2.0.54 (Debian GNU/Linux)
PHP/5.2.0-8+etch7~bpo.1 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_wsgi/2.1-
BRANCH Python/2.4.1 configured -- resuming normal operations

==> /var/log/apache2/access.log <==
10.10.88.182 - - [06/Mar/2009:16:16:04 -0600] "GET /foobar HTTP/1.1"
200 12 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:
1.9.0.6) Gecko/2009011913 Firefox/3.0.6"

==> /var/log/apache2/error.log <==
[Fri Mar 06 16:16:04 2009] [info] [client 10.10.88.182] mod_wsgi
(pid=3758, process='', application='mmdev0.onr.chicago.hostway|/
foobar'): Loading WSGI script '/var/www/aj/foobar/baz.py'.


So it works now...but still baffled about the significance of the
directory being named cgi-bin when there are no other script aliases
defined?  So I disabled the cgi module, and restarted again (all other
things equal), and the test script works in it's current spot.  I then
revert back to the original WSGIScriptAlias and location in cgi-bin,
reload Apache, and *now* I get prompted to download the .py file.  So
there's definitely some dependency on "default" settings in mod_cgi.
Still not satisfied with my findings.

So here's a new configuration I tried:
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmas...@localhost
    DocumentRoot /var/www/

    WSGIScriptAlias /foobar /var/www/aj/cgi-bin/foobar/baz.py
    #WSGIScriptAlias /foobar /var/www/aj/foobar/baz.py

    <Directory /var/www/aj/cgi-bin/foobar>
    SetHandler wsgi-script
    </Directory>

    CustomLog /var/log/apache2/access.log combined
    ErrorLog /var/log/apache2/error.log
    LogLevel info

</VirtualHost>

It seems that using the SetHandler directive in conjunction with a
WSGIScriptAlias permits the use of the cgi-bin directory.  This logs
the following:
[Fri Mar 06 16:23:27 2009] [notice] SIGHUP received.  Attempting to
restart
[Fri Mar 06 16:23:27 2009] [warn] mod_wsgi: Compiled for Python/2.4.4.
[Fri Mar 06 16:23:27 2009] [warn] mod_wsgi: Runtime using Python/
2.4.1.
[Fri Mar 06 16:23:27 2009] [warn] mod_wsgi: Python module path '/usr/
lib/python24.zip:/usr/lib/python2.4/:/usr/lib/python2.4/plat-linux2:/
usr/lib/python2.4/lib-tk:/usr/lib/python2.4/lib-dynload'.
[Fri Mar 06 16:23:27 2009] [notice] Apache/2.0.54 (Debian GNU/Linux)
PHP/5.2.0-8+etch7~bpo.1 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_wsgi/2.1-
BRANCH Python/2.4.1 configured -- resuming normal operations

==> /var/log/apache2/access.log <==
10.10.88.182 - - [06/Mar/2009:16:23:29 -0600] "GET /foobar HTTP/1.1"
200 12 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:
1.9.0.6) Gecko/2009011913 Firefox/3.0.6"

==> /var/log/apache2/error.log <==
[Fri Mar 06 16:23:29 2009] [info] [client 10.10.88.182] mod_wsgi
(pid=28984, process='', application='mmdev0.onr.chicago.hostway|/
foobar'): Loading WSGI script '/var/www/aj/cgi-bin/foobar/baz.py'.

Fine. Wonder what happens when I re-enable those other two modules?

[Fri Mar 06 16:26:19 2009] [notice] SIGHUP received.  Attempting to
restart
[Fri Mar 06 16:26:19 2009] [notice] mod_python: Creating 8 session
mutexes based on 20 max processes and 0 max threads.
[Fri Mar 06 16:26:19 2009] [notice] mod_python: using mutex_directory /
tmp
[Fri Mar 06 16:26:20 2009] [warn] mod_wsgi: Compiled for Python/2.4.4.
[Fri Mar 06 16:26:20 2009] [warn] mod_wsgi: Runtime using Python/
2.4.1.
[Fri Mar 06 16:26:20 2009] [warn] mod_wsgi: Python module path '/usr/
lib/python24.zip:/usr/lib/python2.4/:/usr/lib/python2.4/plat-linux2:/
usr/lib/python2.4/lib-tk:/usr/lib/python2.4/lib-dynload'.
[Fri Mar 06 16:26:20 2009] [notice] Apache/2.0.54 (Debian GNU/Linux)
mod_python/3.3.1 Python/2.4.1 PHP/5.2.0-8+etch7~bpo.1 mod_ssl/2.0.54
OpenSSL/0.9.7e mod_wsgi/2.1-BRANCH configured -- resuming normal
operations

==> /var/log/apache2/access.log <==
10.10.88.182 - - [06/Mar/2009:16:26:23 -0600] "GET /foobar HTTP/1.1"
200 12 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:
1.9.0.6) Gecko/2009011913 Firefox/3.0.6"

==> /var/log/apache2/error.log <==
[Fri Mar 06 16:26:24 2009] [info] [client 10.10.88.182] mod_wsgi
(pid=12565, process='', application='mmdev0.onr.chicago.hostway|/
foobar'): Loading WSGI script '/var/www/aj/cgi-bin/foobar/baz.py'.

Still works.  Guess that's the magic formula?

Eventually I will completely migrate off of and disable mod_python but
for a period of time, I will have to maintain both.  It sounds like
you've seen issues with this though?  Maybe I'll have to migrate a
server at a time...rather than a virt host at a time?


Thanks,
-aj


On Mar 6, 4:07 pm, Graham Dumpleton <[email protected]>
wrote:
> You haven't mentioned about the AddHandler directive.
>
> Not that it matters, the actual problem is probably more to do with
> fact that you stuck the .py file in the CGI bin directory. I didn't
> catch that before.
>
> So, put the .py script in a different directory.
>
> That or show me how the cgi-bin directory is configured.
>
> In short, you need to stop script being run as CGI script.
>
> Graham
>
> 2009/3/7 aj <[email protected]>:
>
>
>
> > Hi Graham,
>
> > Thanks for the suggestions.  I disabled mod_python as you recommended
> > and restarted Apache.  I then found a pesky .htaccess file in a higher
> > directory that had some mod_python handler directives, so I removed it
> > too.  Now I'm back to square one:
>
> > [Fri Mar 06 16:01:27 2009] [notice] SIGHUP received.  Attempting to
> > restart
> > [Fri Mar 06 16:01:28 2009] [warn] mod_wsgi: Compiled for Python/2.4.4.
> > [Fri Mar 06 16:01:28 2009] [warn] mod_wsgi: Runtime using Python/
> > 2.4.1.
> > [Fri Mar 06 16:01:28 2009] [warn] mod_wsgi: Python module path '/usr/
> > lib/python24.zip:/usr/lib/python2.4/:/usr/lib/python2.4/plat-linux2:/
> > usr/lib/python2.4/lib-tk:/usr/lib/python2.4/lib-dynload'.
> > [Fri Mar 06 16:01:28 2009] [notice] Apache/2.0.54 (Debian GNU/Linux)
> > PHP/5.2.0-8+etch7~bpo.1 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_wsgi/2.1-
> > BRANCH Python/2.4.1 configured -- resuming normal operations
>
> > ==> /var/log/apache2/access.log <==
> > 10.10.88.182 - - [06/Mar/2009:16:01:55 -0600] "GET /aj/cgi-bin/foobar/
> > baz.py HTTP/1.1" 500 539 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1;
> > en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6"
>
> > ==> /var/log/apache2/error.log <==
> > [Fri Mar 06 16:01:55 2009] [error] [client 10.10.88.182] (8)Exec
> > format error: exec of '/var/www/aj/cgi-bin/foobar/baz.py' failed
> > [Fri Mar 06 16:01:55 2009] [error] [client 10.10.88.182] Premature end
> > of script headers: baz.py
>
> > Thanks,
> > -aj
>
> > On Mar 6, 3:57 pm, Graham Dumpleton <[email protected]>
> > wrote:
> >> First off disable mod_python loading if you do not really need it as
> >> it can interfere with mod_wsgi and causes crashes in some cases.
>
> >> Second, look through your Apache configuration for:
>
> >>   AddHandler cgi-script .py
>
> >> It looks like CGI is taking precedence and script isn't being handled
> >> by mod_wsgi.
>
> >> Disable that AddHandler line for CGI.
>
> >> Graham
>
> >> 2009/3/7 aj <[email protected]>:
>
> >> > Hello,
>
> >> > I am trying to get a simple example to work with mod_wsgi and having
> >> > issues.  It appears that the WSGIScriptAlias directive is being
> >> > ignored by Apache on startup.  Here are the specifics:
>
> >> > # server configuration
> >> > cat /etc/apache2/sites-enabled/000-default
> >> > NameVirtualHost *:80
> >> > <VirtualHost *:80>
> >> >    ServerAdmin webmas...@localhost
> >> >    DocumentRoot /var/www/
>
> >> >    WSGIScriptAlias /foobar /var/www/aj/cgi-bin/foobar/baz.py
>
> >> >    CustomLog /var/log/apache2/access.log combined
> >> >    ErrorLog /var/log/apache2/error.log
> >> >    LogLevel info
>
> >> > </VirtualHost>
>
> >> > # request, error log
> >> > [Fri Mar 06 15:39:39 2009] [notice] SIGHUP received.  Attempting to
> >> > restart
> >> > [Fri Mar 06 15:39:39 2009] [notice] mod_python: Creating 8 session
> >> > mutexes based on 20 max processes and 0 max threads.
> >> > [Fri Mar 06 15:39:39 2009] [notice] mod_python: using mutex_directory /
> >> > tmp
> >> > [Fri Mar 06 15:39:40 2009] [warn] mod_wsgi: Compiled for Python/2.4.4.
> >> > [Fri Mar 06 15:39:40 2009] [warn] mod_wsgi: Runtime using Python/
> >> > 2.4.1.
> >> > [Fri Mar 06 15:39:40 2009] [warn] mod_wsgi: Python module path '/usr/
> >> > lib/python24.zip:/usr/lib/python2.4/:/usr/lib/python2.4/plat-linux2:/
> >> > usr/lib/python2.4/lib-tk:/usr/lib/python2.4/lib-dynload'.
> >> > [Fri Mar 06 15:39:40 2009] [notice] Apache/2.0.54 (Debian GNU/Linux)
> >> > mod_python/3.3.1 Python/2.4.1 PHP/5.2.0-8+etch7~bpo.1 mod_ssl/2.0.54
> >> > OpenSSL/0.9.7e mod_wsgi/2.1-BRANCH configured -- resuming normal
> >> > operations
>
> >> > ==> /var/log/apache2/access.log <==
> >> > 10.10.88.182 - - [06/Mar/2009:15:39:44 -0600] "GET /aj/cgi-bin/foobar/
> >> > baz.py HTTP/1.1" 500 539 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1;
> >> > en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6"
>
> >> > ==> /var/log/apache2/error.log <==
> >> > [Fri Mar 06 15:39:44 2009] [error] [client 10.10.88.182] (8)Exec
> >> > format error: exec of '/var/www/aj/cgi-bin/foobar/baz.py' failed
> >> > [Fri Mar 06 15:39:44 2009] [error] [client 10.10.88.182] Premature end
> >> > of script headers: baz.py
>
> >> > # contents of my test script
> >> > mmdev0:/var/www/aj/cgi-bin/foobar# cat baz.py
> >> > def application(environ, start_response):
> >> >    status = '200 OK'
> >> >    output = 'Hello World!'
>
> >> >    response_headers = [('Content-type', 'text/plain'), ('Content-
> >> > Length', str(len(output)))]
> >> >    start_response(status, response_headers)
>
> >> >    return [output]
>
> >> > # relevant packages
> >> > mmdev0:/var/www/aj/cgi-bin/foobar# COLUMNS=120 dpkg -l|egrep "(apache2|
> >> > python|wsgi)"|grep -v none
> >> > ii  apache2                  2.0.54-5sarge2           next generation,
> >> > scalable, extendable web server
> >> > ii  apache2-common           2.0.54-5sarge2           next generation,
> >> > scalable, extendable web server
> >> > ii  apache2-mpm-prefork      2.0.54-5sarge2           traditional
> >> > model for Apache2
> >> > ii  apache2-threaded-dev     2.0.54-5sarge2           development
> >> > headers for apache2
> >> > ii  apache2-utils            2.0.54-5sarge2           utility programs
> >> > for webservers
> >> > ii  hw-mod-wsgi              0.1-7                    hostway
> >> > packaging of mod_wsgi
> >> > ii  hwcsi-hwm                1.22.7                   Hostway python
> >> > library modules
> >> > ii  libapache2-mod-perl2     1.999.21-1               Integration of
> >> > perl with the Apache2 web server
> >> > ii  libapache2-mod-php5      5.2.0-8+etch7~bpo.1      server-side,
> >> > HTML-embedded scripting language (apache 2 module)
> >> > ii  libapache2-mod-python    3.3.1-1hw1               Apache 2 module
> >> > that embeds Python within the server
> >> > ic  libapache2-mod-python2.3 3.1.3-hw3                An Apache 2
> >> > module that embeds Python 2.3 within the server
> >> > ii  python                   2.3.5-2                  An interactive
> >> > high-level object-oriented language (default vers
> >> > ii  python-gnuplot           1.7-5                    A Python
> >> > interface to the gnuplot plotting program
> >> > ii  python-numeric           23.8-1                   Numerical
> >> > (matrix-oriented) Mathematics for Python
> >> > ii  python-soappy            0.11.3-1                 SOAP Support for
> >> > Python (SOAP.py)
> >> > ii  python2.3                2.3.5-3sarge2hw0         An interactive
> >> > high-level object-oriented language (version 2.3)
> >> > ii  python2.3-crypto         2.0+dp1-2                cryptographic
> >> > algorithms and protocols for Python
> >> > ii  python2.3-dev            2.3.5-3sarge2hw0         Header files and
> >> > a static library for Python (v2.3)
> >> > ii  python2.3-ldap           2.0.4-1                  A LDAP interface
> >> > module for Python 2.3
> >> > ii  python2.3-mysqldb        1.2.1c2-1hw1             A Python
> >> > interface to MySQL
> >> > ii  python2.3-numeric        23.8-1                   Numerical
> >> > (matrix-oriented) Mathematics for Python
> >> > ii  python2.3-omniorb2       2.6-1                    omniORBpy2 -
> >> > python 2.3
> >> > ii  python2.3-omniorb2-omg   2.6-1                    omniORBpy2 -
> >> > python 2.3 CORBA OMG standard files
> >> > ii  python2.3-pyopenssl      0.6-2                    Python wrapper
> >> > around the OpenSSL library
> >> > ii  python2.3-xml            0.8.4-1                  XML tools for
> >> > Python (2.3.x)
> >> > ii  python2.4                2.4.1-2sarge1hw1         An interactive
> >> > high-level object-oriented language (version 2.4)
> >> > ii  python2.4-dev            2.4.1-2sarge1hw1         Header files and
> >> > a static library for Python (v2.4)
> >> > ii  python2.4-ldap           2.0.4                    A LDAP interface
> >> > module for Python 2.4
> >> > ii  python2.4-libxml2        2.6.16-7sarge1           Python 2.4
> >> > bindings for the GNOME XML library
> >> > ii  python2.4-mysqldb        1.2.1c2-1hw1             A Python
> >> > interface to MySQL
> >> > ii  python2.4-omniorb2       2.6-1                    omniORBpy2 -
> >> > python 2.4
> >> > ii  python2.4-omniorb2-omg   2.6-1                    omniORBpy2 -
> >> > python 2.4 CORBA OMG standard files
> >> > ii  python2.4-pydb2          1.1.2-hw12               IBM DB2 Python
> >> > wrapper
> >> > ii  python2.4-pyltxml        1.3                      Python interface
> >> > for LT XML
> >> > ii  python2.4-pyopenssl      0.6-2                    Python wrapper
> >> > around the OpenSSL library
> >> > ii  python2.4-xml            0.8.4-1                  XML tools for
> >> > Python (2.4.x)
>
> >> > Thanks in advance for help!
> >> > -aj
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to