<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery, Ajax, PHP, JSON, XML, Web Technologies &#187; Apache</title>
	<atom:link href="http://blog.chonla.com/category/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chonla.com</link>
	<description>คุยกันเรื่อง jQuery, Ajax, PHP, JSON, XML และ Web Technologies เป็นภาษาไทยกันดีกว่า</description>
	<lastBuildDate>Wed, 08 Sep 2010 19:28:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>เลิกใช้เหอะไอ้ .inc น่ะ</title>
		<link>http://blog.chonla.com/2010/09/%e0%b9%80%e0%b8%a5%e0%b8%b4%e0%b8%81%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ab%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%ad%e0%b9%89-inc-%e0%b8%99%e0%b9%88%e0%b8%b0/</link>
		<comments>http://blog.chonla.com/2010/09/%e0%b9%80%e0%b8%a5%e0%b8%b4%e0%b8%81%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ab%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%ad%e0%b9%89-inc-%e0%b8%99%e0%b9%88%e0%b8%b0/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 18:43:00 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Souce Code]]></category>
		<category><![CDATA[Extension]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=293</guid>
		<description><![CDATA[เคยเขียนเว็บที่เป็น แล้วมีหน้าที่ต้อง include เข้ามาใช่มั๊ยครับ หน้า include ที่ว่านี้ ผมไม่ได้หมายถึงแค่ส่วนประกอบบนหน้าเว็บอย่างเดียวนะครับ แต่ผมรวมถึงพวกค่า config, ค่า constant, function ต่าง ๆ ที่ทำเป็น library ไว้ ฯลฯ ตั้งชื่อนามสกุลไฟล์พวกนั้นไว้ว่าอะไรครับ .inc หรือเปล่า เลิกใช้เถอะครับ ใส่นามสกุลอย่างที่มันควรจะเป็นเถอะครับ ผมเคยเห็นคนใช้ไฟล์นามสกุล .inc ครั้งแรกตอนสมัยเขียน ASP สมัยนั้นผมยังเป็นเด็กเอ๊าะ ๆ วัยละอ่อนที่ไม่รู้ประสีประสาอะไร มันจะมีไฟล์ที่ผมใช้ประจำอยู่ไฟล์นึงที่ผมโหลดมาจากในเน็ต มันมีชื่อเต็ม ๆ ว่า adodb.inc ครับ ไฟล์นี้เป็น text file ธรรมดานี่แหละ ข้างในเป็น ASP Script (Server-Sided VBScript) ที่มีการประกาศค่าคงที่ต่าง ๆ มากมาย ที่ช่วยให้ชีวิตในการเขียน ASP สะดวกขึ้นอย่างมาก ผมใช้มันมาตลอดเวลาที่ผมเขียน ASP จนกระทั่งผมเลิกเขียน [...]]]></description>
			<content:encoded><![CDATA[<p>เคยเขียนเว็บที่เป็น แล้วมีหน้าที่ต้อง include เข้ามาใช่มั๊ยครับ หน้า include ที่ว่านี้ ผมไม่ได้หมายถึงแค่ส่วนประกอบบนหน้าเว็บอย่างเดียวนะครับ แต่ผมรวมถึงพวกค่า config, ค่า constant, function ต่าง ๆ ที่ทำเป็น library ไว้ ฯลฯ ตั้งชื่อนามสกุลไฟล์พวกนั้นไว้ว่าอะไรครับ .inc หรือเปล่า เลิกใช้เถอะครับ ใส่นามสกุลอย่างที่มันควรจะเป็นเถอะครับ</p>
<p><span id="more-293"></span>ผมเคยเห็นคนใช้ไฟล์นามสกุล .inc ครั้งแรกตอนสมัยเขียน ASP สมัยนั้นผมยังเป็นเด็กเอ๊าะ ๆ วัยละอ่อนที่ไม่รู้ประสีประสาอะไร มันจะมีไฟล์ที่ผมใช้ประจำอยู่ไฟล์นึงที่ผมโหลดมาจากในเน็ต มันมีชื่อเต็ม ๆ ว่า adodb.inc ครับ ไฟล์นี้เป็น text file ธรรมดานี่แหละ ข้างในเป็น ASP Script (Server-Sided VBScript) ที่มีการประกาศค่าคงที่ต่าง ๆ มากมาย ที่ช่วยให้ชีวิตในการเขียน ASP สะดวกขึ้นอย่างมาก ผมใช้มันมาตลอดเวลาที่ผมเขียน ASP จนกระทั่งผมเลิกเขียน ASP ไป</p>
<p>จริง ๆ ผมไม่ได้หมายถึงแค่ .inc อย่างเดียวหรอกครับ ผมหมายถึง text file ทุกชนิดที่ server มันไม่รู้จัก หรือประมวลผลไม่ได้ ไม่ว่าจะเป็น .txt, .conf, .config, .inc, .duck, .dat, .ini หรือแม้กระทั่งไม่ใส่นามสกุลให้มันเลยก็ตาม ถ้าข้อความข้างในเป็น text มันก็คือ text file อยู่วันยังค่ำ</p>
<p>ปัญหามันอยู่ที่ไหนเหรอครับ ยังมีเว็บโปรแกรมเมอร์หลายคนที่ยังตั้งนามสกุลไฟล์เป็นพวกนี้อยู่ และมิหนำซ้ำ ยังเอาไป include ใช้งานจริงเสียด้วย ผมยกตัวอย่างกรณีของ php ละกันครับ ตัว php web server เอง (เช่น Apache) ปกติแล้วมันไม่ประมวลผลไฟล์นามสกุลพวกนี้หรอกครับ ยกเว้นแต่เราไป include ไฟล์พวกนั้นลงไปใน script ที่เราเขียน เช่นถ้าเป็น php มันก็จะประมวลผลไฟล์นามสกุลพวก .php, .php4, .php5 (หรืออะไรก็แล้วแต่ตามที่ตั้งไว้) ถ้าเราสั่ง include(&#8220;test.inc&#8221;) แบบนี้มันจะประมวลผล test.inc ให้ครับ แต่ถ้าเราลองเรียก test.inc ตรง ๆ ผ่าน browser มันไม่ประมวลผลหรอกครับ ทีนี้พอ server มันไม่ประมวลผล สิ่งที่มันคืนกลับมาให้เราเห็น มันก็คือข้อความข้างในไฟล์นั่นเอง ค่าต่าง ๆ ที่เราตั้งไว้เก็บไว้กะว่าจะดูคนเดียว ทั้ง username กับ password ของ database ทั้งโน่น ทั้งนี่ ตั้งหลายอย่าง ถูกเผยแพร่ไปง่าย ๆ ด้วยเหตุผลเพียงการตั้งนามสกุลไฟล์แบบนี้เท่านั้นเอง</p>
<p>พอมองเห็นปัญหาแล้วใช่มั๊ยครับ หลายคนตั้งนามสกุลไฟล์เป็นแบบนี้ เพื่อที่จะให้สื่อความหมายว่ามันเป็น include file นะ ก็ย่อว่า inc ไง หรือ config file นะ ก็ย่อว่า conf ไง ใช่ครับ มันสื่อ แต่มันไม่ได้เรื่องครับ อยากจะตั้งให้สื่อ แล้วยังจะให้ server ประมวลผล ก็ง่ายนิดเดียวครับ แค่เติมนามสกุลมันลงไปอีกหน่อยก็ได้ครับ เป็น .inc.php ก็ได้ เป็น .conf.php ก็ได้ สมัยไหนแล้ว ไม่ใช่ DOS นะครับ จะตั้งชื่อมีจุดหลาย ๆ จุดไม่ได้</p>
<p>แล้วคนอื่นจะรู้ได้ไงว่าเราตั้งนามสกุลไว้แบบนี้น่ะเหรอครับ ก็ตอนที่ server ล่ม หรือ script เจ๊งไงครับ เคยเห็นมั๊ยครับ ที่ script ทำงานไม่ถูกต้อง แล้วมัน report error ออกมา พร้อมชื่อไฟล์ที่มีปัญหา คิดว่ามันจะไม่มีวันเกิดขึ้นเลย 100% เหรอครับ กันไว้ก่อนดีกว่าครับ ดีกว่าจะมานั่งเสียใจทีหลังเพราะความเลินเล่อเล็ก ๆ น้อย ๆ</p>
<p>(entry นี้ เหมือนจะเป็นการบ่นเลยแฮะ แต่เพิ่งไปเจอคนตั้งชื่อไฟล์นามสกุลแบบนี้มา แล้ววันก่อนเว็บมันเจ๊งพอดี เลยเข้าไปดู เห็นอะไรหลายอย่างที่ไม่ควรให้เห็นเลยเชียว เฮ้อ&#8230; เห็นแล้วกลุ้ม เอามาบ่นหน่อยดีกว่า XD)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2010/09/%e0%b9%80%e0%b8%a5%e0%b8%b4%e0%b8%81%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ab%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%ad%e0%b9%89-inc-%e0%b8%99%e0%b9%88%e0%b8%b0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>สร้าง domain มาไว้ใน localhost ดีกว่า</title>
		<link>http://blog.chonla.com/2009/05/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-domain-%e0%b8%a1%e0%b8%b2%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%99-localhost-%e0%b8%94%e0%b8%b5%e0%b8%81%e0%b8%a7%e0%b9%88%e0%b8%b2/</link>
		<comments>http://blog.chonla.com/2009/05/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-domain-%e0%b8%a1%e0%b8%b2%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%99-localhost-%e0%b8%94%e0%b8%b5%e0%b8%81%e0%b8%a7%e0%b9%88%e0%b8%b2/#comments</comments>
		<pubDate>Tue, 19 May 2009 18:57:35 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Localhost]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=183</guid>
		<description><![CDATA[รู้สึกเบื่อมั๊ยครับ เวลาทำเว็บแล้วต้องมาเทสด้วย URL แบบเดิม ๆ คือ http://localhost/work/myweb/ (ประมาณนี้) ยิ่งถ้าใครแบ่ง folder อย่างหรูหรา ก็ยิ่งไปกันใหญ่ http://localhost/work/2009/clients/sipa/task1/ (อู้วววว ใครจะไปจำได้วะ) วันนี้ผมมีทางออกให้สำหรับใครที่ยังไม่รู้ครับ เดิมที เราอาจจะเบื่อแค่ domain ที่เป็นชื่อว่า localhost เราก็จะแก้ปัญหาวิธีนี้ด้วยการ map hosts file ให้เป็น www.domain.com ในเครื่องเรา ทีนี้แล้ว path ตามหลังยาว ๆ ล่ะ จะทำยังไงดี อยากพิมพ์แค่ www.domain.com เฉย ๆ ก็ใช้ได้เลย ปัญหานี้แก้ไ้ด้ไม่ยากครับ ผมจะยกตัวอย่างด้วยสภาพแวดล้อมที่ใช้ AppServ นะครับ ขั้นตอนง่าย ๆ ก่อนอื่น เริ่มจากการแก้ hosts file ก่อนครับ สำหรับคนที่ใช้ Windows ไฟล์ hosts จะอยู่ที่ [...]]]></description>
			<content:encoded><![CDATA[<p>รู้สึกเบื่อมั๊ยครับ เวลาทำเว็บแล้วต้องมาเทสด้วย URL แบบเดิม ๆ คือ http://localhost/work/myweb/ (ประมาณนี้) ยิ่งถ้าใครแบ่ง folder อย่างหรูหรา ก็ยิ่งไปกันใหญ่ http://localhost/work/2009/clients/sipa/task1/ (อู้วววว ใครจะไปจำได้วะ) วันนี้ผมมีทางออกให้สำหรับใครที่ยังไม่รู้ครับ<br />
<span id="more-183"></span><br />
เดิมที เราอาจจะเบื่อแค่ domain ที่เป็นชื่อว่า localhost เราก็จะแก้ปัญหาวิธีนี้ด้วยการ map hosts file ให้เป็น www.domain.com ในเครื่องเรา ทีนี้แล้ว path ตามหลังยาว ๆ ล่ะ จะทำยังไงดี อยากพิมพ์แค่ www.domain.com เฉย ๆ ก็ใช้ได้เลย ปัญหานี้แก้ไ้ด้ไม่ยากครับ ผมจะยกตัวอย่างด้วยสภาพแวดล้อมที่ใช้ <a title="AppServ" href="http://www.appservnetwork.com" target="_blank">AppServ</a> นะครับ</p>
<p>ขั้นตอนง่าย ๆ ก่อนอื่น เริ่มจากการแก้ hosts file ก่อนครับ</p>
<p>สำหรับคนที่ใช้ Windows ไฟล์ hosts จะอยู่ที่ <em><strong>C:\Windows\system32\drivers\etc\hosts</strong></em> นะครับ (Drive กับ Path ของ Windows อาจจะเปลี่ยนไป ขึ้นอยู่กับว่าคุณลง Windows อะไร และลงไว้ที่ไหนนะครับ)</p>
<p>ส่วนคนที่ใช้ Linux ไฟล์ hosts จะอยู่ที่ <em><strong>/etc/hosts</strong></em> ครับ</p>
<p>วิธีแก้ ก็ใช้ text editor ทั่ว ๆ ไปมาแก้ได้เลยครับ เช่น notepad (Windows) หรือ vi (Linux) เปิดมาแล้วก็เพิ่มบรรทัดนี้ลงไปครับ</p>
<p>127.0.0.1    www.domain.com</p>
<p>เสร็จแล้วก็ save ครับ เท่านี้ก็เรียบร้อย</p>
<p>วิธีทดสอบก็แค่เปิด Web Browser ขึ้นมาใหม่ แล้วก็ลองเข้าไปที่ www.domain.com ดูครับ มันควรจะพาไปหน้าเดียวกับ localhost ครับ</p>
<p>หลังจากนั้น เราก็ทำการแก้ไขไฟล์ httpd.conf ของ Apache ครับ</p>
<p>สำหรับคนที่ลง AppServ ใน Windows ไฟล์นี้จะอยู่ที่ <em><strong>C:\AppServ\Apache2.2\conf\httpd.conf</strong></em> (ขึ้นอยู่กับ Drive และ Path รวมถึง Apache version ที่เอามาลงด้วยครับว่าอยู่ที่ไหน) ส่วน Linux นั้น จะอยู่ที่ <em><strong>/usr/local/apache/conf/httpd.conf</strong></em> (อันนี้ก็เช่นกันครับ ขึ้นอยู่กับว่า เราลงไว้ที่ไหนครับ)</p>
<p>เสร็จแล้ว เปิดขึ้นมาด้วย text editor เหมือนเดิมครับ หาดูบรรทัดที่เขียนว่า</p>
<p><em>#Include conf/extra/httpd-vhosts.conf</em></p>
<p>เจอแล้วให้เอาเครื่องหมาย # หน้าบรรทัดออกครับ เสร็จแล้ว save ซักทีนึงครับ</p>
<p>หลังจากนั้น ให้เข้าไปที่ path conf/extra แล้วเปิดไฟล์ที่ชื่อ <em><strong>httpd-vhosts.conf</strong></em> ด้วย text editor แล้วพิมพ์ตามตัวอย่างด้านล่างนี้เลยครับ</p>
<pre name="code" type="js">
&lt;VirtualHost *:80&gt;
    ServerAdmin webmaster@dummy-host.x
# บรรทัดนี้ ใส่ Path ของงานเราครับ อยู่ที่ไหนก็ได้ ถ้าเป็น windows ให้เปลี่ยน \ เป็น / ด้วยนะครับ
    DocumentRoot "D:/work/domain.com/www"
# บรรทัดนี้ ใส่ชื่อ domain ครับ
    ServerName www.domain.com
# บรรทัดนี้ ใส่ชื่อ domain ครับ
    ServerAlias www.domain.com
# บรรทัดนี้ ระบุที่เก็บ error log ครับ
    ErrorLog "logs/www.domain.com-error.log"
# บรรทัดนี้ระบบ access log ครับ
    CustomLog "logs/www.domain.com-access.log" common
&lt;/VirtualHost&gt;
</pre>
<p>เสร็จแล้ว ให้ Restart Apache รอบนึง เท่านี้ก็เรียบร้อยครับ ลองเปิด browser แล้วเข้าไปที่ www.domain.com อีกทีดูสิครับ แล้วดูความแตกต่างครับ</p>
<p>จากตัวอย่าง ลองเอาไฟล์ไปวางไว้ที่ D:\work\domain.com ดูครับ เช่น เราเอาไฟล์ index.html ไปวางไว้ที่ D:\work\domain.com เราก็ลองทดสอบด้วย URL http://www.domain.com/index.html ก็ได้ครับ</p>
<p>สำหรับคนที่ยังอยากใช้ localhost อยู่ ก็อย่าลืมทำสำหรับ localhost ด้วยนะครับ แค่เปลี่ยนจาก www.domain.com เป็น localhost เท่านั้นเองครับ</p>
<p>ทีนี้ เราก็ test งานของเราได้ง่าย ๆ ด้วย URL จริง ๆ จนหนำใจได้แล้วล่ะครับ</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/05/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-domain-%e0%b8%a1%e0%b8%b2%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%99-localhost-%e0%b8%94%e0%b8%b5%e0%b8%81%e0%b8%a7%e0%b9%88%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
