Apache, Installing with PHP

From FreeBSDwiki
Revision as of 17:09, 29 March 2006 by Dave (Talk | contribs)
Jump to: navigation, search

Apachefeather.jpg Php.jpg


Getting Started

I have decided to use Apache/1.x with PHP/4.x. I belive this is the better combination, as time tells, they are the most popular and better stability. Anyhow, this is my opinion, so this guide will use those two versions. There are a variety of ways to install, with distinct advantages and disadvantages:

Installing from packages

Packages are fast and easy, but do not allow you a great deal of customization.

First, update your ports tree and either install the packages as root, if you're in a hurry:

# pkg_add -r apache13
# pkg_add -r php4

Installing from source via ports

Installing from ports will allow you to customize the build and will install from source; assuming that you've cvsup'ed recently, you'll also be using the most current version of the software. This is the recommended way to install software for most FreeBSD servers. It will also register the install with the ports db and will allow you to remove the software (via make deinstall) or upgrade (see portupgrade).

# cd /usr/ports/www/apache13 && make install clean
# cd /usr/ports/lang/php4 && make install clean

In either case, they'll be installed in /usr/local by default.

Installing from source without ports

Alternately, you can install from source without using ports, although this is not the suggested way to do it -- your install won't be registered in the ports pkg database and uninstalling or upgrading will be made somewhat more difficult.

First, create and cd into a good location for sources, ie: /root/installs/

mkdir /root/installs/
cd /root/installs/

Next, we best go get the sources:

(As of writing this guide, the current versions are: Apache/1.3.34 and PHP/4.4.2. You might have to amend the following arguments inorder to download the current version or to find a server nearer to you.)


Uncompress and untar the file and cd into the directory:

tar zxvf apache_1.3.34.tar.gz
cd apache_1.3.34/

Configure the install:

./configure --prefix=/usr/local/apache --enable-module=so

and make it:

make install

Next, do the same for PHP. Uncompress and untar the file and cd into the directory:

tar zxvf php-4.4.2.tar.gz
cd php-4.4.2/

Configure the install:

./configure --with-apxs=/usr/local/apache/bin/apxs

and make it:

make install

Setting up php.ini

cp php.ini-dist /usr/local/lib/php.ini


You may wish to edit the above file to set PHP options. If you'd rather use php.ini-recommended, make sure to read the list of changes, and how they affect the behaviour of PHP.


Now, you will have to edit the httpd.conf file to load the PHP module:

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

1) Add the following line to the above file:

LoadModule php4_module libexec/

- Or if you are lazy and can't be bothered to check httpd.conf:

echo "LoadModule php4_module libexec/" >> /usr/local/apache/conf/httpd.conf


Running "make install" might have added the line for you, best be on the safe side and check!

2) In the AddModule section of httpd.conf, add the following line to the bottom of the section:

AddModule mod_php4.c

3) Apache will need to be told on what to class as a PHP document. Add this line to the httpd.conf file in the AddType section:

AddType application/x-httpd-php .php

...You might consider using the following line to show highlighted PHP source, it can be achieved by adding the line also to the AddModule section under the line you have just added:

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

Starting Apache

Use the following command to start Apache:

/usr/local/apache/bin/apachectl start

All works?

To test everything went according to plan, we will now make a PHP file:

echo "<? phpinfo(); ?>" >> /usr/local/apache/htdocs/php-test.php

Run your favourite browser, such as Firefox and point it to http://localhost/php-test.php. You will now see lots of compilation and configuration options for PHP.

You're Done!

Final Notes

You should now have a working version of Apache with PHP. The next and only thing I will suggest is to auto-start apache via an rc.d script (installing from ports will suggest how to do this) or via a crontab to start Apache at boot:

crontab -e

and add to the bottom:

@reboot /usr/local/apache/bin/apachectl start
Personal tools