The web sever is an Apache 2 installation with PHP and a few modules installed.
The first step is to download the latest stable build of the Apache Web Server. This can be found here. I prefer to use the stable version 2 branch. Some people prefer the 1.3 branch, which is far more thoroughly tested. The 1.3 branch is what is included with OS X by default, and you can use this if desired. Once downloaded, Apache needs to be compiled. Use the following commands:
./configure --prefix=/Library/Apache2 --enable-mods-shared='auth-digest dav dav-fs dav-lock expires headers info mime-magic rewrite speling ssl unique-id usertrack vhost-alias' --disable-cgi --enable-ssl --with-ssl=/usr/local
sudo make install
Mod vhost MySQL
Mod vhost is used to be able to dynamically create virtual hosts. This can be downloaded from the modules site. Be sure to download the Apache 2 version. It can be compiled and installed using the following command:
sudo /Library/Apache2/bin/apxs -cia -I /usr/local/mysql/include -L /usr/local/mysql/lib -lmysqlclient mod_vhost_mysql.c
The next step is to install PHP. Download the latest stable version of PHP from the PHP site. It must then be compiled and installed. In order to get all the nice features there are a few extra packages that need to be installed first. In particular the JPEG tools. In order to get these, go to the TeXShop site and download the II2 installer package. Install this, and select ‘Known Packages i-Directory’. Install the ‘JPEG Tools and Library’ package. Once that is done, PHP can be compiled and installed with the following commands:
./configure --prefix=/Library/PHP --with-apxs2=/Library/Apache2/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql --with-zlib=/usr --with-gd --with-png-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --with-tiff-dir=/usr/local/lib --with-mime-magic --with-xml --with-pear --enable-sockets --enable-shared
sudo make install
sudo /Library/PHP/bin/pear install DB
A self-signed certificate can be used to offer a level of protection for some parts of the site. Note that this website does not contain sensitive information, and thus security is only a precaution, not a requirement. These instructions are based on the information here.
chmod 700 ssl
gzip -c --best /var/log/* > random.dat
openssl rand -rand file:random.dat 0
openssl req -keyout privkey-2007.pem -newkey rsa:1024 -nodes -x509 -days 365 -out cert-2007.pem
chmod 600 privkey-2007.pem
chown root privkey-2007.pem
WebDAV is useful to work with iCal and other MacOS X features.
chown www:www davlocks
chmod 755 davlocks/
chmod 775 ical
chown www:www ical
htdigest -c /Library/WebServer/.davusers realm username
This is simply a matter of editing httpd.conf, which is in the /Library/Apache2/conf/ directory.