Apache w/ PHP Support (PowerPC)

''Created by Brummierob... Based on the original LAMP by Nick which was edited by ... BurnHard, frontalot, Cathedrow & Ralf from linkstationwiki.org'' '''Installing Apache w/ PHP Support. '''

Opening Comments
The reason for this Article is for those of you who want to install Media-Software (such as Oxyl~box), where no MySQL is required. This is a good way of saving precious resources on the Linkstation! LAP (or L.A.P.) is basically LAMP (or L.A.M.P.) without MySQL. LAP refers to a set of free software programs commonly used together to run dynamic Web sites or servers:
 * Linux, the operating system;
 * Apache, the Web server;
 * PHP scripting/programming language.

Apache, along with PHP, is very straight forward to install on a stock LinkStation 1 or Linkstation HG with the OpenLink firmware installed. If you have experience with building these packages, or compiling in general, it is a snap. If you have little or no experience in such matter, just follow the guide -- everything is reversible.

If you have not already done so, visit the Openlink section and follow the instructions for installing the telnet enabled firmware. You will also need to download and install the PPC Tools before continuing.

A Remark on "--prefix"
The prefix argument, which you will see in every section below, allows you to install Unix packages to alternate locations. This is very important and should be remembered for the LinkStation as the two packages (Apache1.3 + PHP) take over 40 megs of space once they are installed. You will not be able to install these packages to your root partition and doing so would be very bad.

I chose (as is often suggested) to create an "opt" directory under "/mnt/" to install each of the packages into, using a separate directory for each. This was done to keep the packages separated and easy to manage in the future. You may, of course, alter your install locations in any way but, if you are new to this, I suggest following my example.

It's also a good idea to create a directory to download stuff when using wget, lets use /mnt/misc

Update Grep
The first step is to update grep. This step isn't too complicated. cd /mnt/misc wget http://ftp.gnu.org/gnu/grep/grep-2.5.1a.tar.gz tar -zxvf grep-2.5.1a.tar.gz  cd grep-2.5.1a
 * Firstly, download the latest version of grep (in my example the grep-2.5.1a version, the latest version at time of edit) from the GNU Project.
 * Then extract the tarball and move to the new grep directory. Use the following commands:

./configure make make install
 * Next, configure the makefile with this command:

DO NOT UNINSTALL OLD VERSION OF GREP!!!: Certain programs still depend on this version and you will possibly loose terminal access to the Linkstation if you do.

Installing Apache 1.3.xx
Apache itself is the next to install. If you are not planning on installing PHP, you may ignore the "--enable-module=so" attribute below.

I decided to install Apache 1.3 because I thought it would use less system-resources than Apache 2. Installing Apache 2 would be very similar and the following instructions could easily be adapted by reading the INSTALL document in the Apache 2 tarball.

cd /mnt/misc

Download the latest version of Apache 1.3 from http://www.apache.org (1.3.37, at the time of this edit).

wget http://mirrorspace.org/apache/httpd/apache_1.3.37.tar.gz tar -zxvf apache_1.3.37.tar.gz cd apache_1.3.37

./configure --prefix=/mnt/opt/apache --enable-module=so make make install

You should get this message -

++ | You now have successfully built and installed the     | | Apache 1.3 HTTP server. To verify that Apache actually | | works correctly you now should first check the        | | (initially created or preserved) configuration files  | |                                                       | |   /mnt/opt/apache/conf/httpd.conf |                                                       | | and then you should be able to immediately fire up     | | Apache the first time by running:                     | |                                                       | |   /mnt/opt/apache/bin/apachectl start |                                                       | | Thanks for using Apache. The Apache Group       | |                            http://www.apache.org/     | ++

You will, at the very least, need to change your port to 81 (or some other port).

vi /mnt/opt/apache/conf/httpd.conf

Search for '80' -- change it to '81' (or some other port).

I also suggest changing the root directory to the files to "/mnt/opt/apache/htdocs/oxylbox". Search for 'DocumentRoot' and change the first reference (roughly line 288) to the above path. Search again and you will find another reference to change (around line 313).

Finally, start the server.

/mnt/opt/apache/bin/apachectl start

Copy that start up script to /etc/init.d and include in startup shutdown

cp /mnt/opt/apache/bin/apachectl /etc/init.d

ln -s /etc/init.d/apachectl /etc/rc.d/rc2.d/S99apachectl ln -s /etc/init.d/apachectl /etc/rc.d/rc6.d/K92apachectl ln -s /etc/init.d/apachectl /etc/rc.d/rc0.d/K92apachectl


 *  TODO: Flush out the config file editing instructions.

Installing PHP
Last we will set up PHP. I decided to install the latest version of PHP4 because, again, this is what my web host uses. You may decide to install PHP5, which would requires only 1 slightly different step below.

IMPORTANT

Pay special attention to the 'configure' command below. If you installed the above packages to an alternate location you will need to update the paths in the proper attribute.

cd /mnt/misc

Download the latest version of PHP4 from http://www.php.net (4.4.4, at the time of this edit).

wget http://de.php.net/get/php-4.4.4.tar.bz2/from/uk2.php.net/mirror

or you can download the older 4.4.3 version here

wget http://de.php.net/get/php-4.4.3.tar.bz2/from/uk2.php.net/mirror

It may download as a file called 'mirror' if so do mv mirror php-4.4.4.tar.bz2

Next bunzip2 php-4.4.4.tar.bz2 tar -xvf php-4.4.4.tar cd php-4.4.4

This is all one command and should be input on one line ./configure --prefix=/mnt/opt/php4 --with-apxs=/mnt/opt/apache/bin/apxs --with-config-file-path=/mnt/opt/php4/lib

Should get this ++ | License:                                                          | | This software is subject to the PHP License, available in this    | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | ++ |                         *** NOTE ***                              | |           The default for register_globals is now OFF! | |                                                                   | | If your application relies on register_globals being ON, you       | | should explicitly set it to on in your php.ini file. | | Note that you are strongly encouraged to read                     | | http://www.php.net/manual/en/security.globals.php                 | | about the implications of having register_globals set to on, and  | | avoid using it if possible. | ++

make

You will get a message

Build complete. (It is safe to ignore warnings about tempnam and tmpnam).

Then to finish

make install

Copy over the default config file.

IMPORTANT

If you altered the "--with-config-file-path" attribute, above, you will need to change the below command to copy to the appropriate path.

cp php.ini-dist /mnt/opt/php4/lib

Open up apache's conf file and verify that the following line is included:

vi /mnt/opt/apache/conf/httpd.conf

LoadModule php4_module libexec/libphp4.so (for PHP4) LoadModule php4_module libexec/libphp5.so (for PHP5)

If it is not, add it. Also add the following two lines just below the LoadModule command:

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

Restart Apache and PHP should now be working.

/etc/init.d/apachectl restart


 *  TODO: More information on configuration of PHP


 *  TODO: Information on adding additional modules to PHP