Tag: apache

เขียน htaccess ให้ข้ามใช้ SSL บางหน้า

เดี๋ยวนี้เว็บไซต์ส่วนใหญ่ที่ผมเขียน จะขอ SSL ติดไปด้วยเสมอ เวลาเข้าเว็บที่มี SSL แล้ว เราต้องเขียน htaccess เพื่อบังคับให้ใช้งานผ่าน https ตามนี้

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.cmdevhub.com/$1 [NC,R=301,L]

จากข้างบน บรรทัดสุดท้ายจะเป็นการเขียนบังคับให้ทุก request ที่เข้ามา ถูก redirect ไปที่ https ทั้งหมด

แต่บางครั้ง ถ้าเราต้องการเขียนโปรแกรมให้เรียกข้อมูลผ่าน curl จะมีปัญหาทันที เราจะไม่สามารถเรียกผ่าน https ได้ วิธีแก้ปัญหาก็คือ เขียนเงื่อนไขให้ยกเว้นบาง url หรือบางไฟล์ ให้ผ่านทาง http ปกติ แค่นี้ก็จะสามารถใช้ curl ได้แล้ว

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond http://www.cmdevhub.com/loaddata.php [NC]
ใช้งาน URL ด้านบนผ่าน http เท่านั้น

RewriteCond %{SCRIPT_FILENAME} \/load\.php [NC]
ไฟล์ load.php ใช้งานได้โดยไม่ต้องผ่าน https อยู่ใน directory ใดก็ได้
RewriteRule ^(.*)$ https://www.cmdevhub.com/$1 [NC,R=301,L]

เท่านี้เราก็แก้ปัญหาเรียก curl ผ่านเว็บที่ใช้ https ได้แล้ว หวังว่าจะมีประโยชน์บ้างนะครับ

เซ็ต virtual host ใน xampp

หลังจากลง xampp แล้ว ถ้าเราต้องการเพิ่ม virtual host โดยให้ทำงานแบบแยกพอร์ท เราสามารถแก้ไขไฟล์ htconf ได้ โดยเพิ่ม

บอกว่าจะใช้พอร์ทไหนโดยเขียน จากตัวอย่างบอกว่าจะใช้พอร์ท 8001

Listen 8001

จากนั้นตั้งชื่อ host และบอกว่าไฟล์เก็บไว้ที่ไหน

<VirtualHost localhost:8001>
DocumentRoot “e:\www\test”
</VirtualHost>

เสร็จแล้วให้ทำการ save และทำการ restart apache โดยการกด stop และ start ใน xampp control panel

หลังจากเริ่ม apache ใหม่แล้ว ให้ทดลองเปิด browser แล้วพิมพ์ localhost:8001

ถ้าหากไม่มีปัญหาก็จะสามารถใช้งานไฟล์ที่อยู่ใน directory ได้ ถ้าหากเกิด error 403 แสดงว่าไม่ได้ตั้งให้ apache ใช้งาน directory อื่นได้ ให้เราไปเซ็ตค่าที่

<Directory />
AllowOverride none
Require all denied
</Directory>

เปลี่ยนเป็น

<Directory />
AllowOverride all
Require all granted
</Directory>

เท่านี้ก็จะสามารถเรียก directory ใดๆ จากในเครื่องได้แล้ว

บทที่ 0 ติดตั้งโปรแกรม

หลังจากได้ทำความรู้จักกับ PHP และสิ่งที่เราต้องมีกันแล้ว ขั้นต่อไปจะเป็นการติดตั้งโปรแกรมเพื่อจำลองให้เครื่องของเราเป็น Web Server เนื่องจากการทำงานของ PHP นั้น จะมีการประมวลผลที่ Server แล้วส่งผลลัพธ์เป็น HTML กลับมาให้ brower แสดงผล

สำหรับการติดตั้งนั้นจะมี 2 วิธีใหญ่ๆ คือ ติดตั้งเอง ทีละโปรแกรม และ ใช้โปรแกรมสำเร็จรูป เช่น AppServ ที่เป็นของคนไทยเอง

ข้อดีของการติดตั้งเอง คือเราสามารถทำการอัพเดทโปรแกรมแต่ละตัวได้ ในกรณีที่รุ่นใหม่ออกมา เนื่องจากโปรแกรมแต่ละตัว ทำงานแยกกัน ไม่ขึ้นต่อกัน ซึ่งผมก็ชอบวิธีนี้มากกว่า อาจจะยุ่งยาก มีหลายขั้นตอนไปนิด แต่ก็สะดวกเวลาปรับแต่งแต่ละโปรแกรม

ผมจะแบ่งขั้นตอนเป็น 4 ขั้นตอนใหญ่ๆ คือ Continue reading

ทำ Virtual Host ใน Apache บน Windows

Apache บน Windows มันก็เหมือนกันบน Linux นั่นเอง ถ้าต้องการสร้างเว๊ปหลายๆ เว๊ปบน Host อันเดียวซึ่งปกติเราจะใช้ localhost หรือ 127.0.0.1 ทางเลือกก็มีสองทางคือ สร้าง virtual host โดยใช้การแยก sub domain เช่น aaa.localhost กับแยก port เช่น localhost:8001 ซึ่งทั้งสองวิธีก็มีการตั้งค่าที่คล้ายๆ กัน แต่วิธีแยก port จะแก้ไขได้ง่ายกว่า วิธีการก็คือ

เปิดไฟล์ httpd.conf แก้

Deny from all ให้เป็น Deny from None

เพิ่ม

Listen 8001

<VirtualHost localhost:8001>

   DocumentRoot c:/web/testweb

</VirtualHost>

แค่นี้ก็ใช้งานได้แล้ว โดยเราสามารถชี้ DocumentRoot ไปที่ไหนในคอมพิวเตอร์ของเราก็ได้

ง่ายๆ เลยใช่ไหมครับ ^^