环境:
Linux:    rhel5.8
Apache: httpd-2.4.3.tar.bz2
MySQL: mysql-5.5.28.tar.gz
Php:  php-5.4.8.tar.bz2
XCache: XCache-2.0.1.tar.bz2(php加速器)

写在安装之前:
1.系统环境请确保没有安装Apache,MySQL和Php
2.依赖关系使用RPM/YUM方式解决,yum源为光盘,所需软件包笔者尽量给出url
3.切记安装顺序,MySQL和Apache无所谓,但是Php最后会编译成Apache模块,而XCache是给Php提供加速.笔者安装顺序为:linux(废话)->MySQL->Apache->Php->XCache
4.为了不出现不必要的问题,临时关闭selinux,命令:setenforce 0
5.请确保您的实验环境可以上网,若不可以,本篇出现的wget操作皆无效.
6.建议每次wget下载后,使用md5sum softname.tar.bz2检查其md5值是否和官方给出的md5一致(此步骤虽可省略,但是推荐操作,以免人品问题造成的不可预知的故障..)
7.本篇为安装篇,下篇为测试篇.

MySQL篇:

1、简单的准备工作和下载mysql

 
  
  1. mkdir -pv /root/work /mysql/data/   #建立一个工作目录和mysql数据目录  
  2. groupadd -r mysql       #建立mysql系统组  
  3. useradd -g mysql -r mysql   #建立系统用户mysql;并加入mysql组  
  4. cd /root/work/  
  5. wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz   
  6. tar -zvxf mysql-5.5.28.tar.gz   #下载并解包  
  7. chown -R mysql. mysql-5.5.28    #修改软件和数据库属主属组  
  8. chown -R mysql. /mysql 

2、解决依赖关系:

 
  
  1. yum install cmake make -y  
  2. yum groupinstall "Development Tools" "Development Libraries" "X Software Development" -y  
  3. wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/libmcrypt-2.5.7-1.2.el5.rf.i386.rpm  
  4. wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-devel-2.5.7-1.2.el5.rf.i386.rpm  
  5. rpm -ivh libmcrypt-2.5.7-1.2.el5.rf.i386.rpm  
  6. rpm -ivh libmcrypt-devel-2.5.7-1.2.el5.rf.i386.rpm 

            Ps:  其实仅考虑mysql的话,我们需要仅是如下的包:(gcc gcc-c++ autoconf bison automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*)但是考虑到后续操作,因此直接把开发工具包组安装了上去,但是又由于其中缺少编译所需的加密库的rpm包,所以只能下载并手动安装.

3、编译开始,camke后面的各种参数,需全部写在一行

 
  
  1. cd /root/work/mysql-5.5.28  
  2. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \安装目录  
  3.     -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \sock文件位置  
  4.     -DDEFAULT_CHARSET=utf8  \默认字符集  
  5.     -DDEFAULT_COLLATION=utf8_general_ci \默认排序字符集  
  6.     -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk   \安装扩展字符集  
  7.     -DWITH_INNOBASE_STORAGE_ENGINE=1    \安装innodb存储引擎  
  8.     -DWITH_READLINE=1   \开启快捷键  
  9.     -DENABLED_LOCAL_INFILE=1    \允许本地倒入数据  
  10.     -DMYSQL_DATADIR=/data/mysql/    \默认数据库存放目录  
  11.     -DMYSQL_USER=mysql  \MySQL使用的用户名  
  12.     -DMYSQL_TCP_PORT=3306   \MySQL使用的端口号-->回车  
  13. make && make install    #编译,并编译后安装  

4、为安装后的mysql提供主配置文件和修改相关属性

 
  
  1. chown -R mysql. /usr/local/mysql    #修改安装后的mysql属主属组  
  2. cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf  
  3. thread_concurrency = 8 
  4. sed -i 's@no-auto-rehash@auto-rehash@g' /etc/my.cnf
  5. #笔者两次安装,均发现mysql的命令不能补全,故修改之,若您正常,可略

            Ps:  给MySQL主配置文件,注意其实MySQL给了上三个选择(my-large.cnf, my-medium.cnf, my-small.cnf),见名知意,具体可看里面的参数.
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,笔者虚拟机4个cpu,所以数量是8    

5、初始化MySQL的基本信息库

 
  
  1. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ 

       Ps:    执行其安装后生成的脚本,生成MySQL的默认信息,脚本后跟用户名,mysql程序目录,和数据库目录

6、为mysql提供sysv服务脚本

 
  
  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld   
  2. chmod 755 /etc/init.d/mysqld #MySQL提供了rhel风格的脚本,复制到指定位置  
  3. chkconfig --add mysqld  
  4. chkconfig mysqld on #添加到开机启动,此部可按需求是否使用  
  5. service mysqld start #到此,MySQL已简单安装完 

7、配置全局变量,以便于后续工作使用

 
  
  1. echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysqld.sh 
  2. echo 'MANPATH  /usr/local/mysql/man' >> /etc/man.config #man手册,立即生效
  3. ln -sv /usr/local/mysql/include  /usr/include/mysql
  4. echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
  5. ldconfig

           Ps:   第一条:将mysql的命令加入环境变量,便于使用,此处生效需要重启控制台;         第三条:输出mysql的头文件至系统头文件路径/usr/include:      第四条:输出mysql的库文件给系统库查找路径;第五条:重新载入系统库

8、修改mysql管理员密码,并使用其登陆,简单测试

 
  
  1. mysqladmin -uroot  password '123'     
  2. mysql -uroot -p123 -e 'select Host,User,Password FROM mysql.user;'  

           Ps:   #仅设置root的localhost的密码为123,并查看密码是否设置成功;若成功,命令执行后会有一个简单的表出现.

          Ps:其实mysql的数据目录/mysql/data/完全可以使用逻辑卷挂载进去使用,具体操作在笔者的"马哥第九期首次考试内容及答案"中已有,此处便不再多言.

 

Apache篇:

1、解决依赖关系

httpd-2.4.3需要较新版本的apr和apr-util(一个跨平台接口,使得httpd便于移植,具体参见各种百科),因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行.

(1)下载并编译安装apr

 
  
  1. cd /root/work     
  2. wget http://labs.mop.com/apache-mirror/apr/apr-1.4.6.tar.bz2  
  3. tar -jvxf apr-1.4.6.tar.bz2  
  4. cd apr-1.4.6    #因为apr-util依赖其,所以,此包需先安装  
  5. ./configure --prefix=/usr/local/apr #安装目录,后面需要用  
  6. make && make install    #你懂的.. 

(2)下载并编译安装apr-util

 
  
  1. wget http://labs.mop.com/apache-mirror/apr/apr-util-1.5.1.tar.bz2  
  2. tar -jvxf apr-util-1.5.1.tar.bz2  
  3. cd apr-util-1.5.1  
  4. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr    #指定安装目录和之前安装的apr 
  5. make && make install

(3) httpd-2.4.2编译过程也要依赖于pcre-devel软件包,需要事先安装。

 
  
  1. yum install pcre-devel -y   #此包是perl兼容正则表达式库的开发环境. 

2、下载并编译安装httpd-2.4.3.tar.bz2

 
  
  1. wget http://labs.mop.com/apache-mirror/httpd/httpd-2.4.3.tar.bz2  
  2. tar -jzxf httpd-2.4.3.tar.bz2  
  3. cd httpd-2.4.3  
  4. ./configure --prefix=/usr/local/apache \安装目录  
  5. --sysconfdir=/etc/httpd     \配置文件目录  
  6. --enable-so     \开启动态加载模块功能  
  7. --enable-ssl    \开启SSL加密传输模块支持  
  8. --enable-cgi    \开启cgi通用网关接口  
  9. --enable-rewrite    \开启URL地址  
  10. --with-zlib     \使用压缩传输  
  11. --with-pcre     \使用基于perl的正则表达式库优化速度  
  12. --with-apr=/usr/local/apr  \开启apr,刚才编译时的安装路径  
  13. --with-apr-util=/usr/local/apr-util \同上  
  14. --enable-mpms-shared=all \编译所有的mpm模块  
  15. --with-mpm=event    \编译默认使用event工作模型-->回车  
  16. make -j8 && make install #-j为并行编译,数字等于CPU个数的2倍,笔者为了更快,给虚拟机环境分了4个CPU...慎用. 

3、配置系统路径变量,使其支持httpd安装的命令,重启控制台生效

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

4、修改httpd的默认pid文件位置

 
  
  1. sed -i '/^ServerRoot[[:space:]]..usr.local.apache.$/aPidFile  "/var/run/httpd.pid"' /etc/httpd/httpd.conf    

5、为其提供SysV脚本,笔者这里直接在其它系统(rhel5.8)中,拿到一起rpm包安装的httpd的httpd脚本,进行简单的修改即可.操作如下:

 
  
  1. scp 172.16.35.2:/etc/init.d/httpd /etc/init.d/   #172.16.35.2是笔者的另一个虚拟机.将其httpd文件复制到本地相同位置  
  2. sed -i 's@/usr/sbin@/usr/local/apache/bin@g' /etc/init.d/httpd #替换掉原脚本的命令调用路径  
  3. sed -i 's@etc/httpd/conf@etc/httpd@g' /etc/init.d/httpd  #替换掉原脚本的配置文件路径  
  4. chmod 755 /etc/init.d/httpd  #给予其执行权限  
  5. chkconfig --add httpd    #添加到系统service脚本调用  
  6. chkconfig httpd on    #开机自动启动,看自身需求  
  7. service httpd start 

6、简单测试默认页,返回works则表示服务已经正常工作.

 
  
  1. elinks -dump 127.0.0.1 

PHP篇:

    Ps:   开始之前,请确认MySQL篇中的yum -y groupinstall "X Software Development"和libmcrypt-2.5.7-1.2.el5.rf.i386.rpm以及libmcrypt-devel-2.5.7-1.2.el5.rf.i386.rpm安装成功.

1、下载并编译安装php

 
  
  1. cd /root/work 
  2. wget http://cn2.php.net/distributions/php-5.4.8.tar.bz2  
  3. tar -jvxf php-5.4.8.tar.bz2  
  4. cd php-5.4.8  
  5. ./configure --prefix=/usr/local/php \介个是安装目录  
  6. --with-mysql=/usr/local/mysql \支持mysql  
  7. --with-openssl \openssl的支持,一般用于https  
  8. --with-mysqli=/usr/local/mysql/bin/mysql_config \支持优化的mysqli  
  9. --enable-mbstring \打开对多字节,字符串的支持  
  10. --with-freetype-dir \打开对freetype字体库的支持  
  11. --with-jpeg-dir \打开对jpeg图片的支持  
  12. --with-png-dir \打开对png图片的支持  
  13. --with-zlib \ 支持数据压缩函数库  
  14. --with-libxml-dir=/usr \ 打开libxml函数库的支持  
  15. --enable-xml  \打开对xml网页的支持  
  16. --enable-sockets \打开套接字支持  
  17. --with-apxs2=/usr/local/apache/bin/apxs \以模块的方式安装到apache  
  18. --with-mcrypt  \支持mcrypt加密算法的扩展  
  19. --with-config-file-path=/etc \配置文件php.ini的路径  
  20. --with-config-file-scan-dir=/etc/php.d  \次级扫描配置文件路径  
  21. --with-bz2 \支持对bz2文件的支持  
  22. --enable-maintainer-zts \激活php的线程安全机制(若httpd基于worker和event模型,则此项必须要开启)  --->终于可以回车了亲...  
  23. make -j8 && make install #这就不废话了. 

2、为php提供配置文件

 
  
  1. cp /root/work/php-5.4.8/php.ini-production /etc/php.ini 

3、使httpd支持php

 
  
  1. echo -e 'AddType application/x-httpd-php  .php\nAddType application/x-httpd-php-source  .phps' >> /etc/httpd/httpd.conf   #把php文本类型追加进httpd.conf 
  2. sed -i 's/\([[:space:]]DirectoryIndex.index\.\).*l$/\1php index.html/g' /etc/httpd/httpd.conf #添加文件默认首选网页为index.php

 

4、制作简单测试页,检查是php安装否成功

 
  
  1. mv -v /usr/local/apache/htdocs/{index.html,index.php}  
  2. echo -e '<?php\nphpinfo();\n?>' >/usr/local/apache/htdocs/index.php  
  3. service httpd restart   
  4. elinks -dump 127.0.0.1/index.php|tail -20|head -5  

    Ps: 修改httpd默认主页类型,将phpinfo代码覆盖进去,重启服务,若失败,检查selinux,笔者两次都是忘了关闭selinux而没有首次启动成功,若正常,返回的字段中应包含:PHP License

 

XCache篇:

    Ps:啰嗦一句,xcache一定要下载高版本,低版本不支持php5.4*

1、下载并编译安装

 
  
  1. cd /root/work   
  2. wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.bz2  
  3. tar xf xcache-2.0.1.tar.bz2   
  4. cd xcache-2.0.1  
  5. /usr/local/php/bin/phpize     
  6. ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config  
  7. make && make install 

       Ps:注释phpize命令用来扩展php扩展模块,所以需要在安装xcache之前执行一次;  ./configure 的配置为:开启xcache   并关联使用php-config配置相关脚本信息;   make install 之后会生成一个绝对路径,很重要,记得手动保存

注意:笔者这里md5sum xcache-2.0.1.tar.bz2出现的值和官方给的值不一样,所以,笔者直接删了,重新下载的,因此,请最好对下载的包进行md5校验.


2、提供并编辑配置文件,实现整合

 
  
  1. mkdir /etc/php.d  
  2. cp /root/work/xcache.ini /etc/php.d  
  3. sed -i 's/\(^zend_extension = \).*xcache.so$/\1\/usr\/local\/php\/lib\/php\/extensions\/no-debug-zts-20100525\/xcache.so/' /etc/php.d/xcache.ini 

    Ps: #请注意此处笔者的书写路径,请保证和您make install生成的绝对路径一致,且如果/etc/php.d/xcache.ini文件中有多条zend_extension指令行,要确保此修改的此行排在第一位。

3、重启检查是否配置成功.

 
  
  1. service httpd restart  
  2. elinks -dump 127.0.0.1|grep "[[:space:]]with XCache" 

           Ps:出现如下字段,表示成功:

 
  
  1. with XCache v2.0.1, Copyright (c) 2005-2012, by mOo 

 

 

 

 

 

至此,安装篇完成.下篇测试,正边测边写中...