So, it looks like it is definitely is an issue when I have my PHP configuration loaded with my WSGI configuration. If I disable the PHP configuration my WSGI app works fine. If I enable the PHP configuration I get the "premature" error in the apache log.
Any suggestions based on my configuration how I would go about setting up both PHP and WSGI to run within the same apache instance? Thanks. KJQ On Jan 25, 1:43 pm, KJQ <[email protected]> wrote: > Wow. I think I may of found it but would like some validation... > > If I strip out PHP from Apache i can get by the issue I posted above. > > Any insight on this from anyone? > > If this is the case, how can I get this run alongside PHP? > > Thanks. > > KJQ > > On Jan 25, 12:59 pm, KJQ <[email protected]> wrote: > > > I can't seem to work through this problem and hopefully, this is the > > right place to be... > > > What has led me to posting this question here is the "premature end of > > headers" I see in the Apache error log when I try to access a Pyramid > > application running under WSGI using MongoDB (I did not get before I > > introduced Mongo and testing direct mongo connections appears to work > > fine so I do not think it is Mongo yet). > > > Once, I introduce mongo (pymongo) and attempt to make a "connection" > > Apache crashes with the message "Premature end of script headers." If > > I try this same connection directly (through a Python app on the > > console) it works fine. If I take out the connection the app appears > > to work fine then also. > > > I've tried created a "test" wsgi script and can mimic the problem my > > application has. > > > Contents below: > > --------------------------------------------------------------------------------------- > > - What i have running under Apache using WSGI > > - Scenarios i've tried: > > - My Apache configuration > > - My mod_wsgi output > > - My "dispatch.wsgi" script > > - My "test.wsgi" script > > - Apache error log > > > I currently have two applications loaded into Apache under a > > VirtualHost: > > --------------------------------------------------------------------------------------- > > - Django (using buildout and sqllite) > > - Pyramid (using buildout and mongodb) > > > Both, even though they use buildout, are wrapped within a VirtualEnv. > > > Scenarios I've tried: > > --------------------------------------------------------------------------------------- > > 1) Crashes: Pyramid application using WSGI with MongoDB. > > 2) Crashes: Direct Connection/query to MongoDB using WSGI (same as > > #1) > > 3) Works: DJango application using WSGI > > 4) Works: Pyramid application using WSGI without MongoDB > > 5) Works: Direct connection/query to MongoDB using Python > > 6) Works: Pylons application using WSGI with sqllite > > > My Apache configuration: > > --------------------------------------------------------------------------------------- > > WSGIPythonEggs /tmp/.python-eggs > > WSGIRestrictEmbedded On > > WSGIPassAuthorization On > > WSGIApplicationGroup %{GLOBAL} > > > AddHandler wsgi-script .wsgi > > > <VirtualHost 0.0.0.0:80> > > ServerName apps.test.com > > DocumentRoot /opt/web/apps.test.com/html > > SuexecUserGroup XXX YYY > > ScriptAlias "/cgi-bin/" "/opt/web/apps.test.com/cgi-bin/" > > CustomLog "/opt/logs/web-access.log" "combined" > > ErrorLog "/opt/logs/web-dev-error.log" > > LogLevel DEBUG > > > WSGIDaemonProcess wsgi-app1 display-name=wsgi:app1 \ > > user=XXX \ > > group=YYY > > > WSGIDaemonProcess wsgi-app2 display-name=wsgi:app2 \ > > user=XXX \ > > group=YYY \ > > processes=1 \ > > threads=4 > > #### App1: Django > > WSGIScriptAlias /app1 /opt/wsgi/app1/bin/django.wsgi > > Alias /app1/static /opt/wsgi/app1-dev/src/web/static > > Alias /app1/media /opt/wsgi/app1-dev/src/web/media > > <Directory /opt/wsgi/app1-dev/src/web/static> > > Order deny,allow > > Allow from all > > </Directory> > > <Directory /opt/wsgi/app1-dev/src/web/media> > > Order deny,allow > > Allow from all > > </Directory> > > <Directory /opt/wsgi/app1-dev> > > Options Includes FollowSymLinks > > Order deny,allow > > Allow from all > > AllowOverride All > > WSGIProcessGroup wsgi-app1 > > </Directory> > > > #### App2: Pyramid > > WSGIScriptAlias /app2 /opt/wsgi/app2-dev/bin/dispatch.wsgi (or my > > test one test.wsgi) > > <Directory /opt/wsgi/app2-dev> > > Options Includes FollowSymLinks > > Order allow,deny > > Allow from all > > AllowOverride All > > WSGIProcessGroup wsgi-app2 > > </Directory> > > </VirtualHost> > > > My mod_wsgi: > > --------------------------------------------------------------------------------------- > > # ldd mod_wsgi.so > > libpython2.7.so.1.0 => /opt/apps/python-2.7/lib/ > > libpython2.7.so.1.0 (0xb7e13000) > > libpthread.so.0 => /lib/libpthread.so.0 (0xb7dfc000) > > libdl.so.2 => /lib/libdl.so.2 (0xb7df8000) > > libutil.so.1 => /lib/libutil.so.1 (0xb7df4000) > > libm.so.6 => /lib/libm.so.6 (0xb7dcd000) > > libc.so.6 => /lib/libc.so.6 (0xb7c88000) > > /lib/ld-linux.so.2 (0xb7fc1000) > > > My 'dispatch.wsgi' script: > > --------------------------------------------------------------------------------------- > > #!/opt/wsgi/sprout-dev/env/bin/python > > > import sys > > sys.path[0:0] = [ > > '/opt/data/buildout/eggs/pyramid-1.0b1-py2.7.egg', > > '/opt/data/buildout/eggs/WebError-0.10.3-py2.7.egg', > > '/opt/data/buildout/eggs/PasteScript-1.7.3-py2.7.egg', > > '/opt/wsgi/sprout-dev/eggs/setuptools-0.6c12dev_r88124-py2.7.egg', > > '/opt/wsgi/sprout-dev/src', > > '/opt/data/buildout/eggs/mongoengine-0.4-py2.7.egg', > > '/opt/data/buildout/eggs/pymongo-1.9-py2.7-linux-i686.egg', > > '/opt/data/buildout/eggs/WebHelpers-1.2-py2.7.egg', > > '/opt/data/buildout/eggs/Mako-0.3.6-py2.7.egg', > > '/opt/data/buildout/eggs/pyramid_zcml-0.1-py2.7.egg', > > '/opt/data/buildout/eggs/pyramid_handlers-0.1-py2.7.egg', > > '/opt/data/buildout/eggs/PasteDeploy-1.3.4-py2.7.egg', > > '/opt/data/buildout/eggs/Paste-1.7.5.1-py2.7.egg', > > '/opt/data/buildout/eggs/Pygments-1.3.1-py2.7.egg', > > '/opt/data/buildout/eggs/Tempita-0.5dev-py2.7.egg', > > '/opt/data/buildout/eggs/WebOb-1.0-py2.7.egg', > > '/opt/data/buildout/eggs/translationstring-0.3-py2.7.egg', > > '/opt/data/buildout/eggs/venusian-0.5-py2.7.egg', > > '/opt/data/buildout/eggs/zope.interface-3.6.1-py2.7-linux- > > i686.egg', > > '/opt/data/buildout/eggs/zope.deprecation-3.4.0-py2.7.egg', > > '/opt/data/buildout/eggs/zope.configuration-3.7.2-py2.7.egg', > > '/opt/data/buildout/eggs/zope.component-3.10.0-py2.7.egg', > > '/opt/data/buildout/eggs/repoze.lru-0.3-py2.7.egg', > > '/opt/data/buildout/eggs/Chameleon-1.2.13-py2.7.egg', > > '/opt/data/buildout/eggs/MarkupSafe-0.11-py2.7-linux-i686.egg', > > '/opt/data/buildout/eggs/zope.schema-3.7.0-py2.7.egg', > > > from pyramid.paster import get_app > > application = get_app('/opt/wsgi/sprout-dev/integration.ini', 'main') > > > import paste.script.command > > > if __name__ == '__main__': > > paste.script.command.run() > > > My 'test.wsgi' script: > > --------------------------------------------------------------------------------------- > > #!/opt/wsgi/sprout-dev/env/bin/python > > > import sys > > sys.path[0:0] = [ > > '/opt/data/buildout/eggs/pyramid-1.0b1-py2.7.egg', > > '/opt/data/buildout/eggs/WebError-0.10.3-py2.7.egg', > > '/opt/data/buildout/eggs/PasteScript-1.7.3-py2.7.egg', > > '/opt/wsgi/sprout-dev/eggs/setuptools-0.6c12dev_r88124-py2.7.egg', > > '/opt/wsgi/sprout-dev/src', > > '/opt/data/buildout/eggs/mongoengine-0.4-py2.7.egg', > > '/opt/data/buildout/eggs/pymongo-1.9-py2.7-linux-i686.egg', > > '/opt/data/buildout/eggs/WebHelpers-1.2-py2.7.egg', > > '/opt/data/buildout/eggs/Mako-0.3.6-py2.7.egg', > > '/opt/data/buildout/eggs/pyramid_zcml-0.1-py2.7.egg', > > '/opt/data/buildout/eggs/pyramid_handlers-0.1-py2.7.egg', > > '/opt/data/buildout/eggs/PasteDeploy-1.3.4-py2.7.egg', > > '/opt/data/buildout/eggs/Paste-1.7.5.1-py2.7.egg', > > '/opt/data/buildout/eggs/Pygments-1.3.1-py2.7.egg', > > '/opt/data/buildout/eggs/Tempita-0.5dev-py2.7.egg', > > '/opt/data/buildout/eggs/WebOb-1.0-py2.7.egg', > > '/opt/data/buildout/eggs/translationstring-0.3-py2.7.egg', > > '/opt/data/buildout/eggs/venusian-0.5-py2.7.egg', > > '/opt/data/buildout/eggs/zope.interface-3.6.1-py2.7-linux- > > i686.egg', > > '/opt/data/buildout/eggs/zope.deprecation-3.4.0-py2.7.egg', > > '/opt/data/buildout/eggs/zope.configuration-3.7.2-py2.7.egg', > > '/opt/data/buildout/eggs/zope.component-3.10.0-py2.7.egg', > > '/opt/data/buildout/eggs/repoze.lru-0.3-py2.7.egg', > > '/opt/data/buildout/eggs/Chameleon-1.2.13-py2.7.egg', > > '/opt/data/buildout/eggs/MarkupSafe-0.11-py2.7-linux-i686.egg', > > '/opt/data/buildout/eggs/zope.schema-3.7.0-py2.7.egg', > > > import sys > > > from mongoengine import * > > > class Sample(Document): > > name = StringField() > > > def application(environ, start_response): > > print('---------------------------------- connecting') > > connect('sample') > > print('---------------------------------- connected') > > > sample1 = Sample(name = 'aaa') > > sample2 = Sample(name = 'bbb') > > sample3 = Sample(name = 'ccc') > > > sample1.save() > > sample2.save() > > sample3.save() > > > for s in Sample.objects: > > print s.name > > > if __name__ == '__main__': > > application(None, None) > > > My Apache error log output: > > --------------------------------------------------------------------------------------- > > [Tue Jan 25 12:26:07 2011] [info] mod_wsgi (pid=22279): Attach > > interpreter ''. > > [Tue Jan 25 12:26:07 2011] [info] mod_wsgi (pid=22280): Attach > > interpreter ''. > > [Tue Jan 25 12:26:11 2011] [info] [client 65.203.93.8] mod_wsgi > > ... > > read more » -- 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.
