安裝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