About
LAMP :
LAMP stack is a group of open source software used to get web
servers up and running. The acronym stands for Linux, Apache, MySQL, and PHP
(it can be either python or perl). LAMP represents a full featured stack
containing the most popular web server known as Apache. The most popular
database server MySQL and the most popular open-source web programming language
known as PHP. In This Documentation I will show you how can we install the LAMP
stack from the source code.
Step – 1 Basic Configuration
Checking.
1. To check the System Architecture.
2. To Check the Network Information
(IP).
3. To check the Hostname for the
LAMP Server.
4. To stop the IPtables and Check
the Rules.
5. To check Selinux Enabled or Disabled.
Step – 2 LAMP Installations and Configuration.
Directory Structure of my
Installation:
/usr/local/src/ => The Downloaded .tar file will be save
here.
/usr/local/lamp/ => This where I compile install the source code.
/usr/local/lamp/apache => I
will install Apache under this directory.
/usr/local/lamp/mysql => I
will install MySQL under this directory.
/usr/local/lamp/php => I
will install PHP under this directory.
Check and Remove if already
installed RPM’s.
Change
the directory and download the source code from internet.
[root@masterdns src]# wget http://apache.techartifact.com/mirror/httpd/httpd-2.2.22.tar.gz
[root@masterdns src]# wget
http://in1.php.net/get/php-5.4.8.tar.gz/from/this/mirror
[root@masterdns src]# wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/
Install Supported / Dependency
packages. ( gcc, gcc-c++, make, cmake, ncurses, libxml2-delvel).
Compiling and Testing Apache-Server.
[root@masterdns src]# tar -xvf
httpd-2.2.22.tar.gz
[root@masterdns
src]# cd httpd-2.2.22
[root@masterdns
httpd-2.2.22]# mkdir /usr/local/lamp
[root@masterdns httpd-2.2.22]# ./configure
--prefix=/usr/local/lamp/apache --enable-so --enable-mods-shared="most"
[root@masterdns
httpd-2.2.22]# make
[root@masterdns
httpd-2.2.22]# make install
Note: What is Configure Script , Make, Make
install :
Configure: Configure script Checks some
details about the machine on which the software is going to be installed. This
script checks for lots of dependencies on your system. For the particular
software to work properly, it may be requiring a lot of things to be existing
on your machine already. If any of the major requirements are missing on your
system, the configure script would exit and you cannot proceed with the
installation, until you get those required things. if configure fails we can not execute the make command.
Make: Actual Compilation of the source
code
Make install: Install the compiled binaries to proper
directories.
--prefix : With prefix we specify the
location where want to install the software (/usr/local/lamp/apache/). Default location will be under (/usr/local/apache2)
--enable-so : This will enable DSO (Dynamic
Shared Object ) capability so that we can add additional modules to apache without recompiling the entire apache.
--enable-mods-shared="most" :
List of modules we want to enable . Here I choose to enable most of the modules.
Apache
Directory structure.
Starting and Testing Apache.
After installation, we need to configure the
“ServerName” point to localhost in httpd.conf file.
[root@masterdns apache]# vim conf/httpd.conf
ServerName
masterdns.shyam.com:80
[root@masterdns apache]#
bin/apachectl start
httpd
(pid 13198) already running
Note: The default index.html is locate
inside the /usr/local/lamp/apache/htdocs/index.html
Compiling and Testing MySQL-Server.
Before compiling
the mysql we need to create a user called "mysql" so that we can run the mysql service under his privilege.
[root@masterdns src]# groupadd mysql
[root@masterdns
src]# useradd -g mysql mysql
Extract
the downloaded mysql source code and compile.
[root@masterdns src]# tar -xvf
mysql-5.5.28.tar.gz
[root@masterdns src]# cd
mysql-5.5.28
[root@masterdns mysql-5.5.28]#
cmake --DCMAKE_INSTALL_PREFIX=/usr/local/lamp/mysql --DMYSQL_DATADIR=/usr/local/lamp/mysql/data
[root@masterdns mysql-5.5.28]#
make
[root@masterdns mysql-5.5.28]#
make install
Note:
If you get any error while running the camke like any dependency error first
you need to install the proper rpm and before
running the cmake again you should remove CMakeCache.txt.
[root@masterdns mysql-5.5.28]# rm -rf
CMakeCache.txt
If
you installed mysql rpm already using
rpm then you should go through this steps.
[root@masterdns mysql-5.5.28]# rm
-rf /etc/my.cnf
[root@masterdns mysql-5.5.28]#
chkconfig --del mysqld
Change the ownership for mysql
directory.
[root@masterdns
src]# chown -R mysql:mysql /usr/local/lamp/mysql/
Change
to Mysql directory and see the directory content.
Set the MySQL Base Directory and Database
Directory using mysql script.
Copy the MySQL configuration file to /etc/my.cnf
[root@masterdns mysql]# cp
/usr/local/lamp/mysql/support-files/my-medium.cnf /etc/my.cnf
To add the MySQL service script to /etc/init.d/
directory and enable prenatally.
[root@masterdns mysql]# cp
/usr/local/lamp/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@masterdns mysql]# chkconfig
--add mysqld
[root@masterdns mysql]# chkconfig
--level 235 mysqld on
[root@masterdns mysql]# chkconfig
--list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@masterdns mysql]# service
mysqld restart
Shutting
down MySQL. SUCCESS!
Starting
MySQL... SUCCESS!
[root@masterdns mysql]# netstat
-ntlp | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 29421/mysqld
Now we need to install MySQL Client package,
then only we can access MySQL Server.
Now
access MySQL Server using MySQL Client in terminal.
Compiling and Testing PHP
Compile the PHP source code with support with
Apache and MySQL.
[root@masterdns
src]# tar -xvf php-5.4.8.tar.gz
[root@masterdns src]# cd php-5.4.8
[root@masterdns php-5.4.8]# ./configure
--prefix=/usr/local/lamp/php --with-apxs2=/usr/local/lamp/apache/bin/apxs --with-mysql=/usr/local/lamp/mysql/
[root@masterdns php-5.4.8]# make
[root@masterdns php-5.4.8]# make install
[root@masterdns php-5.4.8]# cp
/usr/local/src/php-5.4.8/php.ini-production /usr/local/lamp/php/lib/php.ini
Checking php module is installed properly.
[root@masterdns php-5.4.8]#
/usr/local/lamp/apache/bin/apachectl -t -D DUMP_MODULES | grep php
php5_module
(shared)
Syntax OK
Tell
apache to process file starting .php extension.
Open up the file "/usr/local/lamp/apache/conf/httpd.conf
" then add " AddHandler application/x-httpd-php .php " with in the
<IfModule mime_module> .......
</IfModule>
[root@masterdns php-5.4.8]# vim
/usr/local/lamp/apache/conf/httpd.conf
........................
........................
<IfModule mime_module>
........................
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler
application/x-httpd-php
.php .html
.........................
.........................
</IfModule>
Check
Everything works properly.
Create an index.php
under /usr/local/lamp/apache/htdocs/ with the following contents.
[root@masterdns src]# vim
/usr/local/lamp/apache/htdocs/phpinfo.php
<?php
phpinfo();
?>
Now
restart the all Services.
[root@masterdns src]#
/usr/local/lamp/apache/bin/apachectl start
httpd
(pid 13198) already running
[root@masterdns src]# service
mysqld restart
Shutting down MySQL.... SUCCESS!
Starting MySQL...... SUCCESS!
.………………………………………………….
….……………………………………………….
…………………………………………………..
…………………………………………………..
Making phpinfo.php as the default
page.
Edit
the/usr/local/lamp/apache/conf/httpd.conf as follows.
<IfModule dir_module>
DirectoryIndex
index.html
</IfModule>
Change to…..
<IfModule dir_module>
DirectoryIndex
phpinfo.php index.html
</IfModule>
Removing the Installed LAMP
server.
You can
simply uninstall the lamp server by removing the directories in which you have
installed the source code but before
doing this you should properly stop the running services.
[root@masterdns ~]# /usr/local/lamp/apache/bin/apachectl stop
[root@masterdns
~]# service mysqld stop
[root@masterdns
~]# rm -rf /usr/local/lamp/apache
[root@masterdns
~]# rm -rf /usr/local/lamp/mysql
[root@masterdns
~]# rm -rf /usr/local/lamp/php