0x01 前言
我更喜欢手动编译安装软件,apache也不例外。其实apache的编译安装很简单,几行代码即可搞定,这得益于她的模块动态加载模式。
我自己的网站和为别人搭建的网站都是基于Wordpress ,而服务器基本位于国外,为了能使网站代码和图片更符合各种标准和减少文件大小,我特意为服务器加上mod_pagespeed 这一个出自于Google 的apache 模块。
0x02 apache2 编译安装
0x02.1 文件准备
首先要准备以下文件,下载链接在文件之后。(我写文章的时候最新版本如下,请你安装的时候到文章最后寻找apache 最新的下载链接。):
- httpd-2.4.18(点击即可下载,右击可复制下载链接);
- apr-1.5.2(点击即可下载,右击可复制下载链接);
- apr-util-1.5.4(点击即可下载,右击可复制下载链接);
- apr-iconv-1.2.1(点击即可下载,右击可复制下载链接)。
0x02.2 文件放置到正确的位置
我习惯在/root 目录下新建一个文件夹,统一放置源码文件。而apr 、apr-iconv 和apr-util 都要放置到正确的位置才能被编译。
#新建存放apache2相关源代码的文件夹 mkdir /root/codex/apache2 -p #进入上面建立的文件夹 cd /root/codex/apache2/ #下载httpd-2.4.18 wget http://ftp.cuhk.edu.hk/pub/packages/apache.org//httpd/httpd-2.4.18.tar.gz #下载apr-1.5.2 wget http://ftp.tsukuba.wide.ad.jp/software/apache//apr/apr-1.5.2.tar.gz #下载apr-util-1.5.4 wget http://ftp.tsukuba.wide.ad.jp/software/apache//apr/apr-util-1.5.4.tar.gz #下载apr-iconv-1.2.1 wget http://ftp.tsukuba.wide.ad.jp/software/apache//apr/apr-iconv-1.2.1.tar.gz #解压相关文件 tar zxvf apr-1.5.2.tar.gz tar zxvf apr-iconv-1.2.1.tar.gz tar zxvf apr-util-1.5.4.tar.gz tar zxvf httpd-2.4.18.tar.gz #将apr 、apr-iconv 和apr-util 移动到httpd-2.4.18/srclib mv apr-1.5.2 httpd-2.4.18/srclib/apr mv apr-iconv-1.2.1 httpd-2.4.18/srclib/apr-iconv mv apr-util-1.5.4 httpd-2.4.18/srclib/apr-util
0x02.3 编译/安装
#进入httpd-2.4.18 文件夹 cd httpd-2.4.18 #configure ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-proxy=shared #编译 make #安装 make install
安装完成后,以下这些信息将在日后配置服务器的时候用到:
Installing configuration files mkdir /usr/local/apache2/conf mkdir /usr/local/apache2/conf/extra mkdir /usr/local/apache2/conf/original mkdir /usr/local/apache2/conf/original/extra Installing HTML documents mkdir /usr/local/apache2/htdocs Installing error documents mkdir /usr/local/apache2/error Installing icons mkdir /usr/local/apache2/icons mkdir /usr/local/apache2/logs Installing CGIs mkdir /usr/local/apache2/cgi-bin Installing header files Installing build system files Installing man pages and online manual mkdir /usr/local/apache2/man mkdir /usr/local/apache2/man/man1 mkdir /usr/local/apache2/man/man8 mkdir /usr/local/apache2/manual
0x02.4 将启动文件添加到 /usr/sbin
ln /usr/local/apache2/bin/apachectl /usr/sbin/
0x02.5 测试并启动apache2
#测试 [root@test1 httpd-2.4.18]# apachectl -t Syntax OK #启动 [root@test1 httpd-2.4.18]# apachectl -k start
很不幸,通过这种方式配置的apache2并不能通过systemctl控制开机启动。如果需要开机启动,通过修改/etc/rc.local 这个文件即可:
#通过vim修改rc.local 文件 vim /etc/rc.local #将apachectl -k start 添加到最后一行 apachectl -k start
注意:文件/etc/rc.local 里有一句话:Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure that this script will be executed during boot.
请运行chmod +x /etc/rc.d/rc.local 这个命令以确认系统启动时有足够权限去执行!所以,如果你想这个文件里的命令能在开机时启动,请执行以下命令:
chmod +x /etc/rc.d/rc.local
0x02.6 检查运行状态
通过ip地址即可进行测试:
http://[your server ip addr.]
0x03 安装mod_pagespeed
注意:过程需要从Google 服务器下载文件,请确认你的服务器能连接上Google 服务器!
0x03.1 通过rpm安装
文件下载链接(点击打开):dl-ssl.google.com
#测试版本 yum install mod-pagespeed-beta_current_x86_64.rpm #稳定版本 yum install mod-pagespeed-stable_current_x86_64.rpm
0x03.2 通过源代码安装
#请确认以下软件包的版本 Python (>= 2.7) g++ (>= 4.1) svn (>= 1.8) git (>= 1.8) #请确认你已安装以下软件包 gperf make #如果不确定,也可以通过以下命令直接安装 yum install gcc-c++ python subversion gperf make rpm-build git curl
0x03.2.1 准备源代码
#新建存放源代码的文件夹 mkdir /root/codex/pagespeed -p #进入上面创建的文件夹 cd /root/codex/pagespeed #通过git命令从Google 复制文件 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git #定义变量 export PATH=$PATH:/root/codex/pagespeed/depot_tools #在apache2 存放模块的目录下新建文件夹 mkdir /usr/local/apache2/modules/mod_pagespeed -p #进入上面创建的文件夹 cd /usr/local/apache2/modules/mod_pagespeed #config gclient config https://github.com/pagespeed/mod_pagespeed.git --unmanaged --name=src 通过git 命令从Github 复制文件 git clone https://github.com/pagespeed/mod_pagespeed.git src 进入刚才从Github 复制的文件夹 cd src #检出主线版本 git checkout master #返回上一级目录 cd .. #同步,这需要很长时间! gclient sync --force --jobs=1
0x03.2.2 编译/测试
#设置变量 export SSL_CERT_DIR=/etc/pki/tls/certs export SSL_CERT_FILE=/etc/pki/tls/cert.pem #进入文件夹 cd /usr/local/apache2/modules/mod_pagespeed/src #编译,这可能需要半小时,请耐心等待 make AR.host=`pwd`/build/wrappers/ar.sh AR.target=`pwd`/build/wrappers/ar.sh \ BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test #测试,这可能需要十几分钟,请耐心等待 ./out/Release/mod_pagespeed_test ./out/Release/pagespeed_automatic_test
0x03.2.3 继续完成编译过程
#进入文件夹 cd /usr/local/apache2/modules/mod_pagespeed/src #完成编译 make AR.host=`pwd`/build/wrappers/ar.sh AR.target=`pwd`/build/wrappers/ar.sh BUILDTYPE=Release
0x03.2.4 安装
#进入文件夹 cd install #安装 APXS_BIN=/usr/local/apache2/bin/apxs ./install_apxs.sh
0x04 PageSpeed Insights
这是Google 的一个项目,用来测试网页是否符合规范。以下是地址,点击即可打开,但请确认你能够访问Google 服务器!
0x04.1 这是我这个网站的PageSpeed Insights 测试结果
0x05 结语
apache2的编译安装很快捷,可是mod_pagespeed需要将近一个小时,要有耐心。
如果在编译过程中出现错误,请参考一下这篇文章:
或,通过以下命令安装一些软件包:
yum install -y pcre-devel openssl-devel libxslt* perl-ExtUtils-Embed at gcc-c++ python subversion gperf make rpm-build git curl bzip2-devel libcurl-devel gd gd-devel t1lib t1lib-devel libmcrypt libmcrypt-devel libtidy libtidy-devel GeoIP-devel libatomic_ops-devel zlib-devel unzip libstdc++*