[How-to] Directadmin Custombuild 2.0 Multi PHP versions selectable by .htaccess

ก่อนสั่ง 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:

ขอบคุณสำหรับบทความดีๆครับ