遇到的错误
安装GD库的时候
ibz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgd.la] Error 1
make[2]: Leaving directory `/lamp/gd-2.0.35'
-----------------------------------------------------------
解决办法 : 重新安装 zlib-1.2.3.tar.gz
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
vi Makefile
找到 CFLAGS=-O3 -DUSE_MMAP
在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC
接下面步骤
make
make install
----------------------------------------------------
make: *** [sapi/cli/php] Error 1
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:43: undefined reference to `mysql_disable_reads_from_master'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
----------------------------------------
解决方案: vi Makefile :set nu 查看行号
在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要link 的iconv 函式库参数。 解决方法:编辑Makefile 我的php5.2.5在81行的地方:
EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient_r -lgd -lfreetype -lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2
-lz -lm -lmysqlclient_r -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -l
crypt
在其后加上-liconv,不要有空格。如下
86 EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lgd -lfreetype -lpng -lz -ljpeg -lresolv -lm -
ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -lmysqlclient -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcry
pt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -liconv
参考网站:http://www.2cto.com/kf/201108/99067.html
-lm -lxml2 -lz -lm -lcrypt -o sapi/cli/php
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_slave_query':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:207: undefined reference to `mysql_slave_query'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_query_type':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:168: undefined reference to `mysql_rpl_query_type'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_probe':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:147: undefined reference to `mysql_rpl_probe'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_rpl_parse_enabled':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:130: undefined reference to `mysql_rpl_parse_enabled'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_master_query':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:111: undefined reference to `mysql_master_query'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_rpl_parse':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:93: undefined reference to `mysql_enable_rpl_parse'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_enable_reads_from_master':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:76: undefined reference to `mysql_enable_reads_from_master'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_rpl_parse':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:59: undefined reference to `mysql_disable_rpl_parse'
ext/mysqli/.libs/mysqli_repl.o: In function `zif_mysqli_disable_reads_from_master':
/lamp/php-5.2.6/ext/mysqli/mysqli_repl.c:43: undefined reference to `mysql_disable_reads_from_master'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
--------------------------------------------------------------------------------------------------------------------
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
正确安装Zend Optimizer v3.3.3,解决方案:(网上搜集了很多方案,都不管用)
简单的说,就是解压的那个.so文件要复杂到php目录下,然后添加那一句。如下
cd 下载目录
tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-x86_64
注意版本对应,我的php版本是5.2.6
cp data/5_2_x_comp/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
修改php.ini
vi /usr/local/php-5.2.14/etc/php.ini
按住shift+g到最后并添加:
[Zend]
zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so”
就可以了
-----------------------------------------
-bash: php: command not found
解决方案:ln -s /usr/local/php/bin/php /usr/bin
---------------------------------------------------------------------------------------------------------------
2015年2月22日
次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响。
做法一:
1. 找到当前运行的php版本的源代码目录,如php-5.2.6。进入curl扩展库目录。
$ cd /lamp/php-5.2.6/ext/curl
2. 调用phpize程序生成编译配置文件。
$/usr/local/php/bin/phpize
3. 编译扩展库,分别执行下面的configure和make命令。
$./configure -with-php-config=/usr/local/php/bin/php-config
这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因
$make
#make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,
如 /home/php-5.2.3/ext/curl/modules/curl.so
4. 配置php.ini文件
#将编译好的扩展库文件复制到PHP的扩展目录下,可通过查看phpinfo信息。。
$cp /home/src/php-5.2.3/ext/curl /modules/curl.so /usr/local/php/ext
#在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下,并添加扩展库位置。【vi /usr/local/php/lib/php.ini 复制过来的,大约在823行左右】
extension_dir = “/usr/local/php/ext/”
extension=curl.so
##如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,再在这个位置,添加一行将编译后的扩展库文件名加上即可。
5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。
参考文章:http://blog.chinaunix.net/uid-26167002-id-3045558.html
[正好usr/local/php/etc/php.ini文件里面vi之后有这么一段
extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"
extension="memcache.so";
extension="pdo.so";
extension="pdo_mysql.so";
extension="curl.so";]
cp curl.so /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/ 到这个目录下
---------------------------------------------------------------------------------------------------------------------------
按照如上方法,编译按照openssl
Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
linux系统怎么样在不重新编译php增加open ssl扩展:
#下面是php的安装目录
/usr/local/php/bin/
#切换到php安装目录的 etx/openssl目录
cd /php-5.3.8p/ext/openssl
#查看openssl目录下有个config0.m4,把config0.m4改名为config.m4。
cp config0.m4 config.m4
#依次执行:
/usr/local/php5/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config
make && make install
#然后找到php.ini所在位置 打开 extension_dir(如果没有则自行添加), 同时添加 extension = "openssl.so"
#重启服务器 即可
#openssl 查看方法:
/usr/local/php5/bin/php -i |grep openssl
---------------------------------------------------------------------------
添加zlib,同理
1126 cd /lamp/php-5.2.6/ext
cd zlib
1127 mv config0.m4 config.m4
1128 /usr/local/php/bin/phpize
1130 ./configure --with-php-config=/usr/local/php/bin/php-config
【creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
这样就是成功的标志
】
1131 make
1132 make install
【[root@iZ25sgya7raZ xmlrpc]# make install
Installing shared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
就是.so文件生成在这个目录下面
】
1133 ls modules/
1134 cd /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
1135 ls
1136 vi /usr/local/php/etc/php.ini
【添加上
extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"
extension="memcache.so";
extension="pdo.so";
extension="pdo_mysql.so";
extension="curl.so";
extension="zlib.so";
】
1138 /usr/local/apache2/bin/apachectl stop
1139 /usr/local/apache2/bin/apachectl start
-------------------------------------------------------
添加xmlrpc同理
疑问:编译php的时候,是不是加一个选项就不要这么加.so文件了
cd /lamp/php-5.2.6
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets
---------------------------------------------------
-----
递归可读可写
[root@iZ25sgya7raZ apache2]# chmod 777 htdocs/
[root@iZ25sgya7raZ apache2]# chmod -R 777 htdocs/
--------------------------------------------------------
2015年2月25日
默认的php编译openssl错误,5.2.6版本的php好像有问题
遇到同样的错误问题解决
http://www.linuxidc.com/Linux/2014-04/100486.htm
---------------------------------------------------------------------------
2015年2月26日 直接解压编译php,没有apache和mysql
./configure --prefix=/usr/local/php5
configure: error: xml2-config not found. Please check your libxml2 installation.
重新安装libxml2和libxml2-devel包
yum install libxml2
yum install libxml2-devel -y
安装好了php,继续编译php变成.so文件那个
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
yum install m4
yum install autoconf
cd /opt/php5.2.17/etc/openssl
./configure --with-openssl --with-php-config=/usr/local/php5/bin/php-config