×××LAMP环境

一,LAMP环境概述

LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器。是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

选择源码安装的理由:

使用源代码安装httpd可以获得最新的版本,因为每个软件发布更新时都源代码更新,另外就是功能齐全,源代码安装时保留了最初的信息。另外使用源代码安装非常的灵活,可以根据自己的要去设置相关的信息。

二,搭建LAMP的目的:

依据Apache的工作原理,搭建LAMP环境来架设网页论坛phpwind

wKioL1XcUxCQ_vVnAAE62-OUoV0410.jpg

三,搭建LAMP的环境:

虚拟机运行平台 VM10.0

类Linux系统为centos6.5

Apache为httpd-2.4.9.tar.bz2

mysql为mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz

PHP为php-5.4.13.tar.bz2

其余的软件包为:

Discuz_X3.1_SC_GBK.zip

apr-1.4.6.tar.gz

apr-util-1.5.1.tar.gz

xcache-3.1.0.tar.gz

编译所需的环境包:

Development tools   (一般情况下只安装这一个就可以了)

Serve platform development

Additional development

使用源码安装的好处

  1. 1.可安装最新的版本

  2. 2.有着更加丰富的功能

  3. 3.个性化设置

Apache和PHP结合的三种方式

  1. 1.模块

  2. 2.CGI

  3. 3.Fastcgi  (PHP服务可以与Apache服务器分离,从而可以做到负载均衡)

四,LAMP环境实验拓扑(靠模块安装)

wKioL1XcUyfxL8DQAAEhk3Ko3f4567.jpg

在进行实验之前,我们应该首先检查系统中是否安装的有与实验相关的软件包,如果之前安装过,则要清除

1.安装必要的软件包

[root@localhost Packages]# yum --disablerepo=\* --enablerepo=c6-media install pcre-devel openssl-devel libaio  libaio-devel libxml2-devel libpng-devel libjpeg-turbo-devel –y


wKiom1XcUSTDNPAGAAE-ataUwsw834.jpg


2.搭建Apache环境

对于Apache环境进行源码构建时,需要依赖aprapr-util

对下载的aprapr-util以及httpd源代码包拆解到/usr/local/src目录下

(1)拆解apr包:tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

(2)拆解apr-util 包:tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/

(3)拆解httpd包:tar -jxvf httpd-2.4.9.tar.bz2 -C /usr/local/src/


wKiom1XcUTOTP3e9AACs3ftsU9I798.jpg



(4)安装apr

   

 cd apr-1.4.6/



(5)安装编译工具软件包

yum --disablerepo=\*  --enablerepo=c6-media groupinstall "Development tools" –y


wKiom1XcUVOjV6_DAADrB__R4D4101.jpg


(6)检测编译环境:./configure --prefix=/usr/local/apr

wKioL1XcU9fDIaS4AAEKgn6NARM049.jpg

(7)编译并安装:make && make install


wKioL1XcVBSAvAHxAADPovJ5Svs034.jpg



(8)同样的道理,我们进入到apr-util的目录下安装apr-util

[root@localhost apr-util-1.5.1]# ./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr/bin/apr-1-config


wKioL1XcVBSAvAHxAADPovJ5Svs034.jpg


(9)预编译环境没有问题后,编译并安装

[root@localhost apr-util-1.5.1]# make && make install


wKiom1XcUinj5zirAAEmk0zwhoE524.jpg


(10)安装Apache

进入Apache代码包解压的目录下    cd httpd-2.4.9/
预编译执行下列选项:
[root@localhost httpd-2.4.4]#
./configure  \
--prefix=/usr/local/apache  \
--sysconfdir=/etc/httpd \
--enable-so \
--enable-ssl  \
--enable-rewrite  \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr-util/bin/apu-1-config \
--with-pcre  \
--with-z  \
--enable-mpms-shared=all \
--with-mpm=prefork

wKiom1XcUnKiAgzhAAFeiby_6vo519.jpg

11)编译并安装

[root@localhost httpd-2.4.4]# make && make install


wKiom1XcUonRWNfMAAFPS4geBZ0957.jpg


12)安装之后进入配置文件目录,查看配置文件  cd /etc/httpd/conf


wKiom1XcUpuwFKqgAACSEIYL74A760.jpg

(13)进入bin目录,启动Apache。  cd /usr/local/apache/bin

wKioL1XcVMbTD3uOAAFOm9T9BuE356.jpg

(14)启动Apache服务   ./httpd -k start

[root@localhost bin]# ./httpd -k start


15)查看80端口是否开启。 netstat -tupln |grep httpd

wKiom1XcUsaSa7D2AAA_kFF5yTA986.jpg


16)关闭防火墙以及安全机制,之后对Apache进行测试

[root@localhost bin]# service iptables stop  
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@localhost bin]# setenforce 0
[root@localhost bin]#

http://192.168.3.100


wKioL1XcVO7xqVoBAACFGK8zAB8811.jpg


17)改变apache的环境变量,打开文件

[root@localhost bin]# vim /etc/profile

wKiom1XcUumxKnoaAABuXBaKAF8744.jpg

写在export之前,export作用是把变量输出为环境变量

(18)编写Apache的控制脚本

cd /etc/init.d/
[root@localhost bin]# cd /etc/init.d
[root@localhost init.d]# touch httpd
[root@localhost init.d]# chmod a+x httpd
[root@localhost init.d]# vim httpd

程序脚本如下:

#!/bin/bash
# chkconfig: 2345 88 99
# desceription: the apache server

prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd

start() {
       if [ -e $lockfile ]; then
       echo "the apache server is started"
       else
       echo -n "the apache server is starting....."
       $prog -k start &>/dev/null
       fi
       [ "$?" -eq 0 ] && echo -e " \t [\033[32m  ok \033[0m ]" && touch $lockfile ||echo -e " [\033[31m  fail \033[0m  ] "
}

stop () {
       if [ ! -e $lockfile ];then
       echo "the apache server is stoped"
       else
       echo -n "the apache server is stoping....."
       $prog -k stop  &>/dev/null
       fi
       [ "$?" -eq 0 ] && echo -e "[\033[32m ok \033[0m ]" && rm -rf $lockfile ||echo -e "[\033[31m fail \033[0m]"
}

case "$1" in
       start)
               start
               ;;
       stop)
               stop
               ;;
       restart)
               stop
               start
               ;;
*)
echo "USAGE:start|stop|restart"
       ;;
esac

(19)编写好之后,测试开机脚本

wKiom1XcUwrBPgwlAADjGWE3R1w045.jpg


20)加入命令

[root@localhost init.d]# chkconfig --add httpd

wKioL1XcVUKg5couAABnVMNc4EM728.jpg


21)库文件

[root@localhost usr]# vim /etc/id.so.conf.d/apr.conf

wKiom1XcUz6AiacHAABLGOwtB1s201.jpg

刷新缓存

Idconfig
[root@new ld.so.conf.d]# ldconfig -pv |grep apr

22)头文件链接 /usr/include

[root@localhost include]# ln -s /usr/local/apache/include/ apache


23)手册创建

[root@localhost usr]# vim /etc/man.config

wKiom1XcU0-QtkKEAADBYfxU0OM787.jpg

3搭建mysql环境

(1)拆解mysql代码包到/usr/local目录下

[root@localhost yuanma]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

wKiom1XcU2LwaSI2AAF_ND7SKlc190.jpg

(2)进入到拆解的目录下

cd /usr/loca

wKioL1XcVYfRkFg7AAHeJh325-4565.jpg查看和mysql相关的包,将其删除

[root@localhost ~]# rpm -qa |grep mysql
[root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media remove mysql-libs -y
也可以用这个语句直接卸rpm -e mysql-libs --nodeps

(3)为了后面的实验方便,我们为mysql创建一个连接

[root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql

wKiom1XcU4mDShP_AAHTbximydU082.jpg

(4)进入mysql目录,创建mysql组,系统账号mysql,更改该目录下的用户和所属组为mysql,之后对数据库进行初始化。

[root@localhost local]# cd mysql
[root@localhost mysql]# groupadd -r mysql
[root@localhost mysql]# useradd -r -g mysql mysql
[root@localhost mysql]# chown -R mysql:mysql .  ***不要忘了最后的“.”
[root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql

wKiom1XcU6vBBIWiAADzB03cNXQ905.jpg

(5)拷贝mysql的配置文件到/etc目录下,更改用户为root,对于data/目录的用户为mysql

[root@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql data/

[root@localhost support-files]# cp my-medium.cnf /etc/my.cnf

(6)拷贝mysql的脚本文件到/etc/init.d目录下

[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld

wKioL1XcVdWgvp4sAABUoAXN0wg938.jpg

(7)开启mysql,并查看3306端口是否开启

[root@localhost support-files]# service mysqld start
[root@localhost support-files]# netstat -tupln |grep mysql

wKiom1XcU83SjquRAACgEYJFwX0126.jpg

(8)/etc/profile文件中添加mysql的链接路径,添加后刷新/etc/profile文件. /etc/profile

[root@localhost bin]# vim /etc/profile

wKioL1XcVfOy_tklAACQS7jSTmU285.jpg

[root@localhost bin]# . /etc/profile

(9)链接mysql

wKiom1XcU-7A5Lj2AACuc3D-ShU305.jpg

(10)为mysql的后期管理创建账号和密码

[root@localhost ~]# mysqladmin -u root -p password '123'


wKioL1XcVhfyMv-JAABG4kQg3ls840.jpg

(输入密码时直接回车)

添加开机自启动

[root@localhost ~]# chkconfig --add mysqld


11)添加mysql的库文件搜索路径

[root@localhost ~]# vim /etc/ld.so.conf.d/mysql.conf

wKiom1XcVBvSEPBpAABXkXZIj9M395.jpg

(12)ldconfig刷新,ldconfig –pv|grep mysql查看mysql库文件路径


wKiom1XcVEnCuK_zAADOr-e5CR0275.jpg

13)手册

[root@localhost ~]# vim /etc/man.config

wKioL1XcVnaDA3SpAAEFyrkS_eU059.jpg


4.搭建PHP环境

(1)拆解PHP的代码包到/usr/local/src目录下

[root@localhost lamp]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src/

wKiom1XcVHTANqBtAADlfhnnRl0615.jpg

(2)进入拆解的目录下,查看相关的文件

cd /usr/local/src/php-5.4.13/


wKiom1XcVISRrmXnAAERpJupvh0778.jpg



3)执行预编译选项

[root@localhost php-5.5.8]# ./configure  \
> --prefix=/usr/local/php \
> --with-config-file-path=/etc/php  \
> --with-config-file-scan-dir=/etc/php5.d  \
> --with-apxs2=/usr/local/apache/bin/apxs  \
> --with-mysql=/usr/local/mysql \
> --with-pdo-mysql=/usr/local/mysql \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --enable-mbstring \
> --with-zlib \
> --with-gd

wKioL1XcVrHgmvt2AAGbZX5VU44079.jpg

(4)执行编译和安装

make && make install

[root@localhost php-5.5.8]# make && make install

wKiom1XcVKuDCpz3AAGZP-48dRs142.jpg

5)在/etc目录下创建php和php5.d目录,拷贝php.ini-production 到/etc/php.ini

[root@localhost php]# mkdir /etc/php /etc/php5.d

进入目录

[root@localhost htdocs]# cd /usr/local/src/php-5.5.8/
[root@localhost php-5.5.8]# cp php.ini-production /etc/php.ini

进行重启:

wKioL1XcVtThRRFAAABZ9eIC7Q8038.jpg


(6)在Apache的配置文件中添加php的解释语句

[root@localhost php]# vim /etc/httpd/httpd.conf

在httpd.conf  加入  AddType application/x-httpd-php .php

wKiom1XcVNDQ5LpdAADIaqL2uvo389.jpg

指明首页:

wKioL1XcVvXiXVVCAACHzd3pk60252.jpg

Apache进行重启

wKiom1XcVPHTDI9eAABcY0nuA8g544.jpg

(7)在/usr/local/apache/htdocs/目录下,编写index.php文件

vim index.php

wKioL1XcVx7hptubAABRGD4mKzE292.jpg


(8)测试能否链接php,http://192.168.2.102/index.php



wKiom1XcVRzAYGrVAAFkElHuInc558.jpg


9)测试php与mysql的结合,建新的页面index.php

wKioL1XcV0DgUHabAACs_mB_gWs474.jpg

[root@localhost htdocs]# vim index1.php

wKiom1XcVTqg7vQuAABzvhfMJr8642.jpg

http://192.168.3.100/index1.php

wKioL1XcV2azWCk_AABV0JCOD_I465.jpg

5.为php添加加速缓存xcache

(1)拆解xcache代码包到/usr/local/src/目录下

[root@localhost lamp]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src/

wKiom1XcVWCilSJGAAEi4OfYO0c707.jpg

(2)在xcache的目录下执行/usr/local/php/bin/phpize链接php的内容

wKioL1XcV4bBitDMAACtkQ7puZk238.jpg

(3)执行预编译选项

./configure
--enable-xcache  
--with-php-config=/usr/local/php/bin/php-config

wKiom1XcVX6wFArTAAEZ_QKRz2U012.jpg

(4)编译并安装

make && make install

wKioL1XcV6iAoiSNAADAg2RjNrM841.jpg

拷贝ini文件

wKiom1XcVe_gg_AnAAB2bEHhm9s658.jpg

wKioL1XcWEbS1QXgAAB58UTV4PI999.jpg

wKioL1XcWFWA2DaaAACacphn4ts125.jpg


(5)拷贝xcache.so模块文件和xcache.ini文件到/etc/php5.d/目录下

cp /usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so  /etc/php5.d/

wKiom1XcVk7BqEcjAAD21oZ-Vek196.jpg

wKioL1XcWH7xgn2RAAEpCtbQzpU317.jpg

wKiom1XcVnrCGJGdAABz4KR_2GE716.jpg


(6)访问index.php  看看php中是否加载了xcache

wKioL1XcWJ-wPbrSAABwyzx_UUU472.jpg

wKiom1Xc***S9bO6AAA21araw7k816.jpg

wKioL1XcWMDB6SM3AAEjkpR42Ho878.jpg


7)实现身份验证cd  /etc/php5.d

[root@localhost php5.d]# vim xcache.ini

wKiom1XcVr_Ry8kdAAFHwOkrKww581.jpg

wKioL1XcWOiRkAtoAAC91hpWAq8984.jpg

[root@localhost php5.d]# cd /usr/local/src/xcache-3.1.0/
[root@localhost xcache-3.1.0]# cp -r htdocs /usr/local/apache/htdocs/admin

之后进行重启

wKiom1XcVuWC-Ar6AACVQtCxRbI278.jpg

测试:

wKioL1XcWQ-Dj0UWAAC-CBPykHk624.jpg

输入账户名,密码

wKioL1XcWSbzHZs0AAHBjwAhqyQ223.jpg


6.在LAMP的环境基础上建设web网页论坛 Discuz

Unzip phpwind_GBK_8.3.zip

[root@localhost mnt]# cd phpwind_GBK_8.3
[root@localhost phpwind_GBK_8.3]# mv upload /usr/local/apache/htdocs/phpwind

wKiom1XcVzWjNaipAAEQ77akvT8849.jpg

(2)访问http://10.100.106.200/phpwind开始搭建


wKioL1XcWWLBV0tHAAEUimGApyU866.jpg

改变权限:

[root@localhost phpwind]# chmod -R 777 data/ html/ p_w_upload/


wKiom1XcV17gckbJAAGrM9rDIQ0668.jpg


进入数据库在数据库中创建要使用的库phpwind

wKioL1XcWYei3eYaAACpuXdP_us615.jpg

wKiom1XcV4vidI3eAAC-gE10v8I535.jpg

填入论坛数据信息

wKiom1XcV52RzBEMAAEuIFcBkFQ393.jpg

wKioL1XcWcPj2B05AAC9JO2ibq8255.jpg

wKioL1XcWdWjDv5vAACbNhpZ9-A433.jpg

wKioL1XcWePCRkicAADZeLYnMm0619.jpg

删除install.php文件

wKiom1XcV92TOmWOAADGwmP-9GE981.jpg


wKiom1XcV_Lxb9cgAAF0qNacbLw969.jpg

至此,我们已经完成了论坛的创建,用户可以登陆后台的管理界面,根据自己的需求对论坛进行相关的管理。



测试网站的性能,进入光盘安装httpd-tools

[root@localhost Packages]# yum --disablerepo=\* --enablerepo=c6-media install httpd-tools –y

wKiom1XcWASihyViAAEZ1GgQzK8693.jpg

压力测试

[root@localhost mnt]# ab -n 1000 -c 500 http://192.168.3.100/phpwind/index.php

wKiom1XcWBTSvtyvAAGB8DbXy9k072.jpg

wKiom1XcWCTh_WA7AAC6aPzETE8563.jpg

Fastcgi的结合方式安装

ApacheMySQL的安装都是一样的,前面已经操作过了,就只说PHP的安装了

源码包为php-5.5.8.tar.bz2

拆解包到源码目录

[root@new ~]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src/
[root@new ~]# cd /usr/local/src/php-5.5.8/
[root@new php-5.5.8]# ./configure  \
> --prefix=/usr/local/php \
> --with-config-file-path=/etc/php  \
> --with-config-file-scan-dir=/etc/php5.d  \
> --enable-fpm \
> --enable-sockets \
> --with-mysql=/usr/local/mysql \
> --with-pdo-mysql=/usr/local/mysql \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --enable-mbstring \
> --with-zlib \
> --with-gd \

发现配置出错,检查发现少了libxml2-devel

wKioL1XcWkrSujHYAADhvHLGKBw471.jpg

[root@new php-5.5.8]# yum --disablerepo=\* --enablerepo=c6-media install libxml2-devel –y

继续执行配置,又出现错误,检查

[root@new php-5.5.8]# yum --disablerepo=\* --enablerepo=c6-media install libpng-devel –y

继续配置

wKiom1XcWEXRC2DzAAE5HxKT6d4487.jpg

[root@new php-5.5.8]# make && make install

拷贝配置文件/usr/local/php/etc
[root@new etc]# cp php-fpm.conf.default /etc/php-fpm.conf

拷贝控制脚本/usr/local/src/php-5.5.8/sapi/fpm
[root@new fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@new php-5.5.8]# chmod a+x /etc/init.d/php-fpm

拷贝PHP.ini   /usr/local/src/php-5.5.8
[root@new php-5.5.8]# mkdir /etc/php
[root@new php-5.5.8]# cp php.ini-production /etc/php/php.ini

开启PHP
[root@new etc]# service php-fpm start
Starting php-fpm  done

wKiom1XcWFXT7SjWAACWwCqZ_NY862.jpg

加入开机自启动

[root@new etc]# chkconfig --add php-fpm

[root@new etc]# chkconfig --list |grep php-fpm

php-fpm             0:off       1:off       2:on       3:on       4:on       5:on       6:of

PHP单独服务器已经做好

Apache服务器配置

[root@new etc]# vim /etc/httpd/httpd.conf

wKioL1XcWorD4l4YAAHhB5xmu1U229.jpg

添加语句

wKiom1XcWIjhCuzsAACUxIE2K30347.jpg

指明首页

wKiom1XcWKejxc11AABS_dN8Z10344.jpg

关闭正向代理,指明当访问PHP页面时,转到的fcgi的地址uri

wKioL1XcWtDBwW5oAAB6Xqb79vM804.jpg

[root@new local]# service httpd restart


测试,OK

wKiom1XcWMnx-stJAABTwOEMivc531.jpg