RHEL 4上面安装PHP 5

本文详细介绍了如何在RHEL4系统上卸载自带的PHP,并安装更高版本的PHP5,包括必要的依赖库和配置步骤。

优快云的BLOG待我不薄呀,当我写完整篇文章,一按提交,傻了,回到原来的空页,我的内容全没有了!

唉,心淡!我最怕就是出现这种情况。

 

无办法,重写了,唯有再写简短一些。

 

RHEL4(Redhat Enterprise Linux 4)是红帽推出的企业级发行版。RHEL4自带的PHP版本是4.3.x,MySQL是4.1.x,Apache(RHEL里面叫httpd)是2.0.4x。相对于现在来说有些老,特别是PHP。本文着重讲述如何在RHEL利用原有的的Apache及MySQL安装PHP 5。

 

1. 准备安装包

zlib http://www.zlib.net/zlib-1.2.3.tar.gz

jpeg ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz

freetype http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz

png ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.26.tar.gz

gd http://www.libgd.org/releases/gd-2.0.35.tar.gz

php,直接到www.php.net下载,这里我下载的是5.2.9版本

 

mkdir /home/php

wget --backgroud http://www.zlib.net/zlib-1.2.3.tar.gz

wget --backgroud ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz

wget --backgroud http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz

wget --backgroud ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.26.tar.gz

wget --backgroud http://www.libgd.org/releases/gd-2.0.35.tar.gz

wget --backgroud http://cn.php.net/get/php-5.2.9.tar.gz/from/this/mirror

 

2. 卸载RHEL4自带的PHP及相关扩展包

rpm -qa|grep php # 查询一下已安装了哪些php相关的包

rpm -qa|grep gd- # 查询一下系统是否已经安装了自带的GD库

rpm -e php-XXXXX 

rpm -e gd-XXXX # 自带的GD库也卸掉,因为接下来我们将自己动手编译GD库

 

3. 检查Apache、MySQL相关包的安装

rpm -qa|grep httpd # 查询一下httpd的安装情况,请确保已安装httpd-devel包

rpm -qa|grep mysql # 查询一下MySQL的安装情况,请确保已安装mysql-devel包

实际上,使用RHEL原有的httpd和mysql去装PHP 5,关键就在于要把两者的devel包装上,否则到编译PHP 5的时候指定不到相关的一些路径。

 

4. 安装Zlib、png、freetype、jpeg、gd及libxml2库

4.1:安装ZLIB2

tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install clean

 

4.2:安装PNG

tar zxvf libpng-1.2.26.tar.gz
cd libpng-1.2.26

./configure
make
make install clean

 

4.3:安装freetype

cd freetype-2.3.5
./configure
make
make install

 

4.4:安装JPEG6

tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
./configure --prefix=/usr/local/jpeg --enable-shared -- enable-static
make
make install

 

4.5:安装GD

tar zxvf gd-2.0.35.tar.gz

cd gd-2.0.35
./configure --with-png --with-freetype --with-jpeg=/usr/local/jpeg/
make
make install

在configure完后,要注意看看

 

编译的时候,最后结果那里可以看到
** Configuration summary for gd 2.0.35:
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: no
Support for Xpm library: no
Support for pthreads: yes
可以看到png 、 jpeg 、 freetype都已经安装上了

 

 

4.6:安装LIBXML2

tar zxvf libxml2-2.6.31.tar.gz
cd libxml2-2.6.31
./configure --prefix=/usr/local/libxml2
make
make install
cp xml2-config /usr/bin

#上面libxml2是使用源码安装的,这里我采用RHEL自带的libxml2,版本有些区别,估计不会有什么问题(实际上是偷懒:D)

rpm -ivh libxml2-2.6.16-12.i386.rpm

rpm -ivh libxml2-devel-2.6.16-12.i386.rpm

 

5. 安装PHP 5

好,万事俱备,只欠PHP5这股东风了。相信大家都清楚在LINUX下面源码编译安装的三个步骤:configure、make、make install。其实一直以来我之所以却步于编译安装PHP,是因为configure里面涉及很多参数,而且PHP官方手册里面在PHP安装一章里面又没有统一列出所有的参数设置说明,而是在各个扩展模块的Installing页进行说明。所以一开始并不知道哪些是必要,哪些是次要的。不像在Windows里面,安装好之后,只需要调整一下php.ini里面的extension设置就可以加载相应的扩展模块。其实,道理也是差不多的,只不过在LINUX下面是需要重新编译PHP来打开相关的扩展。因此在网上找了一些文章参照着来做,尝试一下。

还有一个难点就是一些相关路径的指向。如果是直接从网上下载相关的源码包,那相对来说会简单些,因为知道他们的位置。如果使用RHEL自带的包就可能会有些复杂了,因为不是那么直接就知道路径位置。所以这里给出了一些对应的路径:

# 以下是使用RHEL自带包安装后的路径信息:

apxs => /usr/sbin/apxs  #安装了httpd-devel才会有的

mysql=> /usr/bin/mysql
libxml2 => /usr/include/libxml2

# 以下是从网上下载源码包安装后的路径信息:

freetype => /usr/include/freetype2

png => /usr/local/libpng
jpeg => /usr/local/jpeg

好了,相关信息准备好就可以开始安装!

 

mkdir /usr/local/php5

cd /home/php/php-5.2.9

./configure --prefix=/usr/local/php5 --with-mysql=usr/bin/mysql --with-apxs2=/usr/sbin/apxs --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/inclue/freetype2/ --with-zlib --with-png-dir=/usr/local/libpng --with-libxml-dir=/usr/local/libxml2 --with-gd --enable-ftp --enable-sockets --enable-mbstring

#配置成功

make

#注意:这里会出现一个错误信息,来源于httpd.h第43行找不到pcreposix.h文件,需要修改一下才能继续编译:

vi /usr/include/httpd/httpd.h

找到43行

#include "pcreposix.h"

改为

#include "/home/php/php-5.2.9/ext/pcre/pcrelib/pcreposix.h"

保存退出,再make一次。

#make完成

 

make install

#至此PHP 5已经安装完成

 

6. 配置PHP、Apache

# 生成PHP配置文件

cp php.ini-dist /usr/local/php5/lib/php.ini
vi /usr/httpd/conf/httpd.conf

# 添加下面两行

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

# 搜索
LoadModule php5_module        /usr/lib/httpd/modules/libphp5.so
# 看看是否有被屏蔽。

# 保存退出,重启httpd服务
service httpd restart

 

7. 测试

# 写一个测试脚本

vi /var/www/html/info.php

<?php

phpinfo();
?>

打开浏览器:http://rhel-ip/info.php

查看一下GD、MySQL及mbstring等库是否有被加载

 

8. 安装Zend Optimizer

到www.zend.net下载ZendOptimizer-3.0.0
tar -zxvf ZendOptimizer-3.0.0-linux-glibc23-x86_64.tar.gz
cd ZendOptimizer-3.0.0-linux-glibc23-x86_64
./install

 

PHP5至此已经安装完成了,如果在使用中需要加载其它一些模块,可以再进入/home/php/php-5.2.9进行configure/make/make install编译,步骤可以参考上述内容。

我认为源码编译的关键点就在于被编译的程序是否与其它相关的库有所关联,在进行编译安装之前,我们可以先收集好相关的安装信息,如包的关联性、路径、配置参数等等,把准备功夫做足之后,再进行编译安装,这样成功的机会就比较大了。

由此也可见,源码编译的过程是比较复杂,而且还需要一些编程的基础知识,对于一般用户来说是比较困难的,因此也就出现现在的apt、yum、yast等等的安装包管理工具。

 

=================================================================

相关参考:

1. 编译安装php5的过程总结 - 陈沙克日志http://hi.baidu.com/chenshake/blog/item/9ec3a41278f8eecbc3fd78b9.html

2. wget使用方法

3. rpm使用方法

4. http://www.php.net

<think>我们正在处理用户关于查找PHP安装路径的请求。用户提到“phpinstallationpathcheck”,并引用了几个关于PHP编译安装的配置示例和错误解决方法的引用。首先,观察用户的引用内容:-引用[1]和[2]展示了在编译安装PHP时使用的configure命令,其中都包含了`--prefix`选项,该选项用于指定安装目录(如`/usr/local/php5`)。-引用[3]和[4]则是在安装过程中可能遇到的libxml2依赖问题及其解决方法,但这与当前查询的安装路径不直接相关。用户当前的问题是:如何查找已经安装PHP的路径(即安装后的位置)。因此,我们需要指导用户如何查找系统中已经安装PHP的路径。以下是一些常见的方法:1.**使用`which`或`whereis`命令查找PHP可执行文件路径**:-由于PHP通常在系统PATH中,我们可以通过`whichphp`或`whereisphp`来查找PHP可执行文件的位置。-示例:```bash$whichphp/usr/local/php5/bin/php```或者```bash$whereisphpphp:/usr/local/php5/bin/php```从可执行文件的位置,我们可以推断安装路径(例如,上面的可执行文件位于`/usr/local/php5/bin/php`,则安装根目录可能是`/usr/local/php5`)。2.**使用`php`命令本身的选项**:-运行`php-r"echogetcwd();"`并不能获得安装路径,但我们可以使用`php--ini`来查找配置文件位置,而配置文件通常位于安装路径内。-使用`php-i`(等同于phpinfo())会输出大量信息,其中包括安装路径(ConfigureCommand中的`--prefix`值以及主配置路径等)。-更直接地,我们可以使用:```bash$php-r'echoPHP_BINARY;'```这将显示PHP可执行文件的完整路径(与`whichphp`类似)。-另一种方法是使用:```bash$php-i|grep"ConfigurationFile"```找到配置文件php.ini的位置,然后根据该位置推断安装路径(例如,配置文件通常在安装路径的lib/或etc/子目录下)。-或者直接查找配置中的prefix:```bash$php-i|grep"configure"```在输出中,可以找到当初编译时设置的`--prefix`路径(如果安装后没有被移动,则就是安装路径)。3.**通过包管理器查询(如果通过包管理器安装)**:-如果用户是通过系统包管理器(如apt、yum)安装PHP,我们可以使用包管理器的查询命令:-在Debian/Ubuntu上:`dpkg-Lphp5`(或具体包名,如php7.4)会列出所有安装的文件,然后从中找出安装路径。-在CentOS/RHEL上:`rpm-qlphp`(同样,包名可能不同)列出文件。4.**检查编译安装的默认路径**:-如果没有指定`--prefix`,通常默认安装到`/usr/local`下,可执行文件在`/usr/local/bin/php`,配置文件在`/usr/local/lib`等。5.**检查WEB服务器配置**:-如果PHP作为Apache模块运行,可以通过Apache的配置文件(如httpd.conf)查找LoadModule指令,该指令会指定PHP模块(如libphp7.so)的路径,从而推断安装路径。结合用户之前的引用,用户似乎是在自己编译安装PHP,所以重点应放在通过编译时指定的`--prefix`路径以及通过PHP命令本身来查找。因此,回答应集中指导用户使用命令行(特别是通过php命令)来查找安装路径。注意:用户可能已经安装了多个PHP版本(比如系统自带的和自己编译的),我们需要帮助用户确认当前使用的PHP对应的安装路径。生成相关问题:1.如何验证PHP是否安装成功?2.如何查看PHP的版本信息?3.如何查找PHP的配置文件路径?4.在编译安装PHP时,--prefix参数的作用是什么?5.如何卸载通过编译安装PHP?</think> ### PHP安装路径检查方法 在Linux系统中,可以通过以下方法检查PHP安装路径: #### 1. **使用`which`命令查找可执行文件** ```bash which php ``` 这会返回PHP解释器的路径,如`/usr/local/php5/bin/php`[^1][^2]。 #### 2. **通过`php -i`查看配置信息** ```bash php -i | grep "Configure Command" ``` 在输出中查找`--prefix`参数,如: ``` Configure Command => './configure' '--prefix=/usr/local/php5' ... ``` `--prefix`后的路径就是安装目录[^1][^2]。 #### 3. **查找配置文件路径** ```bash php -i | grep "Configuration File" ``` 配置文件通常位于安装路径的`lib`或`etc`子目录下,例如: ``` Configuration File (php.ini) Path => /usr/local/php5/lib ``` #### 4. **使用`whereis`命令** ```bash whereis php ``` 同时显示二进制文件、源码和帮助页的路径。 #### 5. **检查编译历史(如适用)** 如果通过源码安装: ```bash cat config.log | grep "prefix" ``` 会显示编译时指定的安装路径[^1]。 --- ### 路径验证示例 假设执行`which php`返回: ``` /usr/local/php5/bin/php ``` 则安装根目录为: ``` /usr/local/php5/ ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值