一、编译安装apache

1.安装编译环境:

#yum -y groupinstall 'Development tools'

#yum -y groupinstall 'Desktop Platform Development'

#yum install wget gcc gcc-c++ make re2c curl curl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel libmcrypt libmcrypt-devel zlib zlib-devel openssl openssl-devel freetype freetype-devel gd gd-devel perl perl-devel ncurses ncurses-devel bison bison-devel libtool gettext gettext-devel cmake bzip2 bzip2-devel pcre pcre-devel(yum仓库中无libmcrypt包,故在下方需要重新便已安装libmcrypt)


2.编译安装apr

#cd /usr/local/src

#tar -zxvf apr-1.5.2.tar.gz

#cd apr-1.5.2

#./configure --prefix=/usr/local/apr

make && make install


3.编译安装apr-util

#tar -zxvf apr-util-1.5.4.tar.gz

#cd apr-util-1.5.4

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make && make install


4.编译安装httpd

#tar -zxvf httpd-2.4.16.tar.gz

#cd httpd-2.4.16

#./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-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 --enable-deflate

#make && make install

#cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak #备份配置文件

#vi /usr/local/apache/conf/httpd.conf   #编辑配置文件


找到:#ServerName www.example.com:80

修改为:ServerName 172.24.0.2:80


找到:DirectoryIndex index.html

修改为:DirectoryIndex index.html index.php


找到:Options Indexes FollowSymLinks

修改为:Options FollowSymLinks    #不显示目录结构


找到AllowOverride None 

修改为:AllowOverride All   #开启apache支持伪静态,有三处都做修改


LoadModule rewrite_module modules/mod_rewrite.so   #取消前面的注释,开启apache支持伪静态


vi /etc/profile  #添加apache服务系统环境变量

在最后添加下面这一行

export PATH=$PATH:/usr/local/apache/bin


#chown  daemon.daemon  -R /usr/local/apache/htdocs  #更改目录所有者

#chmod   700 /usr/local/apache/htdocs  -R #更改apache网站目录权限

启动apache

#/usr/local/apache/bin/apachectl -k start

检查是否启动

#ps -ef|grep httpd

#netstat -tplun|grep ":80"


二、编译安装mysql

1.编译安装cmake

#cd /usr/local/src

#tar -zxvf cmake-3.2.1.tar.gz

#cd cmake-3.2.1

#./configure --prefix=/usr/local/cmake

#make && make install

#vim ~/.bash_profile

修改PATH=$PATH:$HOME/bin

    PAHT=$PATH:$HOME/bin:/usr/local/cmake/bin

保存退出

#source ~/.bash_profile


2.编译安装mysql

#groupadd -r mysql

#useradd -g mysql -r -s /sbin/nologin  -M mysql

#tar -zxvf mysql-5.6.17.tar.gz

#cd mysql-5.6.17

#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

#gmake

#make install

#cd /usr/local/mysql/support-files

#cp mysql.server /etc/init.d/mysql

#cp my-default.conf /etc/my.cnf

#vim /etc/my.cnf

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

socket = /tmp/mysqld.sock

#chown -R mysql. /usr/local/mysql/data

#cd /usr/local/mysql/scripts

#./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --no-defaults --user=mysql

#service mysql start

#ps -ef | grep mysql(查看是否存在mysql进程)

#vim ~/.bash_profile 

在PATH变量后面追加":/usr/local/mysql/bin",修改完成后的结果如下:

PATH=$PATH:$HOME/bin:/usr/local/cmake/bin:/usr/local/mysql/bin(注:/usr/local/cmake/bin目录为本实验编译安装所生成的目录,如果您的cmake是通过rpm或者是yum来安装的,无此路径。PATH=$PATH:$HOME/bin:/usr/local/mysql/bin)

#source ~/.bash_profile 

也可修改全局变量

#vim /etc/profile

在最后添加

PATH=$PATH:/usr/local/mysql/bin:/usr/local/cmake/bin(注:/usr/local/cmake/bin为本实验编译安装所生成的目录。)

#mysql

mysql>\s


三、编译安装PHP

1.安装libmcrypt

#cd /usr/local/src

#tar -zxvf limcrypt-2.5.7.tar.gz

#cd libmcrypt-2.5.7

#./configure --prefix=/usr/local/libmcrypt

#make && make install


2.安装PHP

#tar -jxvf php-5.6.7.tar.bz2 

#cd php-5.6.7

#./configure  --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-config-file-path=/usr/local/php/etc  --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd  --with-libxml-dir  --with-gd  --with-jpeg-dir  --with-png-dir  --with-freetype-dir  --with-iconv-dir  --with-zlib-dir  --with-bz2  --with-openssl  --with-mcrypt=/usr/local/libmcrypt/  --enable-soap  --enable-gd-native-ttf  --enable-mbstring  --enable-sockets  --enable-exif  --disable-ipv6(PHP 5.3以上的版本推荐使用mysqlnd驱动,详见:https://blog.linuxeye.com/395.html)

#make

#make test

#make install

#mkdir /usr/local/php/etc

#cp php.ini-production  /usr/local/php/etc/php.ini  #复制php配置文件到安装目录

#rm -rf /etc/php.ini   #删除系统自带的配置文件

#ln -s  /usr/local/php/etc/php.ini   /etc/php.ini   #创建配置文件软链接

#vi /usr/local/php/etc/php.ini    #编辑


找到:;open_basedir =

修改为:open_basedir = .:/tmp/   #防止php***跨站,重要!!


找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。


找到:;date.timezone =

修改为:date.timezone = PRC


找到:expose_php = On

修改为:expose_php = OFF  #禁止显示php版本的信息


找到:display_errors = On

修改为:display_errors = OFF  #关闭错误提示


配置apache支持php

vi /usr/local/apache/conf/httpd.conf  #编辑apache配置文件

在LoadModule php5_module        modules/libphp5.so这一行下面添加、

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps (注意:php .php这个点前面有一个空格)

service httpd restart    #重启apache

service mysqld restart   #重启mysql

测试篇

vim  /usr/local/apache/htdocsvi/index.php   #输入下面内容

<?php

phpinfo();

?>

:wq!   #保存

在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!


四、安装xcache,为php加速

#cd /usr/local/src

#tar zxvf xcache-3.2.0.tar.gz 

#/usr/local/php/bin/phpize

#./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

#make && make install

安装结束时,会出现类似如下行:

Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so

编辑php.ini,整合php和xcache

首先将xcache提供的样例配置导入php.ini

# mkdir /etc/php.d

# cp xcache.ini /etc/php.d(说明:xcache.ini文件在xcache的源码目录中。)

接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行

extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so(注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。)

至此,整个安装过程就结束了,下面简单介绍一下压力测试工具ab的使用。


ab使用方法

 

使用ab命令测试apache服务器性能:

 

-c concurrency:一次性发起的请求个数,默认为1;

-i:测试时使用HEAD方法,默认为GET;

-k:启用HTTP长连接请求方式;

-n requests:发起的模拟请求个数;默认为1个;请求数要大于等于并发连接数;

-q:静默模式,在请求数大于150个时不输出请求完成百分比;

 

输出结果:

Time taken for tests:从第一个请求连接建立到收到最后一个请求的响应报文结束所经历的时长;

Complete requests:成功的请求数;

简单测试:

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

通过这种方法可以对web服务器性能做出简单的评估。