一.简介
PHP官方网站: http://php.net
本次安装的版本: php-5.4.13
二.下载, 安装PHP
[root@caiya software]# wget http://museum.php.net/php5/php-5.4.13.tar.gz
[root@caiya software]# tar zxvf php-5.4.13.tar.gz
[root@caiya software]# cd php-5.4.13
# PHP 常用安装选项解释
# PHP安装路径
--prefix=/usr/local/php
# mysql安装路径
--with-mysql=/usr/local/mysql
# 支持openssl
--with-openssl
# mbstring库,Multi-Byte String即各种语言都有自己的编码
--enable-mbstring
# 支持freetype功能, 可移植的自由的字体库
--with-freetype-dir
# 支持图片
--with-jpeg-dir
# 支持图片
--with-png-dir
# 通用格式的压缩库, 先压缩再传送, 节省带宽
--with-zlib
# xml语言库的路径
--with-libxml-dir=/usr
# 支持xml
--enable-xml
# 让php支持sockets通讯
--enable-sockets
# 支持mcrypt方式加密
--with-mcrypt
# PHP配置文件的存放目录
--with-config-file-path=/etc
# 压缩库
--with-bz2
# 让PHP支持php.d目录的配置文件
--with-config-scan-dir=/etc/php.d
# 用mysqli方式连接mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
# 将PHP编译成apache的模块(重点)
--with-apxs2=/usr/local/apache/bin/apxs
# 取决于apache的mpm的类型.
# 如果使用prefork就不需要开启此项, 如果是work, evevt则要开启此项
# 如果是线程方式工作, 必须要开启此项
--enable-maintainer-zts
# 配置安装选项之前先查看httpd工作模式, 再决定特殊选项
# 如: --enable-maintainer-zts
[root@caiya bin]# pwd
/usr/local/apache-2.4/bin
[root@caiya bin]# ./apachectl -M | grep mpm
21: mpm_event_module (shared)
[root@caiya bin]#
# 当前event模式(正是我们实验环境需要的模式)
# 如果是prefork模式,需要修改httpd的配置文件
# httpd的配置文件路径: /etc/httpd/httpd.conf
# 演示修改配置文件, 需要什么模式, 去掉前面的#号, 注释掉原有的模式
# 修改完成后, 保存, 重启httpd服务.
[root@caiya /]# vim /etc/httpd/httpd.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
[root@caiya bin]# ./apachectl restart
# 此处修改方法基于apache.2.4.x的版本
# 配置PHP选项
[root@caiya php-5.4.13]# ./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-openssl \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--with-apxs2=/usr/local/apache-2.4/bin/apxs \
--with-mcrypt \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2 \
--enable-maintainer-zts
#配置的时候, 需要安装以下三个包:
libmcrypt-2.5.8.tar.gz
mhash-0.9.9.9.tar.gz
mcrypt-2.6.8.tar.gz
1.安装 libmcrypt-2.5.8.tar.gz
[root@caiya software]# tar zxvf libmcrypt-2.5.8.tar.gz
[root@caiya software]# cd libmcrypt-2.5.8
[root@caiya software]# ./configure
# 常见错误一:
configure: error: C++ compiler cannot create executables
# 解决办法:
shell> yum install gcc-c++ -y
# 继续配置
[root@caiya software]# make
[root@caiya software]# make install
2.安装 mhash-0.9.9.9.tar.gz
[root@caiya software]# tar zxvf mhash-0.9.9.9.tar.gz
[root@caiya software]# cd mhash-0.9.9.9
[root@caiya software]# ./configure
[root@caiya software]# make && make install
3.安装 mcrypt-2.6.8.tar.gz
[root@caiya software]# tar zxvf mcrypt-2.6.8.tar.gz
[root@caiya software]# cd mcrypt-2.6.8
[root@caiya software]# ./configure LD_LIBRARY_PATH=/usr/local/lib
[root@caiya software]# make && make install
# 继续配置
# 配置的时候常见报错
# 报错一:
configure: error: xml2-config not found. Please check your libxml2 installation.
[root@caiya software]# yum install libxml2 -y
[root@caiya software]# yum install libxml2-devel -y
# 报错二:
configure: error: Please reinstall the BZip2 distribution
[root@caiya software]# yum install bzip2 -y
[root@caiya software]# yum install bzip2-devel -y
# 报错三(64位操作系统):
configure: error: mysql configure failed. Please check config.log for more information
# 配置成功, 编译, 安装
[root@caiya php-5.4.13]# make && make install
# 此到PHP已经安装完成
三.配置 PHP
# php的安装目录在: /usr/local/php
# php的配置文件需要手动去创建, php编译目录里面有两个配置文件:
php.ini-development 开发环境
php.ini-production 生产环境
# 我们这里选择"生产环境"的配置文件并将php.ini-production复制到/etc/下命名为php.ini
[root@caiya php-5.4.13]# cp php.ini-production /etc/php.ini
# 此时需要修改httpd的配置文件, 让httpd以模块的方式加载PHP
[root@caiya php-5.4.13]# vim /etc/httpd/httpd.conf
# 让httpd能解析index.php的文件
# 搜索 DirectoryIndex 定位到 DirectoryIndex index.html, 并且添加index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
# 以模块的方式加载PHP
# 搜索 AddType 定位到 AddType application/x-gzip .gz .tgz, 在其下面添加一条规则
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php