源码编译LAMP架构,phpMyadmin管理数据库,增加xcache加速功能,通过ab测试效果。

一)LAMP架构

Linux Apache Mysql PHP/Perl/Python的简写。通常是Linux Apache Mysql PHp组合。
其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行php的脚本语言。

二)安装前提需要的开发包和包组。

通过yum安装,yum的配置参考http://shunzi.blog.51cto.com/8289655/1381676

yum -y install pcre-devel gcc*
yum -y install bzip2-devel libmcrypt-devel
yum -y groupinstall "Development tools"
yum -y groupinstall "Server Platform Development"
yum -y groupinstall "Desktop Platform Development"

三)安装apr和apr-util

http://apr.apache.org/download.cgi下载地址
tar xf apr-1.5.0.tar.bz2
cd /root/apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install
tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

四)安装httpd

先同步下时间clock -s让系统时间和硬件时间同步。不同步可能解httpd包的时候报错。

tar xf httpd-2.4.9.tar.bz2
cd /root/httpd-2.4.9
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --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

--prefix=/usr/local/apache   编译目录
--sysconfdir=/etc/httpd 安装目录
--enable-so 启用DSO
--enable-ssl 启用ssl
--enable-cgi 启用cgi版本的php
--enable-rewrite 启用URL重写功能
--with-zlib 启用网络压缩功能
--with-pcre 为了支持rewrite重写功能
--enable-modules=most 启用常用的模块
--enable-mpms-shared=all 安装所有的工作模式
--with-mpm=event 启用event工作模式

1)导出头文件.

ln -sv /usr/local/apache/include /usr/include/httpd

2)配置man文档

vim /etc/man.config

wKiom1MtxGyS-2AoAACyAJpM4oU229.jpg

3)配置二进制文件

echo "export PATH=/usr/local/apache/bin:$PATH" >> /etc/profile.d/httpd.sh
source /etc/profile.d/httpd.sh

4)写个apache的启动脚本

cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24把yum安装的脚本copy一份。

vim /etc/httpd/httpd.conf 需要在主配置文件中添加个pid。

wKiom1MtxhqDkFBKAABt7gR0KbY466.jpg

PS:

    如果把yum安装的httpd卸载掉。PidFile "/var/run/httpd.pid"

修改脚本

wKioL1MtxjWz0HpAAAFdyJeNe2g026.jpg

PS:

  pidfile  /var/run/httpd.pid

脚本内容如下:

vim /etc/rc.d/init.d/httpd24

#!/bin/bash
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
HTTPD_LANG=${HTTPD_LANG-"C"}
INITLOG_ARGS=""
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
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 ${STOP_TIMEOUT} $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=6
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
# Force LSB behaviour from killproc
LSB=1 killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
if [ $RETVAL -eq 7 ]; then
failure $"httpd shutdown"
fi
fi
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart|try-restart)
if status -p ${pidfile} $httpd >&/dev/null; then
stop
start
fi
;;
force-reload|reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}"
RETVAL=2
esac
exit $RETVAL

添加到服务中。并且启动apachetl

chmod +x /etc/init.d/httpd24
chkconfig --add httpd
/etc/init.d/httpd24 start

apache安装完成。。。。。。。

――――――――――――――――――――――――――――――――――――――

五)安装mysql

单独用一个磁盘。

pvcreate /dev/sda3
vgcreate vgmg /dev/sda3
lvcreate -L 8G -n  lvmg vgmg
mke2fs -t ext4 /dev/vmgm/lvmg
mkdir /mydata/data -p
vim /etc/fstab
/dev/vgmg/lvmg          /mydata/data            ext4    defaults,noatime 0 0


mount -a

1)创建组名和用户名。

groupadd -r mysql
useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
chown -R mysql:mysql /mydata/data/
tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mysql-5.5.33-linux2.6-x86_64 mysql
cd mysql
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  初始化数据库
chown -R root .
cp support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
thread_concurrency = 2 物理cpu的两倍
datadir = /mydata/data


设置mysqld服务脚本

cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start


定义man文件

vim /etc/man.config
MANPATH /usr/local/mysql/man

导出头文件

ln -sv /usr/local/mysql/include /usr/include/mysql

定义数据库

echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

定义二进制

echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile.d/mysqld.sh
source /etc/profile.d/mysqld.sh

六)安装php

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 install
cp php.ini-production /etc/php.ini

编辑apache配置文件httpd.conf支持php让apache和php结合

vim /etc/httpd/httpd.conf
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps


修改网页对php的支持

DirectoryIndex  index.php  index.html

启动服务,做个测试页,看看是否apache和php已经结合。

wKiom1MubLKB-5AcAADVGSSVJKs949.jpg

浏览器访问成功结合。

wKioL1MubNDDkOcsAAJVUAfHuYk393.jpg

测试mysql有没有顺利结合;

创建个用户,设置个密码做测试连接。

insert into mysql.user(host,user,password) values("localhost","benet",password("benet.com"));
flush privileges;

测试页如下

<html>
<body>
<center>
<?php
$linke = mysql_connect('localhost','benet','benet.com');
if ($linke)
echo "mysql link success...";
else
echo "mysql link Faliure...";
mysql_close();
?>
</center>
</body>
</html>

浏览器访问效果

wKiom1Muci_jeLEsAACWXPcIYQs383.jpg七)安装phpmyadmin后台管理数据库系统。

unzip phpMyAdmin-4.0.5-all-languages.zip
mv phpMyAdmin-4.0.5-all-languages/ /usr/local/apache/htdocs/php

浏览器访问测试

wKioL1MuctTzqn0YAAFUTTprTwg838.jpg

wKioL1Mucu-DOTSvAAFqhTv4X4w363.jpg

八)安装status,主要功能查看apache的运行状态。

wKioL1MudBnxAQOKAAG43UyGozg599.jpg

启动httpd

/etc/init.d/httpd24 restart

浏览器访问测试

wKioL1MudEfCs7DnAANdSf7FXnE468.jpg

九)安装xcache,php加速器。

为了看出xcache加速器的效果,提前做ab压力测试和配置完xcache在做压力测试作比较。
ab -c 1000 -n 10000 http://192.168.1.116/php
-n:请求数
-c:并发数
请求数必须大于或等于并发数。

wKiom1MueTuSyNEYAAP3TuIFbI4612.jpg

wKioL1MueR_S50SmAANRoTox39k391.jpg

开始安装xcache加速器。

tar xf xcache-3.0.3.tar.bz2
cd xcache-3.0.3
[root@station141 xcache-3.0.3]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
phpize 作用是为了扩展模块。
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make
make install执行完,会提示一个模块加载路径。
--enable-xcache:开启xcache模块。
--with-php-config=/usr/local/php/bin/php-config :指定php全路径。
mkdir /etc/php.d/
cp xcache.ini /etc/php.d/模块目录。

vim /etc/php.d/xcache.ini 

wKiom1MufIbRFzlFAADem-dIlVs315.jpg/etc/init.d/httpd24 restart;

wKiom1MufVLhprBNAAHhz_IScHk131.jpg

ps:

    基本操作完成。

你可能感兴趣的:(源码编译LAMP架构,增加xcache加速功能。)