一.簡介
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