Typically, building a LAMP system on RHEL may be performed by yum installs. However, I wanted specific options built-in for my AMP and I wanted to locate the software in specific locations. hence, I opted to compile from source. It ain’t scary, but took me a few iterations to get stuff sorted out and this article describes what I did:
My LAMP System:
- L – RHEL 5.7 (kernel 2.6.18-274.3.1.el5)
- A – Apache 2.2.20
- M – MySQL 5.5.15
- P – PHP 5.3.8
STEP 1: Install Apache HTTP
Pre-requisites:
-
Create a user for Apache. This user will be used to launch the httpd child processes (assuming that the root user will launch the parent process to listen at port 80 (or any port < 1024). I created a user called apache as shown below (command executed as the root user):
useradd -c "Apache HTTP" -s /bin/bash -m apache
-
Select a location to install apache and ensure that the user created in the above step has appropriate privileges. I executed the following commands as the root user:
mkdir /opt/apache-2.2.20 chown -R apache:apache /opt/apache-2.2.20
Installation:
As the apache user, I executed the following:
tar -xvzf httpd-2.2.20.tar.gz cd httpd-2.2.20 ./configure --prefix=/opt/apache-2.2.20 --enable-so |
STEP 2: Install MySQL
Pre-requisites:
-
Create a user for MySQL. This user will be used to launch the mysqld process. I created a user called mysql as shown below (command executed as the root user):
useradd -c "MySQL Admin" -s /bin/bash -m mysql
-
Select a location to install mysql and ensure that the user created in the above step has appropriate privileges. I executed the following commands as the root user:
mkdir /opt/mysql-5.5.15 chown -R mysql:mysql /opt/mysql-5.5.15
-
You may have to install some packages to build MySQL. I installed packages as per the following command (executed as the root user):
yum install gcc gcc-c++.x86_64 cmake ncurses-devel libxml2-devel.x86_64
Installation:
As the mysql user, I executed the following:
tar -xvzf mysql-5.5.15.tar.gz cd mysql-5.5.15 cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.5.15 -DSYSCONFDIR=/opt/mysql-5.5.15 make make install |
STEP 3: Install PHP
Pre-requisites:
-
Select a location to install php and ensure that the appropriate user (web server user e.g. apache) created in the above step has appropriate privileges. I executed the following commands as the root user:
mkdir /opt/php-5.3.8 chown -R apache:apache /opt/php-5.3.8
-
As I needed a few packages for the phpMyAdmin application and other bespoke PHP applications, I did the following (use a combination of yum and rpm as I did not find all packages in my yum repositories):
# As root user rpm -ivh libmcrypt-2.5.7-1.2.el5.rf.x86_64.rpm rpm -ivh libmcrypt-devel-2.5.7-1.2.el5.rf.x86_64.rpm rpm -ivh mhash-0.9.9-1.el5.rf.x86_64.rpm yum install php53-mbstring.x86_64 bzip2 bz2 libbz2 libbz2-dev autoconf tar -xvzf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 ./configure --disable-posix-threads --prefix=/opt/mcrypt
Installation:
As the apache user, I executed the following:
tar -xvzf php-5.3.8.tar.gz cd php-5.3.8 ./configure --prefix=/opt/php-5.3.8 --with-apxs2=/opt/apache-2.2.20/bin/apxs --with-config-file-path=/opt/php-5.3.8 --with-mysql=/opt/mysql-5.5.15 --with-bz2 --with-zlib --enable-zip --enable-mbstring --with-mcrypt |