大纲
一、编译安装Apache
二、安装Mysql数据库
三、编译安装PHP
四、整合Apache与PHP
五、安装Xcache加速器
六、启用服务器状态
七、PHP连接Mysql测试
八、安装Discuz论坛(Discuz_X3.0_SC_GBK)
注:所有软件版本 CentOS6.4+httpd2.4.4+mysql5.6.12+php5.4.16+xcache3.03 都是目前最新(所有的安装包点击这里下载)
一、编译安装Apache
1. 安装前准备
修改yum源(163)
安装编译工具
关闭SElinux
关闭防火墙
修改主机名
2. 解决依赖关系
httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。
(1). 编译安装apr
(2). 编译安装apr-util
(3). httpd-2.4.4编译过程也要依赖于pcre-devel软件包,需要事先安装。
3. 编译安装httpd-2.4.4
错误:
解决方法:
补充说明:
(1)构建MPM为静态模块
在 全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行 configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块
在 Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable- mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM, 可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令 内容可以选择不同的MPM。
4. 修改httpd的主配置文件,设置其Pid文件的路径
说明:手动编译安装后,httpd.pid文件是存放在/usr/local/apache/logs/目录下的,这个位置未免有些不方便。
更改配置文件
#在配置文件中找一个位置定义一下Pid文件路径就可以了
5. 提供SysV服务脚本/etc/rc.d/init.d/httpd
[root@web httpd]# chmod +x /etc/init.d/httpd #添加执行权限
#设置开机自启动
6. 启动apache并测试
启动成功了,但似乎有警告,我们看一下!
解决方案:
编辑httpd.conf文件,搜索"/ServerName",添加ServerName localhost:80
好了问题解决,下面我们用Windows 7访问一下!效果如下:
好了测试成功,下面我们继续!
7. 为httpd服务的相关命令添加环境变量
大 家看到了,虽然我们可以使用 service httpd restart 来重新启动Apache,是我们无法使用httpd命令,下面我们就来解决一下!直接在/etc/profile.d目录下创建的httpd.sh环境变 量文件,因为在默认的情况下这个目录下定义的环境变量都是profile文件的组成部分。
现在httpd服务的相关命令就可以直接使用了,嘿嘿!
二、安装Mysql数据库
1. 准备数据存放的文件系统
说明:新建一个逻辑卷,并将其挂载至特定目录即可。这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
(1). 先确认下系统里是否有LVM工具,默认没有安装
(2). 查看一下磁盘
(3). 创建逻辑分区
(4). 为了便于管理在/mydata目录下再创建个子目录data用于存放数据
2. 新建用户以安全方式运行进程
3. 安装并初始化mysql5.6.12
(1). 说明:mysql 安装包有三种式,rpm,源码包,二进制包(已编译好,解压后简单配置一下就可以用),我这里用的就是二进制包
(2). 执行mysql 初始化的data存放位置的准备
(3). 初始化完成后mysql中目录文件的属主应改回成root,以免被别人攻破mysql用户密码而带来数据破坏等
4. 为mysql提供主配置文件
初始化后会自动在当前目录下创建一个my.cnf配置文件,直接修改就可以(在mysql 5.6 以后配置文件自动生成,不需要我们再进行复制)
(1). 查看配置文件
大家可以看到生成的配置文件很简单,我们得添加一些内容!
(2). 修改配置文件
5. 为mysql提供sysv服务脚本并启动服务
6. 输出mysql的man手册至man命令的查找路径
7. 输出mysql的头文件至系统头文件路径/usr/include
8. 输出mysql的库文件给系统库查找路径
9. 修改PATH环境变量,让系统可以直接使用mysql的相关命令
10. 测试并连接mysql
三、编译安装PHP
1. 编译安装php-5.4.16
说明:
(1). 这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
(2). 如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。 mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
(1). 安装图片资源软件
(2). 安装libxml(扩展标记语言)库
(3). 安装bzip2压缩库
(4). 安装mcrypt加密库
(5). 编译php 5.4.16
#安装完成
(6). 为php提供配置文件
查看配置文件
(在编译的时候已经指定了配置文件的路径,所以php会自动到/etc/目录下去找其配置文件)
四、整合Apache与PHP
1. 编辑apache配置文件httpd.conf,以apache支持php
(1). 首先要在apache配置文件中定义,使apache能够处理php结尾的文件,全文查找AddType字段,添加一下内容
(2). 定位至DirectoryIndex index.html修改为:
2. 重启apache并测试
3. 增加测试文件
4. 测试效果
5. 问题
在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个错!
执行phpinfo();时提示:
解决办法有三种:
(1). 在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
(2). 在页头使用 ini_set('date.timezone','Asia/Shanghai');
(3). 修改php.ini。打开php.ini查找date.timezone 去掉前面的分号修改成为:date.timezone ="PRC" PRC注意加上双引号,要不还会出错!
五、安装Xcache加速器
1. 为php添加xcache功能
2. 编译安装Xcache 3.0.3
3. 编辑php.ini,整合php和xcache
4. 重启apache并测试
说明:测试可以使用windows主机访问linux主机IP,查看php.info中是否有xcache模块相关信息
六、启用服务器状态
说明:
mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于:
(1) 处于工作状态的worker进程数;
(2) 空闲状态的worker进程数;
(3) 每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;
(4) 当前服务器总共发送的字节数;
(5) 服务器自上次启动或重启以来至当前的时长;
(6) 平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;
启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:
需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 172.16.0.0/16来限制仅允许指定网段的主机查看此页面 。
效果图:
七、PHP连接Mysql测试
(1). 编辑apache的默认页面/usr/local/apache/htdocs/test.php
(2). 测试