首先我们需要将 php-5.6.32.tar.gz 上传至虚拟机/data/ide目录下,同时还上传了libmcrypt-2.5.8.tar.gz,mhash-0.9.9.9.tar.gz,mcrypt-2.6.8.tar.gz,libiconv-1.14.tar.gz 主要用于加密和转码!
我们先yum安装依赖包:
yum -y install gd-devel libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel freetype freetype-devel
gettext-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel libtool-ltdl libtool-ltdl-devel libicu-devel
之前我们手动安装了 pcre,其实也可以yum安装,即:yum -y install pcre pcre-devel
接下来,我们安装上面提到的加密和转码库:
cd /data/ide
tar zxvf libmcrypt-2.5.8.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd /data/ide/libmcrypt-2.5.8
./configure
make && make install
cd /data/ide/mhash-0.9.9.9
./configure
make && make install
cd /data/ide/mcrypt-2.6.8
LD_LIBRARY_PATH=/usr/local/lib ./configure
make && make install
cd /data/ide/libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
安装完毕后,我们更新一下动态链接库,这样编译安装php的时候,就能够找到上面的依赖。
vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
:wq
ldconfig
其实就是添加了:/usr/local/lib
安装PHP的时候,我们需要了解Apache服务器运行PHP的工作方式:
1.Apache Handler方式(php作为Apache服务器的Module)
将php解释器做成模块,然后加载到apache服务器中。这样,apache服务器在启动的时候,就会同时启动php模块。
当客户端请求php文件时,apache服务器就不用再fork出一个新进程来启动php解释器,而是直接将php文件交给运行中的php模块处理。
2.CGI模式
Web服务器一般只处理静态文件请求(如 jpg、htm、html),如果碰到一个动态脚本请求(如php),web服务器主进程,就fork出一个新的进程来启动CGI程序,
也就是说将动态脚本请求交给CGI程序来处理。这种工作方式的效率是非常低下的。
3.FastCGI模式,FastCGI模式根据进程管理器的不同可以分为:Apache内置进程管理器,php-fpm进程管理器
mod_fcgid是一个跟mod_fastcgi二进制兼容的Apache module,是apache的fastcgi实现,在apache的2.4以后的版本中得到支持。
php-fpm就是php中的FastCGI进程管理器。
php-fpm协同apache使用的话,编译php时候只需要去掉“--with-apxs2=/xxx/xxx/bin/apxs”, 加入“--enable-fpm”!
备注:php-fpm是常和nginx搭配使用的程序,经常替代apache+mod_cgi以及apache+mod_php的重要原因。
这里,我们仍然使用第一种方式来安装php,下一篇我们介绍Nginx搭配php-fpm工作!
// 创建php安装目录和配置文件目录
mkdir /data/server/php
mkdir /data/server/php/etc
cd /data/ide
tar zxvf php-5.6.32.tar.gz
cd php-5.6.32
./configure --prefix=/data/server/php \
--with-config-file-path=/data/server/php/etc \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-apxs2=/data/server/httpd/bin/apxs \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-sockets \
--enable-zip \
--enable-calendar \
--enable-intl \
--enable-soap \
--enable-xml \
--enable-ftp \
--enable-shmop \
--enable-sysvsem \
--enable-mbstring \
--enable-exif \
--enable-opcache \
--enable-bcmath \
--with-gettext \
--with-zlib \
--with-bz2 \
--with-iconv-dir=/usr/local/libiconv \
--with-gd \
--with-xmlrpc \
--with-curl \
--with-mhash \
--with-mcrypt \
--with-openssl \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-libxml-dir \
--disable-ipv6 \
--disable-debug \
--disable-rpath
make && make install
编译PHP时加上–with-apxs2=/xxx/xxxx/bin/apxs 参数则是把PHP作为Apache模块运行。
我们打开 httpd.conf 就能找到如下配置:
LoadModule php5_module modules/libphp5.so
接下来我们还需要修改apache配置文件httpd.conf,让其支持PHP文件类型:
vi /data/server/httpd/conf/httpd.conf
<IfModule mime_module>
AddType application/x-httpd-php .php
</IfModule>
:wq
其实就是向mime模块配置中添加:AddType application/x-httpd-php .php
我们在apache默认web目录下写入一个phpinfo文件,重启apache!
点击下载用到的源码包: http://download.csdn.net/download/konkon2012/10126484