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提供
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
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
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
这个配置文档是
此文档和通用绿色软件给我们的示例文档对比
N 如果覆盖会改变my.cnf的属性 避免冲突
Mkdir /etc/mysql/
cp support-files/my-large.cnf /etc/mysql/my.cnf
Vim /etc/mysql/my.cnf
4、mysql的初始化
帮助文档 cd /usr/local/mysql/scripts
./mysql_install_db --help
初始化失败,必须要在mysql目录下执行才行
初始化成功
查看结果
5、提供服务脚本并启动
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
6、ss -tnl 查看3306 是否监听
7、mysql查找配置文件的方法是最后找.到的生效或者是全部找到之后合并起来
解释为什么 在/etc/mysql/my.cnf 两个文件的对比 也可以覆盖,只不过怕冲突多版本
8、导出变量
更新变量并尝试连接mariadb 数据库
9、导出库文件
vim /etc/ld.so.conf.d/mysql.conf
二、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"
5、提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:
可以使二进制httpd包安装后作为模板修改
Cd /etc/rc.d/init.d
cp httpd httpd24
vim httpd24
注释掉这三行
修改
Apachectl 启动程序配置文件
Httpd 二进制程序
pidfile pid 文件
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的安装
实验工作原理图
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文件 不改也可以
Php安装好了之后会在 LoadModule 在加一行
4、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
5、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
6、测试php作为httpd模块连接加mysql
编辑 /usr/local/apache/htdocs/index.php
内容
测试
再编辑连接数据库测试
连接一个数据库管理工具软件
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
为网页文件提供配置文件
Cd mpa
cp config.sample.inc.php config.inc.php
编辑网页内容
编辑配置文件 第二个 ’ ’ 中加随机数据
7、这个软件工具要mariadb授权
Mysql
Show databases;
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、实验结果测试
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
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 生成配置文档
2、编译
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-configMake && make install
提供配置文件
mkdir /etc/php.dcp xcache.ini /etc/php.dcd /etc/php.d
3、修改配置文档
Vim /etc/php.d/xcache 指定搜索路径
Service httpd24 restart
4、新建测试网页
Vim /usr/local/apache/htdocs/index.php
5、测试查看是否启用了xcache
刷新网页 http:/192.168.1.143/index.php
6、再次用ab 做压测
ab -n 1000 -c 100 http://192.168.1.143/index.php
8、配置显示主机状态信息
Vim /etc/httpd24/httpd.cnf
Service httpd24 reload
查看信息
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模块代理
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位置
4、修改线程数
[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 修改下面两个地方
[root@www httpd24]# /usr/local/apache/bin/httpd -tSyntax OK[root@www httpd24]# service httpd24 restartStopping httpd: [ OK ]Starting httpd: [ OK ]
6、实验结果
7、压力测试
ab -n 1000 -c 100 http://192.168.1.143/index.php
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
重启反向代理
[root@www xcache-3.1.0]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
9、实验结果及压力测试
压力测试