pavement

Apache, Installing with PHP

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
(Installing from source without ports)
(Installing from packages)
Line 6: Line 6:
  
 
==Installing from packages==
 
==Installing from packages==
Packages are fast and easy, but do not allow you a great deal of customization.
+
Packages are fast and easy, but do not allow you a great deal of customization.  Also, it is very easy to wind up with inconsistencies between the system that a precompiled binary expects and the actual condition of your system: for example, a minor difference in the version of a particular dependency library installed may break a package, where the same difference would be handled in stride if you were compiling from source.
  
First, update your ports tree and either install the packages as root, if you're in a hurry:
+
If you're in a hurry and have a clean system though, packages are by far the fastest way to go.  First, update your ports tree and then install the packages as root:
 
  # pkg_add -r apache13
 
  # pkg_add -r apache13
 
  # pkg_add -r php4
 
  # pkg_add -r php4
 +
 
==Installing from source via ports==
 
==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]]).
 
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]]).

Revision as of 23:36, 29 March 2006

Apachefeather.jpg Php.jpg

Contents

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. Also, it is very easy to wind up with inconsistencies between the system that a precompiled binary expects and the actual condition of your system: for example, a minor difference in the version of a particular dependency library installed may break a package, where the same difference would be handled in stride if you were compiling from source.

If you're in a hurry and have a clean system though, packages are by far the fastest way to go. First, update your ports tree and then install the packages as root:

# 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.)

fetch http://www.mirror.ac.uk/mirror/ftp.apache.org/httpd/apache_1.3.34.tar.gz
fetch http://uk.php.net/get/php-4.4.2.tar.gz/from/uk.php.net/mirror

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
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
make install

Setting up php.ini

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

Note:

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.

httpd.conf

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/libphp4.so

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

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

Note:

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