Graham Dumpleton
graham.dumpleton at gmail.com
Mon Mar 24 02:30:12 EDT 2008
Please keep the discussion on the mailing list, don't just reply to me. On 24/03/2008, Niklas Saers <niklassaers at gmail.com> wrote: > Thanks Graham, > I compiled it according to your mail from svn, used the configure > statement > > $ ./configure --with-python=/usr/bin/python --with-apxs=/usr/sbin/apxs > $ make > $ sudo make install > > Then I added the line "LoadModule mod_python libexec/apache2/ > mod_python.so" to httpd.conf and put into my virtualhost file Read the documentation properly, the LoadModule line should be: LoadModule python_module libexec/apache2/mod_python.so Graham > <Location /testhandler> > SetHandler mod_python > PythonHandler mod_python.testhandler > </Location> > > However, when I launch apache now, I get: > > httpd: Syntax error on line 115 of /private/etc/apache2/httpd.conf: > Can't locate API module structure `mod_python' in file /usr/libexec/ > apache2/mod_python.so: dlsym(0x10f7a0, mod_python): symbol not found > > If I do not add the LoadModule statement, I get a 404 for the / > testhandler. > > Do you have any suggestions as to what I'm doing wrong? I'm running > Leopard with the latest updates. > > Cheers > > Nik > > > On Mar 23, 2008, at 11:48 PM, Graham Dumpleton wrote: > > > Please try source from subversion for mod_python instead. Should work > > without you needing to rename existing framework directory. See: > > > > http://www.modpython.org/pipermail/mod_python/2008-March/024954.html > > > > You will still need --with-apxs and --with-python commands. > > > > Graham > > > > On 24/03/2008, Jeffrey A. Zelt <jeffreyz at broadpark.no> wrote: > >> I had trouble building mod-pyhon 3.3.1 on Mac OS X 10.5.2 (Leopard), > >> so I thought I would share the solution here. > >> > >> I have installed Python 2.5.2 into /usr/local (to use instead of > >> Leopard's default 2.5.1 distribution). It is not that v2.5.2 > >> provides > >> so many improvements over v2.5.1; rather, Apple has shown in the past > >> that they do not upgrade their version of Python between major OX X > >> updates, and I would like to be able to take advantage of all future > >> improvements in v2.5.x and soon v2.6.x (possibly as early as this > >> summer). > >> > >> I have also installed the Apache 2.2.8 web server (instead of Apples > >> default Apache server, which I think is also v2.2.8). > >> > >> I did not touch/modify Apple's default Python 2.5.1 or Apache 2.2.8 > >> installations in any way. > >> > >> First, I will describe the problem and then I will show the > >> *solution* > >> that solves this problem. > >> > >> > >> > >> Problem: > >> > >> If you perform a normal mod_python build, the copy of mod_python.so > >> that is created by the build process has the python module import > >> paths from Apple's Python 2.5.1 installation *hardwired* into it. I > >> know this is so because I looked into the mod_python.so file (even > >> though this is a binary file), and I could see strings that referred > >> to Apple's Python 2.5.1 installation. > >> > >> Note that this occurred even though I specified the mod_python > >> configure option: > >> > >> --with-python=/usr/local/bin/python2.5 > >> > >> (which is the Python 2.5.2 installation I installed myself). > >> > >> When I tried to connect to my Apache 2.2.8 web server with a request > >> that was routed to mod_python (such as the /mpinfo testhandler), I > >> received a generic 500 Server Error page in my web browser and the > >> Apache error log file contained the following: > >> > >> [Sat Mar 15 17:19:48 2008] [error] python_init: Python version > >> mismatch, expected '2.5.2', found '2.5.1'. > >> [Sat Mar 15 17:19:48 2008] [error] python_init: Python executable > >> found '/usr/local/bin/python'. > >> [Sat Mar 15 17:19:48 2008] [error] python_init: Python path being > >> used > >> '/System/Library/Frameworks/Python.framework/Versions/2.5/lib/ > >> python25.zip:/System/Library/Frameworks/Python.framework/Versions/ > >> 2.5/ > >> lib/python2.5/:/System/Library/Frameworks/Python.framework/Versions/ > >> 2.5/lib/python2.5/plat-darwin:/System/Library/Frameworks/ > >> Python.framework/Versions/2.5/lib/python2.5/plat-mac:/System/Library/ > >> Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib- > >> scriptpackages:/System/Library/Frameworks/Python.framework/Versions/ > >> 2.5/lib/python2.5/../../Extras/lib/python:/System/Library/Frameworks/ > >> Python.framework/Versions/2.5/lib/python2.5/lib-tk:/System/Library/ > >> Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload'. > >> [Sat Mar 15 17:19:48 2008] [notice] mod_python: Creating 32 session > >> mutexes based on 256 max processes and 0 max threads. > >> [Sat Mar 15 17:19:48 2008] [notice] mod_python: using > >> mutex_directory / > >> tmp > >> [Sat Mar 15 17:19:48 2008] [notice] Digest: generating secret for > >> digest authentication ... > >> [Sat Mar 15 17:19:48 2008] [notice] Digest: done > >> [Sat Mar 15 17:19:49 2008] [notice] Apache/2.2.8 (Unix) mod_ssl/2.2.8 > >> OpenSSL/0.9.7l DAV/2 mod_python/3.3.1 Python/2.5.1 SVN/1.4.6 > >> configured -- resuming normal operations > >> > >> Notice that even though the Apache process found Python 2.5.2 in / > >> usr/ > >> local/bin (I was careful to set the PATH environment variable > >> appropriately in my launchctl configuration file for the web server), > >> the python module import paths all seem to refer to Apple's default > >> Python 2.5.1 distribution (which does not have the mod_python package > >> installed, of course). Needless to say, mod_python was not useable. > >> > >> > >> > >> Solution: > >> > >> 1. Before building mod_python, execute: > >> > >> $ cd /System/Library/Frameworks > >> $ sudo mv Python.framework XXX_Python.framework > >> > >> 2. After building mod_python, revert this change with: > >> > >> $ cd /System/Library/Frameworks > >> $ sudo mv XXX_Python.framework Python.framework > >> > >> In other words, the build process should look something like the > >> following (the configure options you choose may be different that > >> those I used): > >> > >> $ cd /System/Library/Frameworks > >> $ sudo mv Python.framework XXX_Python.framework > >> > >> $ cd <mod_python distribution directory> > >> $ ./configure \ > >>> --with-apxs=/usr/local/apache2/bin/apxs \ > >>> --with-python=/usr/local/bin/python2.5 \ > >>> --with-max-locks=32 > >> $ make > >> $ sudo make install > >> > >> $ cd /System/Library/Frameworks > >> $ sudo mv XXX_Python.framework Python.framework > >> > >> > >> > >> Conjecture: > >> > >> I am not a C programmer, but I would guess that there is a slight > >> problem with the build system for mod_python on Leopard that needs to > >> be fixed. If you supply the configure option: > >> > >> --with-python=/usr/local/bin/python2.5 > >> > >> the build process should ignore everything to do with Apple's Python > >> 2.5.1 distribution, but it does not. It seems that the "sudo mv ..." > >> commands from the recipe above are enough to temporarily hide Apple's > >> Python 2.5.1 distribution from the mod_python build system so that a > >> mod_python.so module can be built that is solely dependendent on the > >> Python 2.5.2 distribution I specified in the configure options. > >> Let's > >> hope that the mod_python distribution is updated soon so that others > >> are not bitten by this bug. > >> > >> Even if my conjecture is not correct, at least you have a recipe for > >> successfully installing mod_python under the conditions I outlined > >> above. > >> > >> Jeffrey > >> > >> > >> > >> _______________________________________________ > >> Mod_python mailing list > >> Mod_python at modpython.org > >> http://mailman.modpython.org/mailman/listinfo/mod_python > >> > > _______________________________________________ > > Mod_python mailing list > > Mod_python at modpython.org > > http://mailman.modpython.org/mailman/listinfo/mod_python > >
|