ก่อนสั่ง patch ได้สั่ง cd เข้าไปใน folder php-5.2.17 ละยังครับ
ได้แล้วครับแก้ตามที่คุณ mean โพสไว้ ไม่ได้อ่านกระทู้ก่อนหน้าเลย :040:
เผื่อใครเจอปัญหาเดียวกับผมครับ จะได้ไม่ต้องเสียเวลางม
เวลา compile 5.2 ไม่ผ่านอีกกรณี เจอ error
-liconv -ldl -lm -lrt -lcrypt -o sapi/cgi/php-cgi
ext/pcre/php_pcre.o: In function `pcre_get_compiled_regex_cache':
/usr/local/directadmin/custombuild/php-5.2.17/ext/pcre/php_pcre.c:259: undefined reference to `pcre_info'
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1
ให้ใช้ patch จาก
https://code.google.com/p/php52-backports/issues/detail?id=33
วิธีต่อจากพี่แมนและคุณมีนได้เลย
ดูให้แน่ใจว่าอยู่ในแฟ้ม
/usr/local/directadmin/custombuild/php-5.2.17
หลังจากเจอ error
สร้างไฟล์ php-pcre-fix.patch แล้วเพิ่ม code ด้านล่าง
--- ext/pcre/php_pcre.c 2012-01-01 14:15:04.000000000 +0100
+++ ext/pcre/php_pcre.c 2012-02-06 13:31:36.198935107 +0100
@@ -252,10 +252,10 @@
back the compiled pattern, otherwise go on and compile it. */
if (zend_hash_find(&PCRE_G(pcre_cache), regex, regex_len+1, (void **)&pce) == SUCCESS) {
/*
- * We use a quick pcre_info() check to see whether cache is corrupted, and if it
+ * We use a quick pcre_fullinfo() check to see whether cache is corrupted, and if it
* is, we flush it and compile the pattern from scratch.
*/
- if (pcre_info(pce->re, NULL, NULL) == PCRE_ERROR_BADMAGIC) {
+ int count = 0; if (pcre_fullinfo(pce->re, NULL, PCRE_INFO_CAPTURECOUNT, &count) == PCRE_ERROR_BADMAGIC) {
zend_hash_clean(&PCRE_G(pcre_cache));
} else {
#if HAVE_SETLOCALE
--- ext/pcre/php_pcre.def 2009-01-11 14:59:00.000000000 +0100
+++ ext/pcre/php_pcre.def 2012-02-06 13:31:47.775299315 +0100
@@ -4,7 +4,6 @@
php_pcre_exec
php_pcre_get_substring
php_pcre_get_substring_list
-php_pcre_info
php_pcre_maketables
php_pcre_study
php_pcre_version
--- main/php_compat.h 2012-01-01 14:15:04.000000000 +0100
+++ main/php_compat.h 2012-02-06 13:26:59.272834580 +0100
@@ -34,7 +34,6 @@
#define pcre_exec php_pcre_exec
#define pcre_get_substring php_pcre_get_substring
#define pcre_get_substring_list php_pcre_get_substring_list
-#define pcre_info php_pcre_info
#define pcre_maketables php_pcre_maketables
#define pcre_study php_pcre_study
#define pcre_version php_pcre_version
จากนั้นสั่งตามพี่แมนซ้ำอีกครั้ง
sh configure.php5
แล้วสั่ง patch
patch -p0 < php-pcre-fix.patch
เรียบร้อยแล้ว compile ซ้ำอีกครั้ง
make && make install
พอไม่เจอ error แล้วกลับไปตามขั้นตอนพี่แมนหน้า แรกต่อครับ
:875328cc:
ขอบคุณสำหรับบทความดีๆครับ