PHP5.3.28编译总结



因为mysql、apache、php都是yum安装,首先删除php
yum remove php*
刚开始编译php5.3.28,首先下载

wget http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror
tar -xvzf php-5.5.7.tar.gz到/wooface/php-5.3.28
yum -y install httpd-devel

我的计算机是64位的,也可使用yum install httpd-devel.x86_64,这一步主要是装上apxs,如果没有apxs的话,编译php时就没办法生成libphp5.so文件了。也就没办法让apache来运行你的php代码
然后进入解压后的目录,

./configure --prefix=/usr/local/php5 --with-apxs2=/usr/sbin/apxs \
--with-mysql=/usr/bin/mysql \
--with-pdo-mysql=/usr/bin/mysql \
--with-mysqli \
--with-gd \
--with-openssl \
--enable-gd-native-ttf \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib \
--with-gettext \
--with-curl \
--with-iconv \
--with-bz2 \
--with-mcrypt=/usr/local/libmcrypt \
--enable-soap \
--enable-sockets \
--enable-mbstring=all \
--enable-bcmath \
--enable-ftp
make
make install

即可
编译时候,系统自动往httpd.conf写入

LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so

并手工添加以下一行:

AddType application/x-httpd-php .php

并手工在 DirectoryIndex 一行后面加上 index.php
记得重新启动http服务即可

service httpd restart

错误(1)
configure: error: Cannot find libmysqlclient under /usr. 解决
先找出libmysqlclient在那个位置

find / -name libmysqlclient.so

通过查找libmysqlclient,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so做的软连接

ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so

PHP默认是去的 /usr/lib/搜索,所以没有找到.找到问题了就好解决了.

参考了
http://wangmukun.blog.51cto.com/651644/236029
http://www.cnblogs.com/welkinwalker/archive/2011/06/27/2091408.html

错误(2)

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

mcrypt没有安装,可以

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz

也可以

wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/Production/libmcrypt-2.5.7.tar.gz
tar -xvzf libmcrypt-2.5.7.tar.gz 
mkdir -p /usr/local/libmcrypt

然后configure时候,可以写成

./configure prefix=/usr/local/libmcrypt

默认也是可以的,为什么可以,请想想

然后make && make install
参考了
http://liuer.blog.51cto.com/1519559/1039275

比如Cannot load /usr/lib64/httpd/modules/libphp5.so into server: /usr/lib64/httpd/modules/libphp5.so: undefined symbol: zend_ini_boolean_displayer_cb
或者
can not load the module libphp5.so,undefined symbol: OnUpdateLong后面的OnUpdateLong是变化的。有时候不一定是这个文字。
中间也乱七八糟的看了一些资料,比如http://forums.fedoraforum.org/archive/index.php/t-253349.html上说要装php-embedded,我安装了,还是没用
于是我把/wooface/php-5.3.28这个文件夹删掉
rm -rf /wooface/php-5.3.28
重新解压
然后重新编译,终于OK

参考了
http://www.php.net/manual/zh/ref.pdo-mysql.php
http://blog.chinaunix.net/uid-24946452-id-365822.html
http://fxlin.blog.hexun.com/66614190_d.html
http://blog.csdn.net/zqtsx/article/details/9088877 (php编译安装经典)
http://hi.baidu.com/sunproject/item/d6b7c04c0e908feb1e19bc88(同上,貌似更加具体)
http://my.oschina.net/lijialong/blog/110489 (Centos中编译安装PHP原创)
http://qinglongyun.iteye.com/blog/1536768(Linux(centOS)手动安装删除Apache+MySQL+PHP+Memcached原创无错版)
http://blog.sina.com.cn/s/blog_606ac2740100ghfr.html(Centos 下PHP的卸载与安装)
http://showerlee.blog.51cto.com/2047005/1174141(LAMP 全功能编译安装 for CentOS6.3笔记)
http://www.cnblogs.com/sink_cup/archive/2010/11/22/centos_apache_php_pdo_mysql_curl_json_gd.html(centos手动编译安装apache、php、mysql)

标签: linux, php, 编译

相关文章

评论已关闭