NetAdminTools.com
 
SignalQ Sites:
NetAdminTools - Coprolite - SpotBridge - NAW
RoboCoop - AreWeDown - SolarPower - SysAdminTools
Xfig - Gold Loaf - GeekPapa - FixGMC - FixRambler
Categories:
GNU/Linux | Homebrew designs | Perl | Ruby | Administration | Backup/Recovery | Bugs/Fixes | Certification | Database | Email | File/Print | Hardware | Information Grab Bag | Interoperability | GNU/Linux ABCs | Monitoring | Name Resolution | Network Services | Networking | Remote Control | Security | Desktop | Web | BSD | Solaris | GIAGD | ERP | REALbasic

Last 30 Days | Last 60 Days | Last 90 Days | All Articles | GNU/Linux Reference OS Build | MCJ How-to | MCJ Presentation Config | Keywords | RSS



Categories:
·GNU/Linux
·Homebrew designs
·Perl
·Ruby
·Administration
·Backup/Recovery
·Bugs/Fixes
·Certification
·Database
·Email
·File/Print
·Hardware
·Information Grab Bag
·Interoperability
·GNU/Linux ABCs
·Monitoring
·Name Resolution
·Network Services
·Networking
·Remote Control
·Security
·Desktop
·Web
·BSD
·Solaris
·GIAGD
·ERP
·REALbasic
·All Categories


Installing Apache 2.2 on Mac OS X From Source
Topic:BSD   Date: 2008-12-17
Printer Friendly: Print

spacerspacer
<<  <   >  >>

Subject

Apache 2.2 compiles perfectly on Mac OS X. We are running an Intel Mac Version 10.5.6. Let's create a place to compile this that is separate from other software. First we need to log on as root for convenience:

srv-5:~ usr4$ sudo su
Password:
sh-3.2# 

Let's create a /usr/local/src to compile the software in. This will also create /usr/local as a destination:

sh-3.2# mkdir -p /usr/local/src
sh-3.2# cd /usr/local/src

The software is available here. Extract the source tarball:

sh-3.2# ls
httpd-2.2.11.tar.bz2
sh-3.2# tar -xjf *.bz2
sh-3.2# ls
httpd-2.2.11		httpd-2.2.11.tar.bz2
sh-3.2# cd httpd*11

We are going to configure with a minimal set of features:

sh-3.2# ./configure --prefix=/usr/local/apache2 --disable-actions --disable-asis 
--disable-charset-lite --disable-env --disable-imap --disable-status --disable-cgi 
--disable-cgid --disable-userdir --enable-include  
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... i386-apple-darwin9.6.0
checking host system type... i386-apple-darwin9.6.0
checking target system type... i386-apple-darwin9.6.0

Configuring Apache Portable Runtime library ...

checking for APR... yes
  setting CC to "gcc"
  setting CPP to "gcc -E"
  setting CFLAGS to " "
  setting CPPFLAGS to " -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp"
  setting LDFLAGS to " "

Configuring Apache Portable Runtime Utility library...

.
.
.
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
sh-3.2# 

Compile:

sh-3.2# make
Making all in srclib
Making all in pcre
/usr/share/apr-1/build-1/libtool --silent --mode=compile gcc     -DDARWIN -
DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp    -I/usr/local/src/httpd-2.2.11/srclib/pcre -I. 
-I/usr/local/src/httpd-2.2.11/os/unix -I/usr/local/src/httpd-2.2.11/server/mpm/prefork 
-I/usr/local/src/httpd-2.2.11/modules/http -I/usr/local/src/httpd-2.2.11/modules/filters 
-I/usr/local/src/httpd-2.2.11/modules/proxy -I/usr/local/src/httpd-2.2.11/include 
-I/usr/local/src/httpd-2.2.11/modules/generators -I/usr/local/src/httpd-2.2.11/modules/mappers 
-I/usr/local/src/httpd-2.2.11/modules/database -I/usr/include/apr-1 
-I/usr/local/src/httpd-2.2.11/modules/proxy/../generators 
.
.
.
ttpd  modules.lo buildmark.o -export-dynamic server/libmain.la modules/aaa/libmod_authn_file.la 
modules/aaa/libmod_authn_default.la modules/aaa/libmod_authz_host.la 
modules/aaa/libmod_authz_groupfile.la modules/aaa/libmod_authz_user.la 
modules/aaa/libmod_authz_default.la modules/aaa/libmod_auth_basic.la 
modules/filters/libmod_include.la modules/filters/libmod_filter.la 
modules/loggers/libmod_log_config.la modules/metadata/libmod_setenvif.la 
modules/http/libmod_http.la modules/http/libmod_mime.la 
modules/generators/libmod_autoindex.la 
modules/mappers/libmod_negotiation.la modules/mappers/libmod_dir.la modules/mappers/libmod_alias.la 
modules/mappers/libmod_so.la server/mpm/prefork/libprefork.la os/unix/libos.la  
/usr/local/src/httpd-2.2.11/srclib/pcre/libpcre.la -L/usr/lib -R/usr/lib -laprutil-1 -lsqlite3 
-lexpat -liconv -L/usr/lib -R/usr/lib -lapr-1 -lpthread 

Install:

sh-3.2# make install
Making install in srclib
Making install in pcre
Making install in os
Making install in unix
Making install in server
Making install in mpm
Making install in prefork
Making install in modules
Making install in aaa
mkdir /usr/local/apache2
.
.
.
mkdir /usr/local/apache2/build
Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual

Start up Apache:

/usr/local/apache2/bin/apachectl start 

Browsing to localhost should show that it works:

it works

Verify that what you looked at was served up from the new web server by tailing /usr/local/apache2/logs/access_log:

sh-3.2# 
:1 - - [17/Dec/2008:19:04:50 -0800] "GET / HTTP/1.1" 200 44
::1 - - [17/Dec/2008:19:04:50 -0800] "GET /favicon.ico HTTP/1.1" 404 209
::1 - - [17/Dec/2008:19:04:53 -0800] "GET /favicon.ico HTTP/1.1" 404 209
sh-3.2# 
sh-3.2# date
Wed Dec 17 19:05:07 PST 2008
sh-3.2# 

To get Apache to start at system startup, we need to put a couple files into an httpd directory that we create in /Libarary/StartupItems:

srv-5:StartupItems root# pwd
/Library/StartupItems
srv-5:StartupItems root# ls
httpd
srv-5:StartupItems root# cd httpd
srv-5:httpd root# ls
httpd			StartupParameters.plist

This is what the httpd file looks like:

#!/bin/sh
. /etc/rc.common
StartService() {
/usr/local/apache2/bin/apachectl start
}
StopService() {
/usr/local/apache2/bin/apachectl stop
}
RestartService() {
/usr/local/apache2/bin/apachectl restart 
}
RunService "$1"


This is what the StartupParameters.plist looks like:

{
  Description     = "httpd";
  Uses            = ("Disks");
}


Reboot to make sure, and you now have an Apache web server ready to serve up HTML documents.


People:
Places:
Things:
Times:





Please read our Terms of Use and our Privacy Policy
Microsoft, Windows, Windows XP, Windows 2003, Windows 2000, and NT are either trademarks or registered trademarks of Microsoft Corporation. NetAdminTools.com is not affiliated with Microsoft Corporation. Linux is a registered trademark of Linus Torvalds, and refers to the Linux kernel. The operating system of most distributions that contain the Linux kernel is GNU/Linux. All logos and trademarks in this site are property of their respective owner. Copyright 1997-2010 NetAdminTools.com