Inspirer

Linux 下 编译安装 Apache 2.4 和 php 5.6

本文章所基于的 linux 系统发行版为 CentOS 6.6。本文默认读者已安装好 mysql,若没有则在安装 mysql 扩展时会出现问题。

准备

先下载好以下源码包

请确认系统中已安装了 GCC(GCC,GCC-C++)、make、autoconf 和 automake。恩,除了这些还有一堆依赖库。为了避免麻烦,您可以直接这样:

yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

其他没有 yum 的系统可以通过其他类似方式(如 ubuntu 的 apt-get)进行安装。

编译安装 apache

建议为 apache 创建一个用户和用户组

groupadd deployer
useradd -g deployer deployer

优先安装apr

tar -zxvf apr-1.5.1.tar.gz
cd apr-1.5.1
./configure --prefix=/usr/local/apr
make
make install

然后安装apr-util

tar -zxvf apr-util-1.5.4
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

安装pcre

tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make
make install

安装apache

tar -zxvf httpd-2.4.10.tar.gz
cd httpd-2.4.10
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install

编译安装 php

tar -zxvf php-5.6.22.tar.gz
cd php-5.6.22
./configure \
--prefix=/usr/local/php/5.6.22 \
--with-config-file-path=/usr/local/php/5.6.22/etc \
--with-config-file-scan-dir=/usr/local/php/5.6.22/etc/conf.d \
--with-fpm-user=deployer \
--with-fpm-group=deployer \
--enable-fpm \
--enable-soap \
--with-openssl \
--with-mcrypt \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--disable-mbregex \
--disable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--with-mysqli \
make
make install

上述内容中直接拷贝我最近一次编译后的结果(从 phpinfo 中的编译选项那一栏拷贝下来的,所以很多实际上不需要的),有一些 php 的扩展是可选的,可根据情况选择编译。若后期有需要再次单独编译需要的扩展即可。

编译安装完毕,开始弄一下php-fpm,拷贝一份php-fpm配置文件并改名,差不多就是下面这种方式 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

启动php支持 /usr/local/php/sbin/php-fpm

编辑 apache 配置以启动

编辑 apache 的 httpd.conf 去掉以下两行的 ‘#’

LoadModule proxy_module modules/mod_proxy.so  
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 

修改ServerName

ServerName 127.0.0.1:80 或 ServerName localhost:80

添加

<FilesMatch \.php$>
     SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

然后启动apache

/usr/local/apache/bin/apachectl start

一些问题

安装apr时出现:cannot remove `libtoolT': No such file or directory

解决方法: 搜索 configure 文件中的 $RM “$cfgfile",在这行前面加 ‘#’ 或直接删除该行然后保存即可