一.简介

  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