Updated on Nov 4, 2013: The following tricks may still work, however I have found a much easier solution. Simply install Xcode command line developer tools and you should be able to compile source code without issues:
$ xcode-select --install
After upgrading my Mac from 10.8 to 10.9 Mavericks my apache stopped working, so I have to reinstall mod_wsgi and mod_xsendfile. However, tricks are needed to compile and install these mods successfully.
Upgrade Xcode
Upgrade Xcode in App Store. As mentioned by Valerie:
I had to manually upgrade Xcode (after Mavericks upgrade) from the App Store & agree to its license because
./configure
hung forever until I did that.
mod_wsgi
For mod_wsgi installation, create a soft link to OSX10.9.xctoolchain:
cd /Applications/Xcode.app/Contents/Developer/Toolchains/ sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
Then run configure under mod_wsgi source code directory:
mod_wsgi-3.4$ ./configure
It will generate a Makefile similar as follows:
# Copyright 2007 GRAHAM DUMPLETON # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. APXS = /usr/sbin/apxs PYTHON = /usr/local/bin/python DESTDIR = LIBEXECDIR = /usr/libexec/apache2 CPPFLAGS = -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DNDEBUG CFLAGS = -Wc,'-arch x86_64' LDFLAGS = -Wl,-F/usr/local/Cellar/python/2.7.5/Frameworks -framework Python -u _PyMac_Error -arch x86_64 LDLIBS = -ldl -framework CoreFoundation all : mod_wsgi.la mod_wsgi.la : mod_wsgi.c $(APXS) -c $(CPPFLAGS) $(CFLAGS) mod_wsgi.c $(LDFLAGS) $(LDLIBS) $(DESTDIR)$(LIBEXECDIR) : mkdir -p $@ install : all $(DESTDIR)$(LIBEXECDIR) $(APXS) -i -S LIBEXECDIR=$(DESTDIR)$(LIBEXECDIR) -n 'mod_wsgi' mod_wsgi.la clean : -rm -rf .libs -rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT -rm -f config.log config.status -rm -rf autom4te.cache distclean : clean -rm -f Makefile Makefile.in realclean : distclean -rm -f configure
However, this Makefile is not correct and running ‘make’ the compiler will complain something like:
mod_wsgi.c:34:10: fatal error: 'httpd.h' file not found
Prepend the following line to CPPFLAGS value:
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2
Save the Makefile and it will look something like:
# Copyright 2007 GRAHAM DUMPLETON # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. APXS = /usr/sbin/apxs PYTHON = /usr/local/bin/python DESTDIR = LIBEXECDIR = /usr/libexec/apache2 CPPFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode. app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2 -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DNDEBUG CFLAGS = -Wc,'-arch x86_64' LDFLAGS = -Wl,-F/usr/local/Cellar/python/2.7.5/Frameworks -framework Python -u _PyMac_Error -arch x86_64 LDLIBS = -ldl -framework CoreFoundation all : mod_wsgi.la mod_wsgi.la : mod_wsgi.c $(APXS) -c $(CPPFLAGS) $(CFLAGS) mod_wsgi.c $(LDFLAGS) $(LDLIBS) $(DESTDIR)$(LIBEXECDIR) : mkdir -p $@ install : all $(DESTDIR)$(LIBEXECDIR) $(APXS) -i -S LIBEXECDIR=$(DESTDIR)$(LIBEXECDIR) -n 'mod_wsgi' mod_wsgi.la clean : -rm -rf .libs -rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT -rm -f config.log config.status -rm -rf autom4te.cache distclean : clean -rm -f Makefile Makefile.in realclean : distclean -rm -f configure
Then make && install:
mod_wsgi-3.4$ make mod_wsgi-3.4$ sudo make install
Modify /etc/apache2/httpd.conf to enable mod_wsgi:
LoadModule wsgi_module libexec/apache2/mod_wsgi.so
mod_xsendfile
Use the following command to compile and install mod_xsendfile:
sudo apxs -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apr-1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/apache2 -cia mod_xsendfile.c
Enabling HTTPS/SSL
After upgrading OS X the apache configuration was reset, but your original config is save to /etc/apache2/httpd.conf.pre-update. I need to enable SSL in httpd.conf again by uncommenting the following line:
# Include /private/etc/apache2/extra/httpd-ssl.conf
Restart Apache and everything should work fine
sudo apachectl restart3 Comments