一、LAMP简介
1.什么是LAMP
LAMP是一种Web网络应用和开发环境,是Linux,Apache,MySQL,Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件。
LAMP这个词的由来最早始于德国杂志“c'tMagazine”,MichaelKunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组件经常在一起使用。这些组件的兼容性也在不断完善,为了改善不同组件之间的协作,已经创建了某些扩展功能,在一起的应用情形变得非常普便,因而成为目前最流行的web应用基础架构。
2.LAMP的组件
平台由四个组件组成,呈分层结构,每一层都提供了整个架构的一个关键部分:
Linux:Linux处在最底层,提供操作系统。它的灵活性和可定制化的特点意味着它能够产生一种高度定制的平台,让其它组件在上面运行。其它组件运行于Linux之上,但是并不一定局限于Linux,也可以在MicrosoftWindows,MacOSX或UNIX上运行。
Apache:Apache位于第二层,它是一个Web服务平台,提供可让用户获得Web页面的机制。Apache是一款功能强大、稳定、可支撑关键任务的Web服务器,Internet上超过50%的网站都使用它作为Web服务器。
MySQL:MySQL是最流行的开源关系数据库管理系统,是LAMP的数据存储端。在Web应用程序中,所有帐户信息、产品信息、客户信息、业务数据和其他类型的信息都存储于数据库中,通过SQL语言可以很容易地查询这些信息。
PHP/Perl:Perl是一种灵活的语言,特别是在处理文本要素的时候,这种灵活性使Perl很容易处理通过CGI接口提供的数据,灵活地运用文本文件和简单数据库支持动态要素。PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,尤其适合web开发。可以使用PHP编写能访问MySQL数据库中的数据和Linux提供的一些特性的动态内容。

二、系统环境
操作系统:CentOS6.464位
Ip地址:192.168.0.3
apache版本:httpd-2.4.6
mysql版本:mysql-5.5.10

php版本:php-5.5.5

三、安装前的准备
1.安装需要用到的工具

yum -y install wget  make gcc gcc-c++ zlib zlib-devel openssl openssl-devel gd freetype freetype-devel autoconf libjpeg libpng libpng-devel libxml2 curl libcurl libcurl-devel ncurses-devel

2.下载软件

cd /usr/local/src/
wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz
wget http://archive.apache.org/dist/apr/apr-1.4.8.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.tar.gz
wget http://mirror.esocc.com/apache//httpd/httpd-2.4.6.tar.gz
wget http://downloads.skysql.com/archives/mysql-5.5/mysql-5.5.10.tar.gz
wget http://us1.php.net/get/php-5.5.5.tar.gz/from/cn2.php.net/mirror

四、安装jdk、apache、mysql、php
1.安装jdk

rpm -qa |grep java   #查看已安装的jdk包
rpm -e --nodeps <包的名字>   #卸载已安装的jdk
tar -zxvf jdk-7u45-linux-x64.tar.gz
mv jdk 1.7.0_45 /usr/local/jdk
vi ~/.bash_profile

添加下面两行

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

将下面行

PATH=$PATH:$HOME/bin

修改为

PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

注:把新安装的jdk的bin目录添加在$PATH的前面,这样当系统中有多个jdk版本时,会优先搜寻排在前面的jdk版本。

source ~/.bash_profile
java -version   # 查看java的版本

2.安装mysql
(1)安装cmake

tar -zxvf cmake-2.8.11.2.tar.gz
cd cmake-2.8.11.2
./configure
make
make install

(2)安装mysql

cd ..
tar -zxvf mysql-5.5.10.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1 -DWITH_SSL=system
make
make install
groupadd mysql
useradd -g mysql mysql
vi /etc/passwd    #修改passwd文件禁止mysql登陆

找到以下行将/bin/bash改为/sbin/nologin

mysql:x:498:500::/home/mysql:/sbin/nologin
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chown -R mysql.mysql /usr/local/mysql/data
vi /etc/my.cnf

在[mysqld]下面加入以下两行,否则会出问题

basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

启动mysql

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
/usr/local/mysql/bin/mysqladmin -u root -h localhost password '密码'

登陆mysql测试

mysql -u root -p

输入密码:

exit

将mysql加入系统服务

chkconfig --add mysql
chkconfig mysql on
service mysql stop
service mysql start

3.安装apache
(1)卸载相关的工具

yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

(2)安装apr

cd /usr/local/src
tar -zxvf apr-1.4.8.tar.gz
cd apr-1.4.8
./configure --prefix=/usr/local/apr
make
make install

(2)安装apr-util

cd ..
tar -zxvf apr-util-1.5.2.tar.gz
cd apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

(3)安装pcre

cd ..
tar -zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure --prefix=/usr/local/pcre
make
make install

(4)安装apache

cd ..
tar -zxvf httpd-2.4.6.tar.gz
cd httpd-2.4.6
./configure --prefix=/usr/local/apache --enable-module=so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-libxml2
make
make install

4.安装php

cd ..
tar -zxvf php-5.5.5.tar.gz
cd php-5.5.5
./configure --prefix=/usr/local/php --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --with-curl --with-gd --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --enable-gd-native-ttf --enable-sockets --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib --with-openssl --with-libxml-dir --enable-ftp

#注:/usr/local/lib为php配置文件的目录,可自定义

make
make install
cp php.ini-production /usr/local/lib/php.ini

五、配置apache

vi /usr/local/apache/conf/httpd.conf
Listen 80
Listen 8080   #增加8080端口,可增加多个端口
ServerName www.example.com:80    #去掉前面的#号
DirectoryIndex index.html index.htm default.htm default.html index.php index.php3 index.jsp
Include conf/extra/httpd-vhosts.conf   #去掉前面的#号
#增加以下两行
AddType application/x-httpd-php .php .phtml .php3 .inc
AddType application/x-httpd-php-source .phps
vi /usr/local/apache/conf/extra/httpd-vhosts.conf

#按如下配置修改,创建两个虚拟站点,可创建多个站点

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache/htdocs/codexky"
ServerName www.codexky.com
ServerAlias www.codexky.com
ErrorLog "logs/www.codexky.com-error_log"
CustomLog "logs/www.codexky.com-access_log" common
</VirtualHost>
<VirtualHost *:8080>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache/htdocs/mycode"
ServerName localhost:8080
ServerAlias mycode
ErrorLog "logs/mycode-error_log"
CustomLog "logs/mycode-access_log" common
</VirtualHost>

#创建两个站点目录

mkdir /usr/local/apache/htdocs/codexky
mkdir /usr/local/apache/htdocs/mycode
/usr/local/apache/bin/apachectl start   #启动apache

#修改防火墙配置

vi /etc/sysconfig/iptables

#加入已经两条规则

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
service iptables restart

六、测试
1.创建php测试页

vi /usr/local/apache/htdocs/codexky/test.php
vi /usr/local/apache/htdocs/mycode/test.php

#分别创建两个站点的测试页,内容如下

<?php
phpinfo();
?>

2.测试
打开浏览器输入http://192.168.0.3/test.php和http://192.168.0.3:8080/test.php,看到如下页面则表示OK。

CentOS 6.4部署LAMP(多站点环境)_Linux

编辑本地hosts文件,添加如下内容

192.168.0.3 www.codexky.com

打开浏览器输入http://www.codexky.com/test.php,看到以上页面则表示OK。