Install Apache2

General Information

Installing a web serving application is usually one of the most essential things on a FreeBSD server. In this short tutorial, I shall explain the basics of installing and configuring Apache 2.0.52 (will also work with previous builds of Apache 2.x but you should be using the latest version).


  1. Root access to the server
  2. Internet access
  3. Compilation tools


First, let’s download and untar Apache 2.0.52!

# wget
# tar zxvf httpd-2.0.52.tar.gz

Now that Apache has been extracted, let’s change to its directory.

# cd httpd-2.0.52

Now we’ll create a unique group and user for Apache to run under. This can be useful when browsing logs, or even for security.

# pw group add websrv
# pw user add websrv -g websrv -s /sbin/nologin -d /usr/local/apache

Now that we’ve created Apache’s group and user, let’s configure it with DSO support. We’ll also include the

–with-php and –with-mysql switches just in case you want to install them later on.

# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-so --with-php --with-mysql

After that’s run through its boring process of making sure you have everything Apache needs in the right place,

we’ll compile the sources.

# make

And now that’s done, we should install the compiled binaries and other files.

# make install

Now we need to make sure that the Apache libraries are installed, to do this, we’ll add a line to our


# echo "/usr/local/apache/modules" >> /etc/

As we’ve done that, we’ll have to create a cache and links for the shared libraries.

# ldconfig

Wahey! Apache is installed, but, before we can fire the beast up, we need to do a little configuring. Don’t worry, it’s not hard.


First, we’ll make Apache recognize other types of document other than .html.

# pico /usr/local/apache/conf/httpd.conf

Now hold CTRL+W to bring up Pico’s where feature, and type “AddType”. Add the following lines:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Now hold CTRL+W again to bring up the where feature again, and type “DirectoryIndex”. This is where we set the files that the server should look for in a directory before displaying everything in that directory (the index file). In this example, index.php will be shown first, however if that doesn’t exist, index.html will be shown.

DirectoryIndex index.php index.html

Find the User and Group directives and change whatever you have there to:

User websrv
Group websrv

Double check your changes, save and quit. Now that we’ve finished our configuration, we should change the ownership of Apache to the websrv group and user that we created.

# chown -R websrv:websrv /usr/local/apache

And now we’ll start Apache.

# /usr/local/apache/bin/apachectl start

That’s all! Have fun web serving.

Speak Your Mind