How to upgrade PHP5.2|5.3|5.4|5.5 with DirectAdmin

วิธีการติดตั้ง php 5.3.x ให้ใช้งานได้บน server ที่ลง 5.2.x เดิมอยู่แล้ว โดยใช้ทริคที่ว่าให้ระบบมอง php5.3 เป็น php6 โดยมีขั้นตอนตามนี้

*This trick will work with CustomBuild 1.2 (PHP5.2 as CLI and 5.3 as CGI (suPHP)):
cd /usr/local/directadmin/custombuild
./build set custombuild 1.2
./build update
mkdir -p custom/suphp
cp -pf configure/suphp/configure.php5 custom/suphp/configure.php6
perl -pi -e 's/php53/phprep/' versions.txt
perl -pi -e 's/php6/php53/' versions.txt
perl -pi -e 's/phprep/php6/' versions.txt
./build set php5_ver 5.2
./build set php6_cgi yes
./build set php6_cli no
./build set php5_cgi no
./build set php5_cli yes
./build php n
ln -s /usr/local/php5 /usr/local/php6

เวลาจะใช้งานเว็บไหนที่ต้องการรัน PHP v5.3.x ก็ให้สร้างไฟล์ .htaccess ไว้ใน public_html
<FilesMatch "\.php$">
AddHandler x-httpd-php6 .php
</FilesMatch>
แค่นี้ก็จะใช้ php สองเวอร์ชั่นบน host เดียวกันได้แล้วครับ
ref: http://forum.directadmin.com/showthread.php?t=35175&page=3
ref: http://help.directadmin.com/item.php?id=555 //custombuild 1.x -> 2.0
ref: https://forum.directadmin.com/showthread.php?t=51213 //php 5.6

วิธีอัพเกรด php5.2.x เป็น php5.3.x/5.4.x/5.5.x ด้วย custombuild ของ directadmin ก็ทำตามนี้
cd /usr/local/directadmin/custombuild
./build set php5_ver 5.3
./build update
./build php n
หรือว่าถ้าเอาความชัวร์ อัพแล้วไม่รอด เจอ error จุกจิกนู่นนี่นั่นไม่ครบ แนะนำให้ทำแบบนี้เลย
cd /usr/local/directadmin/custombuild
./build set php5_ver 5.3
./build update
./build all
ถ้าอัพเดท 5.2 -> 5.3 แล้วเจอ error ประมานนี้
php -v
Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0
Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0
PHP 5.3.28 (cli) (built: Feb 15 2014 15:55:09)
Copyright (c) 1997-2013 The PHP Group
ให้แก้โดยเปิด /usr/local/lib/php.ini ขึ้นมา หา parameter ตาม error แล้วใส่ ; เซมิโคลอนข้างหน้า หรือใส่ค่า off ต่อท้ายก็ได้
;register_long_arrays = On
;magic_quotes_gpc = On
#or
register_long_arrays = Off
magic_quotes_gpc = Off
ก็จะได้ผล ตามนี้
php -v
PHP 5.3.28 (cli) (built: Feb 15 2014 15:55:09)
Copyright (c) 1997-2013 The PHP Group
หรือถ้าเป็นผู้ใช้โฮสทั่วไปที่แก้ไฟล์ php.ini ไม่ได้ ก็ทำตามนี้ ให้สร้าง/แก้ไฟล์ .htaccess ใส่โค้ดด้านล้างนี้ที่บรรทัดแรก
php_value magic_quotes 0
php_flag magic_quotes off
php_value magic_quotes_gpc 0
php_flag magic_quotes_gpc off
แล้วอัพขึ้นไปบน public_html โดเมนนั้นๆ ก็เป็นอันว่าใช้ได้ล่ะ

fix error libxml2.0
http://forum.directadmin.com/showthread.php?t=44626 fyi: http://onlinephpfunctions.com/benchmarks

Blog | , ,
Line it!