เซิฟเวอร์เสมือน (VPS) คืออะไร

การจะรู้ว่าเซิฟเวอร์เสมือน (VPS) คืออะไร จะต้องรู้ว่าเซิฟเวอร์ (Dedicated Server) เป็นอย่างไรเสียก่อน ถึงจะเข้าใจว่าทำไมต้องเป็น เซิฟเวอร์เสมือน (VPS) โดยสามารถอ่านได้ที่ Dedicated Server, VPS, Hosting ต่างกันอย่างไร

– เซิฟเวอร์เสมือน (VPS) คือ การนำเครื่องเซิฟเวอร์ที่มีขนาดใหญ่ มาแบ่งให้มีขนาดเล็กๆ ตามความต้องการใช้งาน เช่น RAM 2GB, CPU 2 core, HDD 30GB เป็นต้น ซึ่งจะทำให้เครื่องเซิฟเวอร์ 1 ตัว สามารถแบ่งเป็น เซิฟเวอร์ย่อยๆ ได้หลายๆตัว ทำให้ใช้งานทรัพยากร (CPU, RAM, HDD และอื่นๆ) ได้อย่างเต็มประสิทธิภาพ

– ด้านราคา VPS ก็จะมีราคาถูกว่า Dedicated Server มาก โดย VPS สามารถหาเช่าได้ตั้งแต่ เดือนละ หลักร้อย หลักหมื่นบาท ต่อเดือน ซึ่งทำให้ลูกค้าที่ต้องการใช้งานเซิฟเวอร์ สามารถประหยัดค่าใช้จ่ายได้มาก และสามารถเช่าใช้เป็นรายเดือนได้ ถ้าไม่ต้องการใช้แล้ว ก็หยุดใช้บริการนั้นๆ และไม่ต้องเสียค่าอะไรต่ออีก แต่ถ้าต้องการใช้งานเซิฟเวอร์ก็จะมีราคาที่สูงมากเมื่อเทียบกับ vps และถ้าต้องลงทุนซื้อเซิฟเวอร์เอง ก็มีราคาหลายหมื่น ถึงหลักแสนบาท เลยทีเดียว

– การดูแลรักษา ที่เช่า VPS นั้น ผู้ให้บริการจะดูแลให้ VPS ทำงานได้ตลอด 24 ชั่วโมง ไม่ต้องห่วงว่าอุปกรณ์จะพังเสียหาย แล้วต้องไปซ่อม เปลี่ยนอะไหล่เอง ผู้ให้บริการเช่า VPS จะดูแลให้เราทั้งหมด แต่ถ้าเป็น Dedicated Server ลูกค้าต้องดูแลเรื่องพวกนี้เอง หรือถ้ามีประกันลูกค้าก็ต้องวุ่นๆกับเรื่องนี้ด้วย

– ระบบสำรองข้อมูล โดยปกติผู้ให้บริการ VPS จะมีการสำรองข้อมูลให้แบบรายวัน หรือ รายอาทิตย์ หรือรายเดือน ก็แล้วแต่ละผู้ให้บริการ ทำให้ข้อมูลเรามีความปลอดภัยและมั่นใจมากขึ้น แต่ถ้าท่านใช้ Dedicated Server ท่านจะต้องทำการสำรองข้อมูลด้วยตัวเอง และการทำระบบสำรองข้อมูลเอง เป็นเรื่องที่ไม่ได้ง่ายเลย

– บริการตั้งค่าต่างๆ การบริการหลังการขาย เรื่องนี้สำคัญมาก ซึ่งปกติแล้วเมื่อเราเช่า VPS ผู้ให้บริการจะช่วยตั้งค่าต่างๆให้เราทั้งหมด พร้อมใช้งาน หรือการปรับแต่ค่าต่างๆ ก็จะช่วยปรับแต่งให้ เพื่อให้เหมาะกับการใช้งานต่างๆ แต่ถ้าท่านใช้ Dedicated Server ส่วนใหญ่ท่านจะต้องตั้งค่าต่างๆเอง และอาจจะเป็นเรื่องที่ยุ่งยาก ถ้าท่านไม่มีความรู้เรื่องเซิฟเวอร์มาก่อน

โดยสรุป
– ถ้าท่านต้องการใช้งานเซิฟเวอร์ เน้นสะดวก ปลอดภัย ไม่ยุ่งยากเรื่องการดูแลมากนัก ประหยัดค่าใช้จ่าย เรื่องปลีกย่อยอื่นๆ แนะนำให้ใช้ VPS จะคุ้มที่สุด
– ถ้าท่านต้องการงานที่เน้นรันหนักมากๆ เช่น RAM 96GB, HDD 2TB อย่างนี้ ค่าใช้จ่าย 4,000 บาท/เดือน ขึ้นไปสามารถจ่ายได้ ให้เช่าเป็น Dedicated Server จะคุ้มที่สุด

วิธีติดตั้ง Let’s Encrypt ในระบบ DirectAdmin บน CentOS 6.8

วิธีการทำให้เว็บไซด์รองรับ https ปกติจะต้องซื้อ SSL Certificate ในราคาแบบรายปี มีตั้งแต่หลักร้อย หลักพัน หลักหมื่น หลักแสน ก็ว่ากันไป แต่สำหรับปัจจุบัน มีเทคโนโลยีที่สามารถทำให้เว็บไซด์รองรับ https โดยใช้ Let’s Encrypt ซึ่งเป็น SSL Certificate แบบฟรี ไม่เสียค่าใช้จ่าย

และติดตั้งง่ายๆ บนระบบจัดการโฮสติ้ง DirectAdmin ดังนี้

ใส่ค่าเข้าไปใน config ของ DirectAdmin โดยการเปิดไฟล์ directadmin.conf ขึ้นมาก่อน

yum -y update
vi /usr/local/directadmin/conf/directadmin.conf

จากนั้น เพิ่มตัวแปรนี้ ในบรรทัดท้ายสุด

enable_ssl_sni=1
letsencrypt=1

แก้ปัญหา การรันคำสั่งที่ติดปัญหาเรื่อง UTF-8

vi   /etc/environment

ใส่ค่าเหล่านี้เข้าไป

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

ต่อไป สร้างโฟลเดอร์สำหรับเก็บไฟล์ที่ถูกสร้างขึ้น ขณะสร้าง certificate ของ Let’s Encrypt แบบชั่วคราว

mkdir -p /var/www/html/.well-known/acme-challenge
chown -R webapps.webapps /var/www/html/.well-known
chmod -R 0755 /var/www/html/.well-known/
ll -al  /var/www/html/

แก้ปัญหาเรื่องการสั่ง gen ssl แล้วติดเรื่อง license ไม่ตรงกับเวอร์ชั่น

โดยเปิดไฟล์ letsencrypt.sh ขึ้นมาแก้ไข

vi /usr/local/directadmin/scripts/letsencrypt.sh

จากนั้นค้นหาบรรทัดที่มี LICENSE=”xxxxxx-2015.pdf” และลบออก จากนั้นใส่คำสั่งนี้ไปแทน

LICENSE="https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf"

สร้าง Alias สำหรับการเรียก .wel-known ของแต่ละโดเมน

vi /etc/httpd/conf/extra/httpd-alias-custom.conf

ใส่คำสั่งนี้เข้าไปในไฟล์ httpd-alias-custom.conf

Alias /.well-known "/var/www/html/.well-known"

ทำการดึงข้อมูลในไฟล์ httpd-alias-custom.conf มารวมเป็นค่า config ของ apache ของเรา โดยการเปิดไฟล์ httpd-includes.conf ขึ้นมาก่อน

vi /etc/httpd/conf/extra/httpd-includes.conf

ใส่คำสั่งนี้เข้าไปในไฟล์ httpd-includes.conf

Include /etc/httpd/conf/extra/httpd-alias-custom.conf

สั่ง restart apache และ directadmin โดยรันคำสั่ง

service directadmin restart
service httpd restart

เพียงเท่านี้ DirectAdmin ก็จะรองรับการสั่ง gen SSL ของ Let’s Encrypt เพื่อทำให้เว็บไซด์เป็นแบบ https โดยไม่เสียเงิน (ฟรี) เรียบร้อยครับ

วิธีติดตั้ง XCache 3.2.0, PHP 5.6 บน CentOS 6.8 + DirectAdmin

วิธีติดตั้ง XCache 3.2.0 เพื่อใช้งานร่วมกับ PHP 5.6 สามารถทำได้ง่ายๆ โดยการดาวน์โหลด source code ของ XCache และนำมา compile เอง เสร็จเรียบร้อยจะต้องได้ไฟล์ xcache.so และเปิดใช้งานใน php โดยมีขั้นตอนดังต่อไปนี้

ให้ login เข้า vps ผ่าน commandline ดูได้จากนี้ การเข้าใช้งาน ssh ผ่าน commandline

ดาวน์โหลด source code ของ XCache 3.2.0

cd /opt/
wget https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
tar -xvf xcache-3.2.0.tar.gz
cd xcache-3.2.0

เริ่ม compile xCache

phpize
./configure --enable-xcache
make
make install

เมื่อเสร็จเรียบร้อย จะแสดง path ที่เก็บไฟล์ xcache.so ไว้ที่นี่ (php แต่ละเวอร์ชั่นจะมีที่อยู่ไม่เหมือนกัน ต้องดูให้ดีว่ามันอยู่ที่ path ไหน)
/usr/local/lib/php/extensions/no-debug-non-zts-20131226/

ดูว่ามีไฟล์ xcache.so จริงหรือไม่ โดยใช้คำสั่งนี้

ll /usr/local/lib/php/extensions/no-debug-non-zts-20131226/

ต่อไปให้เราเปิด xcache.so ใน php.ini แต่เราจะไม่แนะนำให้เข้าไปแก้ไขไฟล์ php.ini โดยตรง ให้ใส่ไว้ที่โฟลเดอร์ php.conf.d แทน
ก่อนอื่นต้องดูว่าไฟล์การตั้งค่าต่างๆของ php อยู่ที่ path ไหน โดยดูได้จากการใช้คำสั่งนี้

php --ini

จะเห็นว่าไฟล์ .ini จะสามารถไปวางไว้ที่ path นี้ได้ (/usr/local/lib/php.conf.d) และเราจะใส่ไฟล์ xcache.ini ไว้ในโฟลเดอร์นี้

vi /usr/local/lib/php.conf.d/xcache.ini

จากนั้นใส่ค่า config ต่างๆดังนี้ (เปลี่ยนค่า xcache.admin.user และ xcache.admin.pass ตามที่ต้องการ)

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
[xcache-common]
;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
;; this version is not a Zend Extension, but PHP module, so we do not put zend_extension parameter here.
;;extension = xcache.so

[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "youradminuser"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = "youradminpass"

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 60M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 3600
xcache.gc_interval = 300

; Same as aboves but for variable cache
; If you don't know for sure that you need this, you probably don’t
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300

; N/A for /dev/zero
xcache.readonly_protection = Off

xcache.mmap_path = "/dev/zero"

xcache.cacher = On
xcache.stat = On

เรียบร้อย ให้ restart httpd เพื่อให้ apache โหลดไฟล์ config ต่างๆ ใหม่

service httpd restart

ทดสอบว่า XCache เปิดการใช้งานเรียบร้อยแล้วหรือไม่

php -v

จะเห็นผลลัพธ์แสดงหน้าจอประมาณนี้

PHP 5.6.25 (cli) (built: Sep 7 2016 22:27:45)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

การแก้ไขไฟล์ php.ini ใน CentOS 6.7

เมื่อต้องการแก้ไขไฟล์ php.ini ก่อนอื่นต้องรู้ว่าไฟล์ php.ini อยู่ที่ไหน โดยดูง่ายๆด้วยคำสั่ง

php --ini

ซึ่งจะแสดง path ของไฟล์ php.ini ที่ติดตั้งอยู่ใน VPS ดังรูปที่ 1
แสดง path ของ php.ini

เมื่อเรารู้ว่าไฟล์ อยู่ทีไ่หนแล้ว ก็เปิดไฟล์ php.ini มาแก้ไข อาจจะใช้ vi command ก็ได้เช่น

vi /usr/local/lib/php.ini

เมื่อแก้ไขเรียบร้อยแล้ว ให้ restart apache เพื่อให้ค่าต่างๆที่แก้ไขเปลี่ยนแปลงโดยใช้คำสั่ง

service httpd restart

การติดตั้ง NTP เพื่อ Sync เวลาบน Linux (Cent OS 6/7, Ubuntu)

การติดตั้ง NTP เพื่อ Sync เวลาบน Linux เพื่อทำให้เวลาของเครื่องตรงมากที่สุด โดยสามารถติดตั้งง่ายๆ โดยใช้คำสั่งดังต่อไปนี้

CentOS 6/7

yum install ntp ntpdate -y
chkconfig ntpd on
/etc/init.d/ntpd start
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
hwclock --systohc 

Ubuntu

apt-get install ntp

เรียบร้อยครับ สามารถตรวจสอบว่า เวลาถูกต้องหรือไม่ โดยใช้คำสั่ง

date

วิธีทำให้ php รองรับ EXIF บนระบบ DirectAdmin

สำหรับท่านไหนที่ต้องการเปิดใช้งานฟังก์ชั่นที่เกี่ยวกับ EXIF ใน php เพื่อใช้ในการดึงข้อมูลเกี่ยวกับไฟล์รูปภาพต่างๆ จะต้องทำการเปิด extension EXIF ใน php ด้วย

ลูกค้าท่านไหนที่ใช้ DirectAdmin สำหรับจัดการโฮสติ้ง สามารถเปิดให้ php รองรับ EXIF ได้ โดยจะต้องทำการ recompile php ใหม่ผ่าน custombuild ของ directadmin ดังนี้

* เพิ่มความปลอดภัย ลูกค้าอาจจะแจ้งให้ทีมงานดำเนินการให้ หรือ ถ้าจะทำเองอาจจะให้ทีมงาน PhalconHost สั่งสำรองข้อมูลก่อน เพราะถ้าทำอะไรผิดพลาดจะได้ restore ข้อมูลกลับมาได้ครับ

ก่อนอื่นต้อง login เข้า VPS ของลูกค้าผ่านโปรแกรม SSH Client เช่น putty, xshell จากนั้นพิมพ์คำสั่งดังนี้
(ในที่นี้ เป็นการติดตั้งโดยใช้ DirectAdmin Custombuild 2.0) และใช้ php 5.5 ถ้าใช้ php เวอร์ชั่นอื่นๆ ก็เปลี่ยนตามตัวหนาที่ไฮไลน์ไว้

cd /usr/local/directadmin/custombuild
mkdir -p custom/ap2
cp -fp configure/ap2/configure.php55 custom/ap2/configure.php55
vi custom/ap2/configure.php55

จากนั้นเพิ่มบรรทัดนี้เข้าไป เพื่อเปิด exif

--enable-exif

รันคำสั่งนี้ เพื่อ compile php ใหม่

./build php n

เสร็จแล้ว ลองพิพม์คำสั่ง เพื่อเช็คว่า exif เปิดใช้งานสำเร็จแล้ว ดังนี้

php -m

ก็จะเห็นชื่อ exif ปรากฏขึ้นมาแล้ว ถ้ายังไม่มี แสดงว่ายังไม่เปิดหรือทำไม่ถูกต้อง ให้ตรวจสอบว่าได้พิมพ์คำสั่งต่างๆ ถูกต้องหรือไม่ หรือมี error ในส่วนไหน

รายละเอียดเพิ่มเติม
https://help.directadmin.com/item.php?id=252