Lamp的搭建

做实验需要用到的安装包

Apr-1.5.1.tar.bz2
Apr-util-1.5.3.tar.bz
http://apr.apache.org/download.cgi
httpd 2.4.10.tar.bz2
http://httpd.apache.org/download.cgi#apache24
Mysql  mariadb-5.5.36-linux-x86_64  教师FTP提供
php-5.4.31.tar.bz2
http://php.net/downloads.php#v5.4.31
xcache  xcache-3.1.0.tar
http://xcache.lighttpd.net/
Phpadmin  phpMyAdmin-3.5.1-all-languages.tar   教师FTP提供

lamp 源码包安装_第1张图片

Php做httpd的模块以fcgi协议工作示意图

一、mysql的安装

mariadb-5.5.36-linux-x86_64  通用绿色软件安装说明

平台说明  此版本必须是 x86  64 位操作系统,否则会出错

Linux centos 6.5

1、解压包并为mysql 创建专门保存数据的位置

Tar  xf  mariadb-5.5.36-linux-x86_64  -C /usr/local
划分一个10G的分区 /dev/sda3
Fdisk  /dev/sda
N
P
3
+10G
8e
w
partx -a /dev/sda
kpartx -a /dev/sda
cat /proc/partitions
pvcreate /dev/sdb3
pvcreate /dev/sda3
vgcreate myvg /dev/sda3
lvcreate -L 10G -n mydata /dev/myvg
mkfs -t ext4 -L MYDATA -b 4096 -m 3 /dev/myvg/mydata
Mkdir  mydata
vim /etc/fstab

wps_clip_p_w_picpath-27195

LABEL=MYDATA            /mydata                 ext4    defaults        0 0
Mount  -a
Mount
Mkdir /mydata/data

2、查看帮助文档并做准备工作

Tar  mariadb-5.5.36-linux-x86_64  -C /usr/local
Cd /usr/local/mariadb-5.5.36-linux-x86_64
Cat  COPYING.LESSER |  less


lamp 源码包安装_第2张图片

groupadd -r mysql   系统用户运行出于安全考虑
useradd -g mysql -r mysql
id mysql
chown -R mysql.mysql /mydata/data/
ln -sv mariadb-5.5.36-linux-x86_64/ mysql   安装新版本的mysql  可以直接链接过去
Cd mysql
Ls  -a
bin    二进制程序  mysql  mysqld
COPYING.LESSER
COPYING    安装软件连接的帮助文档
INSTALL-BINARY 
docs    文档
man     man手册
README    帮助文档
share        共享文档
support-files  mysql    配置的样例行文档
data     默认数据目录      
Include   头文件
lib        库文件    
mysql-test   测试组件
scripts     脚本
sql-bench  mysql 压力测试

3、修改配置文档

cp support-files/my-large.cnf  /etc/my.cnf

/etc/my.cnf

这个配置文档是

lamp 源码包安装_第3张图片

此文档和通用绿色软件给我们的示例文档对比

wps_clip_p_w_picpath-21061

N  如果覆盖会改变my.cnf的属性  避免冲突

Mkdir  /etc/mysql/

cp support-files/my-large.cnf  /etc/mysql/my.cnf

lamp 源码包安装_第4张图片

Vim /etc/mysql/my.cnf

lamp 源码包安装_第5张图片

4、mysql的初始化

帮助文档 cd /usr/local/mysql/scripts

./mysql_install_db --help

lamp 源码包安装_第6张图片

初始化失败,必须要在mysql目录下执行才行

lamp 源码包安装_第7张图片

初始化成功

lamp 源码包安装_第8张图片

查看结果

wps_clip_p_w_picpath-2200

5、提供服务脚本并启动

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

lamp 源码包安装_第9张图片

6、ss -tnl 查看3306 是否监听

7、mysql查找配置文件的方法是最后找.到的生效或者是全部找到之后合并起来

解释为什么 在/etc/mysql/my.cnf 两个文件的对比  也可以覆盖,只不过怕冲突多版本

wps_clip_p_w_picpath-6055

8、导出变量

wps_clip_p_w_picpath-12572

更新变量并尝试连接mariadb 数据库

lamp 源码包安装_第10张图片

9、导出库文件

vim /etc/ld.so.conf.d/mysql.conf

lamp 源码包安装_第11张图片

lamp 源码包安装_第12张图片

二、Httpd  的安装

基本包安装

pcre-devel-7.8-6.el6.x86_64
pcre.x86_64 7.8-6.el6 
上面这两个包是因为我下面安装要开启pcre功能而装的,具体视情况而定
组包
Desktop Platform Development
Development tools
Server Platform Development
Apache相关的依赖包
apr-1.5.1.tar.bz2
apr-util-1.5.3.tar.bz
http://apr.apache.org/download.cgi
Apache主程序
httpd 2.4.10.tar.bz2
http://httpd.apache.org/download.cgi#apache24
二、创建目录编译安装源码包
1、源码包安装apr
Cd  /usr/local
Mkdir /usr/local/{apr,apr-util,httpd}
Mkdir /etc/httpd24
Tar xf apr-1.5.1.tar.bz2
Cd  apr-1.5.1.tar.bz2
./configure apr-1.5.1.tar.bz2  --prefix=/usr/local/apr
Make && make install
2、安装源码包apr-util
Tar xf  apr-util-1.5.3.tar.bz
Cd  apr-util-1.5.3.tar.bz
./configure apr-util-1.5.3.tar.bz --prefix=/usr/local/apr-util  --with-apr=/usr/locar/apr 
告诉apr装载哪里,避免使用老版本,出现冲突
Make && make install
3、安装源码包httpd
Tar  xf  httpd 2.4.10.tar.bz2
Cd  httpd 2.4.10.tar.bz2
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl
--enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install

4、修改httpd的主配置文件,设置其Pid文件的路径

编辑/etc/httpd24/httpd.conf,添加如下行即可:

PidFile  "/var/run/httpd.pid"

lamp 源码包安装_第13张图片

5、提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:

可以使二进制httpd包安装后作为模板修改

Cd  /etc/rc.d/init.d

cp httpd httpd24

vim httpd24

注释掉这三行

wps_clip_p_w_picpath-28327

修改

Apachectl 启动程序配置文件

Httpd  二进制程序

pidfile  pid 文件

lamp 源码包安装_第14张图片

chkconfig --add httpd24  加入到sysv中

chkconfig --list httpd24  开机自启动

重启就可以啦

6、导出变量(命令)

vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
source /etc/profile.d/httpd24.sh
头文件导出
ln -sv /usr/local/apache/include/ /usr/include/httpd24
帮助手册
Vim /etc/man.config
MANPATH /usr/local/apache/man


重读配置文件

配置文件:

服务启动脚本

/etc/rc.d/init.d/httpd.24

主配置服务脚本

/etc/httpd24/httpd.conf

7、虚拟主机配置脚本服务启动

/etc/httpd24/extra/httpd-vhosts.conf
#!/bin/bash
#
# httpd  Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#        HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
stop() {
  echo -n $"Stopping $prog: "
  killproc -p ${pidfile} -d 10 $httpd
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
    echo -n $"Reloading $prog: "
    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
        RETVAL=$?
        echo $"not reloading due to configuration syntax error"
        failure $"not reloading $httpd due to configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}
# See how we were called.
case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
        status -p ${pidfile} $httpd
  RETVAL=$?
  ;;
  restart)
  stop
  start
  ;;
  condrestart)
  if [ -f ${pidfile} ] ; then
    stop
    start
  fi
  ;;
  reload)
        reload
  ;;
  graceful|help|configtest|fullstatus)
  $apachectl $@
  RETVAL=$?
  ;;
  *)
  Echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  exit 1
esac
exit $RETVAL

而后为此脚本赋予执行权限:

# chmod +x /etc/rc.d/init.d/httpd

加入服务列表:

# chkconfig --add httpd

三 、Php的安装

实验工作原理图

lamp 源码包安装_第15张图片

Php做httpd的模块以fcgi协议工作,mysql独立出来做服务器示意图

1、解决依赖关系:

php-5.4.31.tar.bz2
http://php.net/downloads.php#v5.4.31  下载地址
请配置好yum源(系统安装源及epel源)后执行如下命令:
# yum -y groupinstall "Desktop Platform Development"
# yum -y install bzip2-devel libmcrypt-devel
2、编译安装php-5.4.26
首先下载源码包至本地目录,下载位置ftp://172.16.0.1/pub/Sources/new_lamp。
# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl
 --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml 
--enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt 
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 
--enable-maintainer-zts
# make
# make test
# make install
说明:
1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安
装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的
MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
为php提供配置文件:
#pwd
#/usr/src/php-5.4.31
# cp php.ini-production /etc/php.ini     直接复制过去不用改
3、 编辑apache配置文件httpd.conf,以apache支持php
使php 作为httpd的模块结合起来
# vim /etc/httpd24/httpd.conf
添加pidfile文件 不改也可以

lamp 源码包安装_第16张图片

Php安装好了之后会在  LoadModule  在加一行

lamp 源码包安装_第17张图片

4、添加如下二行

   AddType application/x-httpd-php  .php

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

lamp 源码包安装_第18张图片

5、定位至DirectoryIndex index.html

   修改为:

DirectoryIndex  index.php  index.html

lamp 源码包安装_第19张图片

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

lamp 源码包安装_第20张图片

6、测试php作为httpd模块连接加mysql

编辑 /usr/local/apache/htdocs/index.php

lamp 源码包安装_第21张图片

内容

lamp 源码包安装_第22张图片

测试

lamp 源码包安装_第23张图片

再编辑连接数据库测试

lamp 源码包安装_第24张图片

连接一个数据库管理工具软件

phpMyAdmin-3.5.1-all-languages.tar.bz2
Tar  xf   phpMyAdmin-3.5.1-all-languages.tar.bz2
Mv   phpMyAdmin-3.5.1-all-languages.tar.bz2   mpa
Mv mpa  /usr/local/apache/htdocs

wps_clip_p_w_picpath-18626

为网页文件提供配置文件

Cd mpa

cp config.sample.inc.php config.inc.php

编辑网页内容

编辑配置文件  第二个  ’ ’ 中加随机数据

wps_clip_p_w_picpath-28810

7、这个软件工具要mariadb授权

Mysql

Show databases;

lamp 源码包安装_第25张图片

grant all on mysql.* to 'jack'@'localhost'identified by '1234';
grant all on mysql.* to 'jack'@'127.0.0.1'identified by '1234';
grant all on mysql.* to 'jack'@'192.168.%.%' identified by '1234';
flush privileges;

8、实验结果测试

lamp 源码包安装_第26张图片

lamp 源码包安装_第27张图片

tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2

mv  phpMyAdmin-3.5.1-all-languages pma

9、压力测试

ab -n 1000 -c 100 http://192.168.1.143/index.php

lamp 源码包安装_第28张图片

10、xcache 加速器的安装

http://xcache.lighttpd.net/
xcache-3.1.0.tar.gz 下载
Tar xf xcache-3.1.0.tar.gz
Cd  xcache-3.1.0.tar.gz
man -M /usr/local/php/php/man/ phpize  查看帮助文档

1、配置文件的生成

/usr/local/php/bin/phpize  生成配置文档

lamp 源码包安装_第29张图片

2、编译

./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
Make && make install

lamp 源码包安装_第30张图片

提供配置文件

mkdir /etc/php.d
cp xcache.ini /etc/php.d
cd /etc/php.d

3、修改配置文档

Vim  /etc/php.d/xcache  指定搜索路径

lamp 源码包安装_第31张图片

Service httpd24 restart

4、新建测试网页

Vim /usr/local/apache/htdocs/index.php

lamp 源码包安装_第32张图片

5、测试查看是否启用了xcache

lamp 源码包安装_第33张图片

刷新网页  http:/192.168.1.143/index.php

6、再次用ab 做压测 

ab -n 1000 -c 100 http://192.168.1.143/index.php

lamp 源码包安装_第34张图片

lamp 源码包安装_第35张图片

8、配置显示主机状态信息

Vim /etc/httpd24/httpd.cnf

lamp 源码包安装_第36张图片

Service httpd24 reload

查看信息

lamp 源码包安装_第37张图片

Lamp三层结构工作实验

lamp 源码包安装_第38张图片

                                                    http以fast-cgi协议工作的三层结构示意图

Lamp   fpm   做反向代理

由于以前已经编译过啦

mv php-5.4.31 php-5.4.31module.bak
1、重新编译php  php-5.4.31.tar.bz2
Tar xf php-5.4.31.tar.bz2
Cd php-5.4.31
./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-openssl
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml 
--enable-sockets --enable-fpm   --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
--with-bz2
Make && make install
cd /etc/httpd24/
mv httpd.conf httpd.conf.module
cp httpd.conf.bak httpd.conf

Vim  /etc/httpd24/httpd.cnf

2、启用fast cig模块代理

lamp 源码包安装_第39张图片

3、为fpm  提供配置文件

[root@www php-5.4.31]# cp php.ini-production /etc/php.ini    y  覆盖之前的
[root@www php-5.4.31]# rm /etc/php.d/xcache.ini   y   xcache 没有 cgi模块
[root@www php-5.4.31]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@www php-5.4.31]# chmod +x /etc/rc.d/init.d/php-fpm
[root@www php-5.4.31]# chkconfig --add php-fpm
[root@www php-5.4.31]# cd /usr/local/php5/
[root@www php5]# ls -a
.  ..  bin  etc  include  lib  php  sbin  var
[root@www php5]# cd etc/
[root@www etc]# ls
pear.conf  php-fpm.conf.default
[root@www etc]# cp php-fpm.conf.default php-fpm.conf
[root@www etc]# vim php-fpm.conf   指定pid位置

lamp 源码包安装_第40张图片

4、修改线程数

lamp 源码包安装_第41张图片

[root@www etc]# service php-fpm start

Starting php-fpm  done

[root@www etc]# ss -tnl

LISTEN     0      128                       127.0.0.1:9000                                       *:*    

5、修改配置文档 

Vim  /etc/httpd24/httpd.cnf  修改下面两个地方

lamp 源码包安装_第42张图片

lamp 源码包安装_第43张图片

[root@www httpd24]# /usr/local/apache/bin/httpd -t
Syntax OK
[root@www httpd24]# service httpd24 restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                             [  OK  ]

6、实验结果

lamp 源码包安装_第44张图片

7、压力测试

ab -n 1000 -c 100 http://192.168.1.143/index.php

lamp 源码包安装_第45张图片

8、重新编译xcache

[root@www src]# mv xcache-3.1.0.bak xcache-3.1.0.module.bak
[root@www src]# tar xf xcache-3.1.0.tar.gz
[root@www src]# cd xcache-3.1.0
[root@www xcache-3.1.0]# /usr/local/php5/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[[email protected]]#./configure--enable-xcache--with-php-config=/usr/local/php5/bin/php-config
Make  &&  make  install
Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/
提供php搜索路径
[root@www xcache-3.1.0]# cp xcache.ini /etc/php.d
[root@www xcache-3.1.0]# vim /etc/php.d/xcache.ini

wps_clip_p_w_picpath-21640

重启反向代理

[root@www xcache-3.1.0]# service php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

9、实验结果及压力测试

lamp 源码包安装_第46张图片

压力测试

lamp 源码包安装_第47张图片