环境:
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.本篇为安装篇,下篇为测试篇.
1、简单的准备工作和下载mysql
- mkdir -pv /root/work /mysql/data/ #建立一个工作目录和mysql数据目录
- groupadd -r mysql #建立mysql系统组
- useradd -g mysql -r mysql #建立系统用户mysql;并加入mysql组
- cd /root/work/
- wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz
- tar -zvxf mysql-5.5.28.tar.gz #下载并解包
- chown -R mysql. mysql-5.5.28 #修改软件和数据库属主属组
- chown -R mysql. /mysql
2、解决依赖关系:
- yum install cmake make -y
- yum groupinstall "Development Tools" "Development Libraries" "X Software Development" -y
- wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/libmcrypt-2.5.7-1.2.el5.rf.i386.rpm
- wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-devel-2.5.7-1.2.el5.rf.i386.rpm
- rpm -ivh libmcrypt-2.5.7-1.2.el5.rf.i386.rpm
- 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后面的各种参数,需全部写在一行
- cd /root/work/mysql-5.5.28
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \安装目录
- -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \sock文件位置
- -DDEFAULT_CHARSET=utf8 \默认字符集
- -DDEFAULT_COLLATION=utf8_general_ci \默认排序字符集
- -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \安装扩展字符集
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \安装innodb存储引擎
- -DWITH_READLINE=1 \开启快捷键
- -DENABLED_LOCAL_INFILE=1 \允许本地倒入数据
- -DMYSQL_DATADIR=/data/mysql/ \默认数据库存放目录
- -DMYSQL_USER=mysql \MySQL使用的用户名
- -DMYSQL_TCP_PORT=3306 \MySQL使用的端口号-->回车
- make && make install #编译,并编译后安装
4、为安装后的mysql提供主配置文件和修改相关属性
- chown -R mysql. /usr/local/mysql #修改安装后的mysql属主属组
- cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
- thread_concurrency = 8
- sed -i 's@no-auto-rehash@auto-rehash@g' /etc/my.cnf
- #笔者两次安装,均发现mysql的命令不能补全,故修改之,若您正常,可略
Ps: 给MySQL主配置文件,注意其实MySQL给了上三个选择(my-large.cnf, my-medium.cnf, my-small.cnf),见名知意,具体可看里面的参数.
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,笔者虚拟机4个cpu,所以数量是8
5、初始化MySQL的基本信息库
- /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
Ps: 执行其安装后生成的脚本,生成MySQL的默认信息,脚本后跟用户名,mysql程序目录,和数据库目录
6、为mysql提供sysv服务脚本
- cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- chmod 755 /etc/init.d/mysqld #MySQL提供了rhel风格的脚本,复制到指定位置
- chkconfig --add mysqld
- chkconfig mysqld on #添加到开机启动,此部可按需求是否使用
- service mysqld start #到此,MySQL已简单安装完
7、配置全局变量,以便于后续工作使用
- echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysqld.sh
- echo 'MANPATH /usr/local/mysql/man' >> /etc/man.config #man手册,立即生效
- ln -sv /usr/local/mysql/include /usr/include/mysql
- echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
- ldconfig
Ps: 第一条:将mysql的命令加入环境变量,便于使用,此处生效需要重启控制台; 第三条:输出mysql的头文件至系统头文件路径/usr/include: 第四条:输出mysql的库文件给系统库查找路径;第五条:重新载入系统库
8、修改mysql管理员密码,并使用其登陆,简单测试
- mysqladmin -uroot password '123'
- mysql -uroot -p123 -e 'select Host,User,Password FROM mysql.user;'
Ps: #仅设置root的localhost的密码为123,并查看密码是否设置成功;若成功,命令执行后会有一个简单的表出现.
Ps:其实mysql的数据目录/mysql/data/完全可以使用逻辑卷挂载进去使用,具体操作在笔者的"马哥第九期首次考试内容及答案"中已有,此处便不再多言.
1、解决依赖关系
httpd-2.4.3需要较新版本的apr和apr-util(一个跨平台接口,使得httpd便于移植,具体参见各种百科),因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行.
(1)下载并编译安装apr
- cd /root/work
- wget http://labs.mop.com/apache-mirror/apr/apr-1.4.6.tar.bz2
- tar -jvxf apr-1.4.6.tar.bz2
- cd apr-1.4.6 #因为apr-util依赖其,所以,此包需先安装
- ./configure --prefix=/usr/local/apr #安装目录,后面需要用
- make && make install #你懂的..
(2)下载并编译安装apr-util
- wget http://labs.mop.com/apache-mirror/apr/apr-util-1.5.1.tar.bz2
- tar -jvxf apr-util-1.5.1.tar.bz2
- cd apr-util-1.5.1
- ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr #指定安装目录和之前安装的apr
- make && make install
(3) httpd-2.4.2编译过程也要依赖于pcre-devel软件包,需要事先安装。
- yum install pcre-devel -y #此包是perl兼容正则表达式库的开发环境.
2、下载并编译安装httpd-2.4.3.tar.bz2
- wget http://labs.mop.com/apache-mirror/httpd/httpd-2.4.3.tar.bz2
- tar -jzxf httpd-2.4.3.tar.bz2
- cd httpd-2.4.3
- ./configure --prefix=/usr/local/apache \安装目录
- --sysconfdir=/etc/httpd \配置文件目录
- --enable-so \开启动态加载模块功能
- --enable-ssl \开启SSL加密传输模块支持
- --enable-cgi \开启cgi通用网关接口
- --enable-rewrite \开启URL地址
- --with-zlib \使用压缩传输
- --with-pcre \使用基于perl的正则表达式库优化速度
- --with-apr=/usr/local/apr \开启apr,刚才编译时的安装路径
- --with-apr-util=/usr/local/apr-util \同上
- --enable-mpms-shared=all \编译所有的mpm模块
- --with-mpm=event \编译默认使用event工作模型-->回车
- make -j8 && make install #-j为并行编译,数字等于CPU个数的2倍,笔者为了更快,给虚拟机环境分了4个CPU...慎用.
3、配置系统路径变量,使其支持httpd安装的命令,重启控制台生效
- echo 'export PATH=$PATH:/usr/local/apache/bin' > /etc/profile.d/httpd.sh
4、修改httpd的默认pid文件位置
- sed -i '/^ServerRoot[[:space:]]..usr.local.apache.$/aPidFile "/var/run/httpd.pid"' /etc/httpd/httpd.conf
5、为其提供SysV脚本,笔者这里直接在其它系统(rhel5.8)中,拿到一起rpm包安装的httpd的httpd脚本,进行简单的修改即可.操作如下:
- scp 172.16.35.2:/etc/init.d/httpd /etc/init.d/ #172.16.35.2是笔者的另一个虚拟机.将其httpd文件复制到本地相同位置
- sed -i 's@/usr/sbin@/usr/local/apache/bin@g' /etc/init.d/httpd #替换掉原脚本的命令调用路径
- sed -i 's@etc/httpd/conf@etc/httpd@g' /etc/init.d/httpd #替换掉原脚本的配置文件路径
- chmod 755 /etc/init.d/httpd #给予其执行权限
- chkconfig --add httpd #添加到系统service脚本调用
- chkconfig httpd on #开机自动启动,看自身需求
- service httpd start
6、简单测试默认页,返回works则表示服务已经正常工作.
- elinks -dump 127.0.0.1
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
- cd /root/work
- wget http://cn2.php.net/distributions/php-5.4.8.tar.bz2
- tar -jvxf php-5.4.8.tar.bz2
- cd php-5.4.8
- ./configure --prefix=/usr/local/php \介个是安装目录
- --with-mysql=/usr/local/mysql \支持mysql
- --with-openssl \openssl的支持,一般用于https
- --with-mysqli=/usr/local/mysql/bin/mysql_config \支持优化的mysqli
- --enable-mbstring \打开对多字节,字符串的支持
- --with-freetype-dir \打开对freetype字体库的支持
- --with-jpeg-dir \打开对jpeg图片的支持
- --with-png-dir \打开对png图片的支持
- --with-zlib \ 支持数据压缩函数库
- --with-libxml-dir=/usr \ 打开libxml函数库的支持
- --enable-xml \打开对xml网页的支持
- --enable-sockets \打开套接字支持
- --with-apxs2=/usr/local/apache/bin/apxs \以模块的方式安装到apache
- --with-mcrypt \支持mcrypt加密算法的扩展
- --with-config-file-path=/etc \配置文件php.ini的路径
- --with-config-file-scan-dir=/etc/php.d \次级扫描配置文件路径
- --with-bz2 \支持对bz2文件的支持
- --enable-maintainer-zts \激活php的线程安全机制(若httpd基于worker和event模型,则此项必须要开启) --->终于可以回车了亲...
- make -j8 && make install #这就不废话了.
2、为php提供配置文件
- cp /root/work/php-5.4.8/php.ini-production /etc/php.ini
3、使httpd支持php
- echo -e 'AddType application/x-httpd-php .php\nAddType application/x-httpd-php-source .phps' >> /etc/httpd/httpd.conf #把php文本类型追加进httpd.conf
- sed -i 's/\([[:space:]]DirectoryIndex.index\.\).*l$/\1php index.html/g' /etc/httpd/httpd.conf #添加文件默认首选网页为index.php
4、制作简单测试页,检查是php安装否成功
- mv -v /usr/local/apache/htdocs/{index.html,index.php}
- echo -e '<?php\nphpinfo();\n?>' >/usr/local/apache/htdocs/index.php
- service httpd restart
- elinks -dump 127.0.0.1/index.php|tail -20|head -5
Ps: 修改httpd默认主页类型,将phpinfo代码覆盖进去,重启服务,若失败,检查selinux,笔者两次都是忘了关闭selinux而没有首次启动成功,若正常,返回的字段中应包含:PHP License
Ps:��嗦一句,xcache一定要下载高版本,低版本不支持php5.4*
1、下载并编译安装
- cd /root/work
- wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.bz2
- tar xf xcache-2.0.1.tar.bz2
- cd xcache-2.0.1
- /usr/local/php/bin/phpize
- ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
- make && make install
Ps:注释phpize命令用来扩展php扩展模块,所以需要在安装xcache之前执行一次; ./configure 的配置为:开启xcache 并关联使用php-config配置相关脚本信息; make install 之后会生成一个绝对路径,很重要,记得手动保存
注意:笔者这里md5sum xcache-2.0.1.tar.bz2出现的值和官方给的值不一样,所以,笔者直接删了,重新下载的,因此,请最好对下载的包进行md5校验.
2、提供并编辑配置文件,实现整合
- mkdir /etc/php.d
- cp /root/work/xcache.ini /etc/php.d
- 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、重启检查是否配置成功.
- service httpd restart
- elinks -dump 127.0.0.1|grep "[[:space:]]with XCache"
Ps:出现如下字段,表示成功:
- with XCache v2.0.1, Copyright (c) 2005-2012, by mOo