สำหรับ Webmaster ท่านใดที่ยังไม่มี SSL ใส่เว็บ ก็ควรจะหามาใส่กันได้แล้ว และสามารถใช้คำสั่ง .htaccess ด้านล่างนี้ สำหรับทำการ Redirect การเข้าใช้งานเว็บไซต์แบบ http:// ให้ไปเป็น https:// ใช้ได้กับทุกโดเมน ซับโดเมนนะครับ
# SSL Redirect <IfModule mod_rewrite.c> RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> # END SSL Redirect
หมายเหตุ: การใช้งาน .htaccess ใช้ได้กับ Apache Web Server ที่เปิดใช้งาน mod_rewrite เท่านั้นนะครับ
The post .htaccess คำสั่ง Redirect HTTP ไปยัง HTTPS first appeared on 1412.]]>หมายเหตุ: เหมือนว่าจะเป็นเฉพาะ Apache 2.4 + FastCGI ในระบบ DirectAdmin เท่านั้นนะครับ
แรกๆผมก็ใช้วิธีการรัน Cron เช็คผ่าน URL ด้วยการใช้คำสั่ง PHP Curl เอา, หลังๆมาก็คงมีคนเจอเยอะมั้ง ทาง DirectAdmin เลยบอกวิธีแก้ไขปัญหานี้มา
ถ้า Start Apache ไม่ขึ้น ให้ทำการ Clear sem ก่อน (ไม่รู้เรียกถูกไหม แต่คำสั่งถูกนะครับ)
for i in `ipcs -s | awk '{print $2}'`; do ipcrm -s $i; done
จากนั้นก็ใช้คำสั้ง Apache restart ตามปกติ
service httpd restart
มันก็จะกลับมาทำงานได้ตามปกติของมันครับ, และวิธีการป้องกันไม่ให้มันเกิดขึ้น ให้ใช้คำสั่งนี้ครับ
echo "kernel.msgmni = 1024" >> /etc/sysctl.conf; echo "kernel.sem = 250 256000 32 1024" >> /etc/sysctl.conf; sysctl -p
ถึงกระนั้นก็ตาม…, มันก็ยังดับได้อยู่นะ ตอนแรกก็นึกว่ามันจะไม่ดับอีกแล้ว อะไรทำนองนั้น.. แต่ไม่เลยครับ มันยังดับได้อยู่ วิธีการก็คือ ให้ทำการตั้ง Cron เช็ค (ทุกชั่วโมง) ตามโค๊ดด้านล่างนี้ ไว้ที่ /etc/cron.hourly/ipcs_check นะครับ
#!/bin/sh [email protected] MAX_SEMAPHORES=15 IPCS=/usr/bin/ipcs IPCRM=/usr/bin/ipcrm MAIL=/bin/mail COUNT=`${IPCS} | grep apache | wc -l` if [ "$COUNT" -le $MAX_SEMAPHORES ]; then #all is well, there are no semaphore build-ups. exit 0; fi #we have more than MAX_SEMAPHORES, so clear them out and restart Apache. LIST=/root/sem.txt ${IPCS} | grep apache | awk '{print $2}' > ${LIST} for i in `cat ${LIST}`; do { ${IPCRM} -s $i; }; done; /etc/init.d/httpd restart TXT="${COUNT} semaphores cleared for apache for `hostname`" echo "${TXT}" | ${MAIL} -s "${TXT}" ${EMAIL} exit 1;
คำสั่งนี้จะมาพร้อมกับระบบ Monitor ทางอีเมลล์นะครับ, ให้แก้ไขจาก [email protected] เป็น Email ของคุณ
จากนั้นต่อไป ให้ทำการกำหนดสิทธิ์ให้สามารถใช้งานได้ด้วยคำสั่งนี้ครับ
chmod 755 /etc/cron.hourly/ipcs_check
เท่านี้ก็เป็นอันเสร็จสิ้นครับ
แหล่งอ้างอิง:
The post DirectAdmin CB 2.0 Apache 2.4 ไม่สามารถ Start ได้ [ปัญหา+วิธีแก้ไข] first appeared on 1412.]]>ปัญหาเหล่านี้เชื่อว่ามือใหม่ WordPress ต้องเจอกันทุกๆคนไป หากไม่ได้เข้าใจการทำงานของระบบ Server ก็จะทำให้หาวิธีการแก้ไขปัญหาตรงนี้ได้ยากพอสมควรเลยแหละ วันนี้ผมจึงมาบอกวิธีการแก้ไขปัญหาเว็บ WordPress โหลดช้า และอธิบายวิธีการ ว่าทำไมมันถึงเร็วขึ้นได้ และมันทำงานอย่างไร..?
เริ่มจาก WordPress เป็น CMS ที่ใช้ภาษา PHP เขียนระบบ Backend (ระบบที่ทำงานอยู่บนเซิฟเวอร์) และส่วนใหญ่จะใช้ Apache ในการทำ Web Server เพราะว่าสะดวกและง่าย อีกทั้งยังหาเช่าใช้บริการ Hosting สำหรับวางระบบ WordPress ได้ง่ายอีกด้วย, บางที่จะมี Nginx ให้ใช้ ก็สามารถใช้คู่กับ PHP-FPM หรืออื่นๆอีกได้ หรือจะใช้ Nginx เป็น Proxy และใช้ Apache เป็น Backend ก็ได้อีกเช่นกัน
การทำงานของ WordPress ในการโหลดหน้าเว็บไซต์ 1 ครั้ง ระบบจะทำการประมวลผลภาษา PHP จำนวนมากมาย เริ่มตั้งแต่ตัวระบบ WordPress Core หรือตัวหลักของมัน ไปยัง Theme ที่ใช้งาน และไปยัง Plugin ที่ใช้งาน ต้องประมวลผลเสร็จทั้งหมด จึงจะสามารถแสดงผลออกมาให้เราได้เห็นเป็นรูปเป็นร่างบนเบราเซอร์ของเรา มันหนักก็ตรงนี้แหละ ยิ่งถ้ามี Theme หรือ Plugin ที่เขียนโค๊ดจำนวนมาก และซับซ้อน (โค๊ดน้อยหนักๆก็มีนะ มันจะช้าหรือเร็วไม่ได้ขึ้นกับจำนวนบรรทัดของโค๊ด) ก็จะทำให้ต้องประมวลผลภาษา PHP นานกว่าปกติ, ความเร็วในขั้นตอนนี้ยังเกี่ยวเนื่องถึงส่วนของ Hardware ที่ใช้ในการประมวลผล ประเภทของ CPU, RAM และ Storage อีกด้วย
วิธีการที่จะทำให้มันประมวลผลน้อยลงก็คือ “การทำแคช (Cache)” สถานเดียวเท่านั้น ซึ่งความหมายของการทำแคชก็คือ การเก็บผลลัพท์ที่ประมวลผลได้เก็บไว้ และเอาไช้ในการเรียกหน้าเว็บครั้งต่อไป มันก็จะข้ามขั้นตอนการประมวลผลไป ขั้นตอนลักษณะนี้เรียกว่าการทำ Cache ข้อมูลนั่นเอง ส่วนวิธีการที่จะทำแคช มันก็มีหลากหลายส่วนด้วยกัน ก็อย่างที่อธิบายไปข้างต้น กว่าจะแสดงผลออกมาเป็นเว็บไซต์ให้เราเห็นนั้น มันมีขั้นตอนการประมวลผลมากมาย จึงจะขอลำดับขั้นตอนการทำแคชข้อมูลสำหรับ WordPress ดังต่อไปนี้
WordPress ทำแคชด้วย Opcode Cache สำหรับการประมวลผล PHP
ในการเรียกเว็บทุกๆครั้ง ก็จะมีการประมวลผลภาษา PHP และทำการ Compile ไปเป็นภาษา Opcode หรือภาษาที่เครื่องคอมพิวเตอร์เข้าใจและสามารถประมวลผลได้ ส่วนหนึ่งที่ทำให้ระบบ WordPress CMS ทำงานหนัก, หรือไม่ว่าจะระบบอะไรก็ตามที่ใช้ภาษา PHP เขียนขึ้น มันจะต้องทำการ Compile ไฟล์ภาษา PHP ใหม่ทุกๆครั้ง มันไม่เหมือนพวกภาษา Java ที่จะต้อง Compile ก่อน จึงจะนำไปใช้งานได้, จุดด้อยของภาษา PHP ตรงนี้จึงทำให้มันทำงานได้ช้าๆ และรองรับการใช้งานหนักๆไม่ค่อยจะได้เท่าไรนัก ก็เลยเป็นจุดเริ่มต้นของการทำ Opcode Cache ด้วย Extension ที่สร้างขึ้นมา เช่น Xcache, APC Cache และล่าสุดก็เป็น OPcache ที่เห็นว่าเสถียรๆกว่าชาวบ้านหน่อยนะ ส่วนตัวผมเองก็แนะนำเป็น OPcache เช่นกัน
WordPress ทำแคชด้วย Plugin สำหรับ Caching + Apache
Plugin ที่เราจะแนะนำให้ใช้งานสำหรับทำแคชข้อมูลก็คือ “WP Super Cache” ซึ่งมีความสามารถในการทำแคชข้อมูลในการประมวลผลทั้งหมด เก็บลงไฟล์เป็นลักษณะของ HTML หรือเป็นส่วนที่จะ Response กลับไปแสดงผลยังเบราเซอร์ และใช้ความสามารถของ .htaccess ในการทำการ Redirect เมื่อมีการเรียกใช้งานหน้าเว็บไซต์ .htaccess จะไปเรียกไฟล์ที่แคชไว้มาส่งกลับไปยังผู้ใช้งานทันที โดยไม่เข้าไปประมวลผลที่ PHP เลยแม้แต่น้อย ทำให้ตัดขั้นตอนที่ต้องประมวลผลภาษา PHP ออกไปได้ทันที
ด้วยความสามารถนี้ ไม่ว่าจะใช้งาน Plugin โหดขนาดไหน, หรือ Theme โหดขนาดไหน ก็จะถูกประมวลผลแค่คั้งแรกเท่านั้น และเก็บผลลัพท์ใส่ไฟล์ .html เบาๆสบายๆ รับรองได้เลยว่าเว็บไซต์ของคุณจะเร็วขึ้นอย่างมหาศาลเลยทีเดียว
WordPress ทำแคชไฟล์รูปภาพ หรือ Static ไฟล์อื่นๆ ด้วย Nginx
ตัวระบบ WordPress ใช้ PHP เขียน Backend ก็จริง แต่ก็ต้องมีไฟล์ที่ถูกส่งไปรันยังเครื่องคอมพิวเตอร์ของผู้ใช้งาน หรือฝั่ง Client เช่น Javascript, CSS หรือเรียกข้อมูลที่เป็น Static File (ไฟล์ที่ไม่มีการแก้ไข) เช่น รูปภาพ เป็นต้น
หลายคนยังคงเจอปัญหา ถึงแม้ว่าจะแคชข้อมูลด้วยขั้นตอนที่กล่าวมาก่อนหน้านี้แล้ว แต่ก็ลืมไปว่า Apache ก็ยังมีจุดด้อยในเรื่องของการใช้ทรัพยากร RAM และจำนวน Connection รวมถึง การทำงานกับ Static File ที่ไม่สู้ดีนัก, การที่จะให้ Nginx เข้ามาช่วยในเรื่องนี้ เห็นว่าเป็นเรื่องที่เยี่ยมยอดมากๆ เพราะว่า Nginx มีประสิทธิภาพในการประมวลผลกับ Static File ได้ดีกว่า Apache เป็นไหนๆ
หลักการทำงานก็คือ ใช้ให้ Nginx เป็น Proxy ทำหน้าที่อยู่เบื้องหน้า คอยรับ Request จากผู้ใช้งาน และหากมีการเรียก Static File ก็ให้ Nginx ทำงานไป หากไม่ใช่ ก็จะส่ง Req ต่อไปยัง Apache ที่ทำงานอยู่เบื้อหลัง ให้ Apache ประมวลผลและตอบกลับอีกที, ด้วยวิธีการนี้ จะทำให้เว็บไซต์โหลดรูปภาพและไฟล์อื่นๆได้อย่างรวดเร็ว อีกทั้งยังรองรับ Connection ได้เยอะขึ้นอีกด้วย
ถึงอย่างไรก็ตาม, วิธีการที่กล่าวมาข้างต้น ก็ต้องเลือก Hosting ที่ดีด้วยนะจ๊ะ…
The post เร่งความเร็ว WordPress ให้ทะลุจอ [ปัญหา+วิธีการ] first appeared on 1412.]]>for user in $(v-list-sys-users plain); do v-rebuild-web-domains $user; doneThe post การ Rebuild vhost ของ Apache/Nginx ใน VestaCP first appeared on 1412.]]>