lamp 源码包安装

时间:2021-03-12 12:52:09

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 源码包安装

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/sda3Fdisk  /dev/sdaNP3+10G8ewpartx -a /dev/sdakpartx -a /dev/sdacat /proc/partitionspvcreate /dev/sdb3pvcreate /dev/sda3vgcreate myvg /dev/sda3lvcreate -L 10G -n mydata /dev/myvgmkfs -t ext4 -L MYDATA -b 4096 -m 3 /dev/myvg/mydataMkdir  mydatavim /etc/fstab

lamp 源码包安装

LABEL=MYDATA            /mydata                 ext4    defaults        0 0Mount  -aMountMkdir /mydata/data

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

Tar  mariadb-5.5.36-linux-x86_64  -C /usr/localCd /usr/local/mariadb-5.5.36-linux-x86_64Cat  COPYING.LESSER |  less


lamp 源码包安装

groupadd -r mysql   系统用户运行出于安全考虑useradd -g mysql -r mysqlid mysqlchown -R mysql.mysql /mydata/data/ln -sv mariadb-5.5.36-linux-x86_64/ mysql   安装新版本的mysql  可以直接链接过去Cd mysqlLs  -abin    二进制程序  mysql  mysqldCOPYING.LESSERCOPYING    安装软件连接的帮助文档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 源码包安装

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

lamp 源码包安装

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

Mkdir  /etc/mysql/

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

lamp 源码包安装

Vim /etc/mysql/my.cnf

lamp 源码包安装

4、mysql的初始化

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

./mysql_install_db --help

lamp 源码包安装

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

lamp 源码包安装

初始化成功

lamp 源码包安装

查看结果

lamp 源码包安装

5、提供服务脚本并启动

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

lamp 源码包安装

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

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

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

lamp 源码包安装

8、导出变量

lamp 源码包安装

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

lamp 源码包安装

9、导出库文件

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

lamp 源码包安装

lamp 源码包安装

二、Httpd  的安装

基本包安装

pcre-devel-7.8-6.el6.x86_64pcre.x86_64 7.8-6.el6 上面这两个包是因为我下面安装要开启pcre功能而装的,具体视情况而定组包Desktop Platform DevelopmentDevelopment toolsServer Platform DevelopmentApache相关的依赖包apr-1.5.1.tar.bz2apr-util-1.5.3.tar.bzhttp://apr.apache.org/download.cgiApache主程序httpd 2.4.10.tar.bz2http://httpd.apache.org/download.cgi#apache24二、创建目录编译安装源码包1、源码包安装aprCd  /usr/localMkdir /usr/local/{apr,apr-util,httpd}Mkdir /etc/httpd24Tar xf apr-1.5.1.tar.bz2Cd  apr-1.5.1.tar.bz2./configure apr-1.5.1.tar.bz2  --prefix=/usr/local/aprMake && make install2、安装源码包apr-utilTar xf  apr-util-1.5.3.tar.bzCd  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 install3、安装源码包httpdTar  xf  httpd 2.4.10.tar.bz2Cd  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=eventmake && make install

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

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

PidFile  "/var/run/httpd.pid"

lamp 源码包安装

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

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

Cd  /etc/rc.d/init.d

cp httpd httpd24

vim httpd24

注释掉这三行

lamp 源码包安装

修改

Apachectl 启动程序配置文件

Httpd  二进制程序

pidfile  pid 文件

lamp 源码包安装

chkconfig --add httpd24  加入到sysv中

chkconfig --list httpd24  开机自启动

重启就可以啦

6、导出变量(命令)

vim /etc/profile.d/httpd24.shexport PATH=/usr/local/apache/bin:$PATHsource /etc/profile.d/httpd24.sh头文件导出ln -sv /usr/local/apache/include/ /usr/include/httpd24帮助手册Vim /etc/man.configMANPATH /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/functionsif [ -f /etc/sysconfig/httpd ]; then        . /etc/sysconfig/httpdfi# 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/apachectlhttpd=${HTTPD-/usr/local/apache/bin/httpd}prog=httpdpidfile=${PIDFILE-/var/run/httpd.pid}lockfile=${LOCKFILE-/var/lock/subsys/httpd}RETVAL=0start() {        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 1esacexit $RETVAL

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

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

加入服务列表:

# chkconfig --add httpd

三 、Php的安装

实验工作原理图

lamp 源码包安装

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

1、解决依赖关系:

php-5.4.31.tar.bz2http://php.net/downloads.php#v5.4.31  下载地址请配置好yum源(系统安装源及epel源)后执行如下命令:# yum -y groupinstall "Desktop Platform Development"# yum -y install bzip2-devel libmcrypt-devel2、编译安装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 源码包安装

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

lamp 源码包安装

4、添加如下二行

   AddType application/x-httpd-php  .php

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

lamp 源码包安装

5、定位至DirectoryIndex index.html

   修改为:

DirectoryIndex  index.php  index.html

lamp 源码包安装

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

lamp 源码包安装

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

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

lamp 源码包安装

内容

lamp 源码包安装

测试

lamp 源码包安装

再编辑连接数据库测试

lamp 源码包安装

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

phpMyAdmin-3.5.1-all-languages.tar.bz2Tar  xf   phpMyAdmin-3.5.1-all-languages.tar.bz2Mv   phpMyAdmin-3.5.1-all-languages.tar.bz2   mpaMv mpa  /usr/local/apache/htdocs

lamp 源码包安装

为网页文件提供配置文件

Cd mpa

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

编辑网页内容

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

lamp 源码包安装

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

Mysql

Show databases;

lamp 源码包安装

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 源码包安装

lamp 源码包安装

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 源码包安装

10、xcache 加速器的安装

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

1、配置文件的生成

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

lamp 源码包安装

2、编译

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

lamp 源码包安装

提供配置文件

mkdir /etc/php.dcp xcache.ini /etc/php.dcd /etc/php.d

3、修改配置文档

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

lamp 源码包安装

Service httpd24 restart

4、新建测试网页

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

lamp 源码包安装

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

lamp 源码包安装

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

6、再次用ab 做压测 

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

lamp 源码包安装

lamp 源码包安装

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

Vim /etc/httpd24/httpd.cnf

lamp 源码包安装

Service httpd24 reload

查看信息

lamp 源码包安装

Lamp三层结构工作实验

lamp 源码包安装

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

Lamp   fpm   做反向代理

由于以前已经编译过啦

mv php-5.4.31 php-5.4.31module.bak1、重新编译php  php-5.4.31.tar.bz2Tar xf php-5.4.31.tar.bz2Cd 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-bz2Make && make installcd /etc/httpd24/mv httpd.conf httpd.conf.modulecp httpd.conf.bak httpd.conf

Vim  /etc/httpd24/httpd.cnf

2、启用fast cig模块代理

lamp 源码包安装

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]# lspear.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 源码包安装

4、修改线程数

lamp 源码包安装

[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 源码包安装

lamp 源码包安装

[root@www httpd24]# /usr/local/apache/bin/httpd -tSyntax OK[root@www httpd24]# service httpd24 restartStopping httpd:                                            [  OK  ]Starting httpd:                                             [  OK  ]

6、实验结果

lamp 源码包安装

7、压力测试

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

lamp 源码包安装

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/phpizeConfiguring for:PHP Api Version:         20100412Zend Module Api No:      20100525Zend Extension Api No:   220100525[root@wwwxcache-3.1.0]#./configure--enable-xcache--with-php-config=/usr/local/php5/bin/php-configMake  &&  make  installInstalling 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

lamp 源码包安装

重启反向代理

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

Gracefully shutting down php-fpm . done

Starting php-fpm  done

9、实验结果及压力测试

lamp 源码包安装

压力测试

lamp 源码包安装