LightTPD, PHP, MySQL on FreeBSD
// All source is stored in /usr/local/src
// Source tarballs are in /usr/local/src/tarballs
// Note this works pretty much the same on Mac OS X
// and I've done it on Ubuntu 6.06
# Have to do this via my Mac because of all the mirror servers # I use scp to copy from Mac to FreeBSD box # Downloaded into /usr/local/src/taballs: - php-5.2.0.tar.bz2 from http://www.php.net/downloads.php - mysql-5.0.27.tar.gz from http://dev.mysql.com/downloads/mysql/5.0.html#downloads # On FreeBSD box cd /usr/local/src cd tarballs fetch http://mirrors.cat.pdx.edu/lighttpd/lighttpd-1.4.13.tar.gz cd .. tar xzvf tarballs/php-5.2.0.tar.bz2 tar zxvf tarballs/mysql-5.0.27.tar.gz tar zxvf tarballs/lighttpd-1.4.13.tar.gz MySQL first ======================================================= # Shut down MySQL: /usr/local/mysql/bin/mysqladmin -u root -p shutdown cd mysql-5.0.27 ./configure --prefix=/usr/local/mysql \ --localstatedir=/usr/local/mysql/data \ --enable-assembler \ --with-mysqld-ldflags=-all-static CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 \ -felide-constructors -fno-exceptions -fno-rtti" # Change to root su # I like to run the process in the background (&), # redirect the output to a log file, # and tail -f the log file. # Make it: make > ~/mysql_make.log & # Watch the make: tail -f ~/mysql_make.log # Install it: make install > ~/mysql_install.log & # Watch the install: tail -f ~/mysql_install.log PHP as a CGI: ===================================================================== cd /usr/local/src/php-5.2.0 # Make sure curl is where we think it is locate curl | grep include # Configure it ./configure --with-xml --with-zlib --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-curl=/usr/local/include \ --enable-cgi --enable-fastcgi \ --enable-force-redirect \ > ~/phpconfig.log & tail -f ~/phpconfig.log # Edit the Makefile to eliminate duplicates in the EXTRA_LIBS line pico Makefile # New: EXTRA_LIBS = -lcrypt -lmysqlclient -liconv -lcurl -lz -lm -lxml2 -lssl -lcrypto # Make it make > ~/php_make.log & tail -f ~/php_make.log # Install it make install > ~/php_install.log & tail -f ~/php_install.log LightTPD: ================================================================= # Check requirements locate libpcre locate libz # If those aren't there, find them in ports and install cd /usr/local/src/lighttpd-1.4.11 ./configure --prefix=/usr/local --with-pcre=/usr/local # Make it make > ~/lighttpd_make.log & tail -f ~/lighttpd_make.log # Install it make install > ~/lighttpd_install.log & tail -f ~/lighttpd_install.log # Start MySQL /usr/local/etc/rc.d/mysql.server.sh start @HOSTNAME@: not found @HOSTNAME@: not found Starting MySQL. SUCCESS! # Check MySQL version /usr/local/mysql/bin/mysqladmin -v /usr/local/mysql/bin/mysqladmin Ver 8.41 Distrib 5.0.27, for unknown-freebsd6.0 on i386 # Add mysql to the path for root. cd pico .cshrc set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin) becomes set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin /usr/local/mysql/bin) # Use the lighttpd.conf file I have posted separately # Requires use of /var/log/lighttpd log directory mkdir /var/log/lighttpd chmod 777 /var/log/lighttpd # Test the server? lighttpd -f /usr/local/etc/lighttpd.conf ps ax | grep light 59463 ?? S 0:00.02 lighttpd -f /usr/local/etc/lighttpd.conf 59537 p0 R+ 0:00.00 grep light # To shut off the server # pid file is in /var/run/lighttpd.pid