台灣最大程式設計社群網站
線上人數
1842
 
會員總數:246135
討論主題:189719
歡迎您免費加入會員
討論區列表 >> Linux / Unix >> linux 上安裝 php-mbstring 發生錯誤
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
linux 上安裝 php-mbstring 發生錯誤
價值 : 100 QP  點閱數:1410 回應數:5
樓主

禿頭海怪
初學者
45 18
436 23
發送站內信

小弟在安裝 php 時殺生以下錯誤

因為需串連到 本機的 oracle db

又需要用到 mbstring

所以 小弟下以下指令

cd ext/mbstring
/usr/local/bin/phpize
cd ../..
./confugure --with-php-config=/usr/local/bin/php-config --with-oci8=$ORACLE_HOME -enable-mbstring
make clean
make
然後便發生錯誤
訊息如下
In file included from /root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:37:
/usr/lib/gcc/i386-redhat-linux/4.0.2/include/varargs.h:4:2: error: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/4.0.2/include/varargs.h:5:2: error: #error "Revise your code to use <stdarg.h>."
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c: In function 'onig_error_code_to_str':
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:194: error: syntax error before 'va_dcl'
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:200: error: syntax error before 'va_list'
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:269: error: syntax error before 'va_dcl'
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:273: error: redefinition of parameter 's'
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:192: error: previous definition of 's' was here
/root/php-5.1.6/ext/mbstring/oniguruma/regerror.c:275: error: syntax error before 'va_list'
make: *** [ext/mbstring/oniguruma/regerror.lo] Error 1



請問這要如何解決?

我的 os 是 FC4 , oracle 是 9.0
試過 php-5.2.0 以及 php-5.1.6

謝謝

搜尋相關Tags的文章: [ php ] , [ mbstring ] , [ gcc ] ,
本篇文章發表於2013-03-11 04:23
1樓
作者回應

禿頭海怪
檢舉此回應
今天我又嘗試一次
因為根據上面的訊息 gcc 版本可能是太新了

所以我到 /usr/bin 下看
ls gcc*

有 gcc 和 gcc32

所以我先把 mv gcc gcc402
再 cp gcc32 gcc

下 gcc -v ==> 已經是 gcc 3.2.3 了

再一次的 phpize, configure, make
還是有 error
但換地方了

ext/oci8/oci8.o(.text+0x951): In function `php_oci_collection_list_dtor':
/root/php-5.2.0/ext/oci8/oci8.c:748: undefined reference to `php_oci_collection_close'
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php] Error 1

真是多災多難呀.....
本篇文章回覆於2013-03-11 10:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

towns
捐贈 VP 給 towns 檢舉此回應
看到樓主發出問題,第一個就是覺得Linux的版本是在太多了 = =
這類未定義的情形,towns以前是遇到PHP版本太舊,不支援 __DIR__ 這個常數
不過,你這個問題 undefined reference to `php_oci_collection_close',在這個討論串中 https://bugs.php.net/bug.php?id=35242 似乎是說明要再加裝 oci8 這個套件!

towns經驗有限,僅能提供這些資訊,請 樓大試試
本篇文章回覆於2013-03-11 10:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

禿頭海怪
檢舉此回應
謝謝 towns 的回答

不過我想這應該不是 oci8 沒安裝的問題
因為一開始, 在 configure 中 我沒有加上 --with-mbstring
用 gcc4.0.2 compile 時,, 完全正常過關

最後用 <? phpinfo(); ?> 來看
也有 oci8 的模組

所以我想應該不是它的問題

不過還是謝謝您的關心........
本篇文章回覆於2013-03-11 10:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
FC4...
如果用原本的yum安裝的php是幾版的?
如果只是很單純為了加上php-mbstring,不妨找一下還提供舊版Fedora的yum更新Server,用yum安裝吧
現在都Fedora 18了說...
本篇文章回覆於2013-03-11 18:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

禿頭海怪
檢舉此回應
謝謝 那顆爛蔥 的指點

這機器都是公司已在運轉多年的機器

老版很摳, 但我又想要互相作到備援

所以才會想到在 oracle db 的 machine 上灌上 apache + php + php-mbstring

我弄了一整天, 最後終於搞定

我共有兩個地方作調整

1. 是最重要的, 我把 php 改成 5.2 的最終板 5.2.17 果然不再有這一大堆的問題

但是 oci8 雖然起來, 但一直有誤

所以我又改了一段

2. 雖然 oracle 和 php 是在同一機器, 但我還是又裝上 instactclient 和 oci8

果然一切都迎刃而解

謝謝兩位大大的關心.....

本篇文章回覆於2013-03-11 21:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.