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/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
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
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
这个配置文档是
此文档和通用绿色软件给我们的示例文档对比
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_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"
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.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的安装
实验工作原理图
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文件 不改也可以
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.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
为网页文件提供配置文件
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.gz Cd xcache-3.1.0.tar.gz man -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-config Make && make install
提供配置文件
mkdir /etc/php.d cp xcache.ini /etc/php.d cd /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.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模块代理
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位置
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 -t Syntax OK [root@www httpd24]# service httpd24 restart Stopping 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/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
重启反向代理
[root@www xcache-3.1.0]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
9、实验结果及压力测试
压力测试