<?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>SpaLinux.com &#187; Web Server</title>
	<atom:link href="http://spalinux.com/category/web-server/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>Resources for Relaxing Linux System Administrators</description>
	<lastBuildDate>Mon, 26 Jul 2010 09:51:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>วิธีการใช้คำสั่ง wget</title>
		<link>http://spalinux.com/2010/01/using_wget</link>
		<comments>http://spalinux.com/2010/01/using_wget#comments</comments>
		<pubDate>Fri, 22 Jan 2010 08:04:48 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Console]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1047</guid>
		<description><![CDATA[wget เป็นโปรแกรมที่ใช้เพื่อดาวน์โหลดไฟล์จากเว็บไซต์ได้ ในรูปแบบ text console วิธีการใช้งานก็ง่ายคือรันคำสั่ง wget ตามด้วย URL ที่ต้องการดาวน์โหลด ผลลัพธ์ที่ได้จะถูกบันทึกเป็นไฟล์ของเว็บเพจหน้านั้นๆ รูปแบบการใช้งาน $ wget [option]... [URL]... ตัวอย่างเช่น ต้องการดาวน์โหลดเว็บเพจหน้าแรกของ www.google.co.th $ wget 'http://www.google.co.th' --13:52:23--  http://www.google.co.th/            =&#62; `index.html' Resolving www.google.co.th... 72.14.203.147, 72.14.203.103, 72.14.203.104, ... Connecting to www.google.co.th&#124;72.14.203.147&#124;:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html]     [  &#60;=&#62;                                                                                ] 6,726         11.96K/s 13:52:24 (11.96 [...]]]></description>
			<content:encoded><![CDATA[<p>wget เป็นโปรแกรมที่ใช้เพื่อดาวน์โหลดไฟล์จากเว็บไซต์ได้ ในรูปแบบ text console วิธีการใช้งานก็ง่ายคือรันคำสั่ง wget ตามด้วย URL ที่ต้องการดาวน์โหลด ผลลัพธ์ที่ได้จะถูกบันทึกเป็นไฟล์ของเว็บเพจหน้านั้นๆ</p>
<p><span id="more-1047"></span></p>
<h4>รูปแบบการใช้งาน</h4>
<pre>$ <strong>wget</strong> [option]... [URL]...</pre>
<p>ตัวอย่างเช่น ต้องการดาวน์โหลดเว็บเพจหน้าแรกของ www.google.co.th</p>
<pre>$ <strong>wget 'http://www.google.co.th'
</strong>--13:52:23--  http://www.google.co.th/
           =&gt; `index.html'
Resolving www.google.co.th... 72.14.203.147, 72.14.203.103, 72.14.203.104, ...
Connecting to www.google.co.th|72.14.203.147|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]</pre>
<pre>    [  &lt;=&gt;                                                                                ] 6,726         11.96K/s</pre>
<pre>13:52:24 (11.96 KB/s) - `<span style="color: #0000ff;">index.html</span>' saved [6726]</pre>
<p>จากตัวอย่าง ผลลัพธ์ที่ได้จะถูกบันทึกเป็นชื่อ index.html</p>
<p>หมายเหตุ แนะนำให้ใส่เครื่องหมายคำพูด &#8216;  คลอบ URL เพราะบางตัวอักษรอาจมีความหมายใน SHELL</p>
<pre>$ <strong>cat index.html
</strong>&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=windows-874"&gt;&lt;title&gt;Google&lt;/title&gt;
...</pre>
<p>ระบุออปชั่น &#8216;&#8211;help&#8217; เพื่อดูวิธีการใช้งาน พร้อมทั้งออปชั่นต่างๆ</p>
<pre>$ <strong>wget --help
</strong>GNU Wget 1.10.2 (Red Hat modified), a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...</pre>
<pre>Mandatory arguments to long options are mandatory for short options too.</pre>
<pre>Startup:
  -V,  --version           display the version of Wget and exit.
  -h,  --help              print this help.
  -b,  --background        go to background after startup.
  -e,  --execute=COMMAND   execute a `.wgetrc'-style command.</pre>
<p>ในบทความนี้ขอแนะนำการใช้ออปชั่นที่ผู้เขียนใช้บ่อยๆ</p>
<h4>ดูรายละเอียดการโหลด (debug)</h4>
<p>ระบุออปชั่น &#8216;-d&#8217; เพื่อดูรายละเอียดการดาวน์โหลด เช่นดู HTTP Header, Protocol, Cookie ที่เกิดขึ้นในการดาวน์โหลด</p>
<pre>$ <strong>wget -d 'http://www.google.co.th'
</strong>DEBUG output created by Wget 1.10.2 (Red Hat modified) on linux-gnu.</pre>
<pre>--14:16:24--  http://www.google.co.th/
           =&gt; `index.html'
Resolving www.google.co.th... 72.14.203.105, 72.14.203.106, 72.14.203.99, ...
Caching www.google.co.th =&gt; 72.14.203.105 72.14.203.106 72.14.203.99 72.14.203.104 72.14.203.103 72.14.203.147
Connecting to www.google.co.th|72.14.203.105|:80... connected.
Created socket 3.
Releasing 0x000000000083d390 (new refcount 1).</pre>
<pre>---request begin---
GET / HTTP/1.0
User-Agent: Wget/1.10.2 (Red Hat modified)
Accept: */*
Host: www.google.co.th
Connection: Keep-Alive</pre>
<pre>---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.0 200 OK
Date: Fri, 22 Jan 2010 07:16:29 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=windows-874
Set-Cookie: PREF=ID=79a6955a36392a2d:TM=1264144589:LM=1264144589:S=c99kK7cOeBwCp4KG; expires=Sun, 22-Jan-2012 07:16:29 GMT; path                                             =/;</pre>
<pre>domain=.google.co.th
Set-Cookie: NID=31=h8-gos7iGB-MXzlXOo4C1_CRqzSNE6wu5Os2WBu6C-jm7tPhrlj4kJp1aiENCM66f388IScBzce4Q-6x7rwbfxUUbp2DGAIcxXu1zwSGy6zKH                                            </pre>
<pre>cjUQ2_59hiym_wuaRt2; expires=Sat, 24-Jul-2010 07:16:29 GMT; path=/; domain=.google.co.th; HttpOnly
Server: gws
X-XSS-Protection: 0</pre>
<pre>---response end---
200 OK
cdm: 1 2 3 4 5 6 7 8
Stored cookie google.co.th -1 (ANY) / &lt;permanent&gt; &lt;insecure&gt; [expiry 2012-01-22 14:16:29] PREF ID=79a6955a36392a2d:TM=1264144589                                            </pre>
<pre>:LM=1264144589:S=c99kK7cOeBwCp4KG
cdm: 1 2 3 4 5 6 7 8
Stored cookie google.co.th -1 (ANY) / &lt;permanent&gt; &lt;insecure&gt; [expiry 2010-07-24 14:16:29] NID 31=h8-gos7iGB-MXzlXOo4C1_CRqzSNE6w                                            </pre>
<pre>u5Os2WBu6C-jm7tPhrlj4kJp1aiENCM66f388IScBzce4Q-6x7rwbfxUUbp2DGAIcxXu1zwSGy6zKHcjUQ2_59hiym_wuaRt2
Length: unspecified [text/html]</pre>
<pre>    [  &lt;=&gt;                                                                                ] 6,702          6.21K/s</pre>
<pre>Closed fd 3
14:16:31 (6.20 KB/s) - `index.html' saved [6702]</pre>
<h4>ดาวน์โหลดต่อไฟล์ (continue)</h4>
<p>สามารถดาวน์โหลดไฟล์ต่อจากที่ดาวน์โหลดยังไม่ครบได้</p>
<p>เช่นต้องการดาวน์โหลดไฟล์ iso ที่มีขนาดใหญ่มาก แล้วดาวน์โหลดครั้งแรกยังไม่ครบ</p>
<pre>$ <strong>wget 'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--14:09:51--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
           =&gt; `Fedora-11-x86_64-Live.iso'
Resolving <a href="http://www.mirror.in.th/">www.mirror.in.th</a>... 61.7.253.242
Connecting to www.mirror.in.th|61.7.253.242|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 724,097,024 (691M) [application/octet-stream]</pre>
<pre> 0% [                                                                                     ] 1,090,066     87.82K/s  ETA 2:13:52</pre>
<p>หมายเหตุ ในระหว่างการดาวน์โหลด หากต้องการยกเลิกให้กด [Ctrl-C]</p>
<p>ครั้งแรกดาวน์โหลดไฟล์ได้แค่ 1 Meg กว่าๆ</p>
<pre>$ <strong>ls -l
</strong>total 1080
-rw-r--r-- 1 user1  users  1098754 2010-01-22 14:10 Fedora-11-x86_64-Live.iso</pre>
<p>ถ้าต้องการดาวน์โหลดต่อ ต้องระบุออปชั่น &#8216;-c&#8217;</p>
<pre>$ <strong>wget -c 'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--14:11:46--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
           =&gt; `Fedora-11-x86_64-Live.iso'
Resolving www.mirror.in.th... 61.7.253.242
Connecting to www.mirror.in.th|61.7.253.242|:80... connected.
HTTP request sent, awaiting response... 206 <span style="color: #0000ff;">Partial Content</span>
Length: 724,097,024 (691M), 722,998,270 (690M) remaining [application/octet-stream]</pre>
<pre> 0% [                                                                                     ] 1,401,045     94.59K/s  ETA 2:04:50</pre>
<pre>$ <strong>ls -l
</strong>total 1384
-rw-r--r-- 1 user1  users  1409733 2010-01-22 14:11 Fedora-11-x86_64-Live.iso</pre>
<h4>จำกัดความเร็วการโหลด</h4>
<p>ต้องการโหลดไฟล์แต่ไม่ต้องการเบียดบังความเร็วการใช้อินเตอร์เน็ตจากคนอื่นมากเกินไป เราสามารถจำกัดความเร็วในการโหลดของเราได้ ด้วยออปชั่น &#8216;&#8211;limit-rate&#8217;</p>
<p>เช่นต้องการจำกัดไว้ที่ 10 KBytes/s</p>
<pre>$ <strong>wget --limit-rate 10000 'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--14:25:14--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
           =&gt; `Fedora-11-x86_64-Live.iso'
Resolving www.mirror.in.th... 61.7.253.242
Connecting to www.mirror.in.th|61.7.253.242|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 724,097,024 (691M) [application/octet-stream]</pre>
<pre> 0% [                                                                                     ] 62,618         9.77K/s ETA 20:07:01</pre>
<p>หมายเหตุ หน่วยของออปชั่น &#8216;&#8211;limit-rate&#8217; เป็น bytes per second</p>
<h4>โหลดผ่าน proxy</h4>
<p>หากต้องใช้ proxy ในการโหลด ต้องมีการระบุตัวแปร &#8216;http_proxy&#8217; ไว้ใน shell ก่อนรันคำสั่ง เช่น IP ของ proxy คือ 192.168.1.1 และพอร์ต proxy คือ 3128 ถ้าใช้ BASH สามารถทำได้โดย</p>
<pre>$ <strong>export http_proxy=http://192.168.1.1:3128</strong></pre>
<p>ใช้คำสั่ง wget พร้อมระบุออปชั่น &#8216;&#8211;proxy&#8217; เพื่อให้โหลดผ่าน proxy</p>
<pre>$ <strong>wget --proxy 'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--2010-01-22 14:30:26--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
Connecting to 192.168.1.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 724097024 (691M) [application/octet-stream]
Saving to: `Fedora-11-x86_64-Live.iso'</pre>
<pre> 0% [                                                                                     ] 63,434      96.4K/s</pre>
<p>แต่ถ้า proxy ต้องระบุ user, password ด้วย จะขึ้น error ดังนี้</p>
<pre>$ <strong>wget --proxy  'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--2010-01-22 14:31:06--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
Connecting to 192.168.1.1:3128... connected.
Proxy request sent, awaiting response... 407 Proxy Authentication Required
2010-01-22 14:31:06 ERROR 407: Proxy Authentication Required.</pre>
<pre>ใช้ออปชั่น '--proxy-user' และ '--proxy-password' เพื่อระบุ user, password ในการใช้ proxy</pre>
<pre>$ <strong>wget --proxy-user=prxuser --proxy-password=prx1234  'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--2010-01-22 14:30:26--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
Connecting to 192.168.1.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 724097024 (691M) [application/octet-stream]
Saving to: `Fedora-11-x86_64-Live.iso'</pre>
<pre> 0% [                                                                                     ] 63,434      96.4K/s</pre>
<h4>ไฟล์คอนฟิก .wgetrc</h4>
<p>แทนที่จะต้องระบุออปชั่น proxy ทุกครั้ง สามารถสร้างเป็นไฟล์คอนฟิกสำหรับใช้คำสั่ง wget โดยสร้างไฟล์ชื่อ .wgetrc (มีเครื่องหมายจุดนำหน้าชื่อไฟล์ด้วย) ไว้ใน HOME ของผู้ใช้งาน</p>
<pre>$ <strong>cat ~/.wgetrc
</strong>http_proxy=http://192.168.1.1:3128/
proxy_user=prxuser
proxy_password=prx1234</pre>
<p>หลังจากสร้างไฟล์คอนฟิก .wgetrc แล้ว เวลาใช้คำสั่ง wget ก็ไม่ต้องระบุออปชั่นใดๆ อีก</p>
<pre>$ <strong>wget  'http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso'
</strong>--2010-01-22 14:37:46--  http://www.mirror.in.th/osarchive/fedora/releases/11/Live/x86_64/Fedora-11-x86_64-Live.iso
Connecting to 192.168.1.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 724097024 (691M) [application/octet-stream]
Saving to: `Fedora-11-x86_64-Live.iso.1'</pre>
<pre> 0% [                                                                                     ] 80,810      95.8K/s</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.gnu.org/software/wget/" target="_blank">GNU Wget</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/01/using_wget/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง Ruby on Rails บน Fedora 11</title>
		<link>http://spalinux.com/2009/09/install_ruby_on_rails_on_fedora_11</link>
		<comments>http://spalinux.com/2009/09/install_ruby_on_rails_on_fedora_11#comments</comments>
		<pubDate>Sat, 19 Sep 2009 07:36:54 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=923</guid>
		<description><![CDATA[Ruby on Rails ช่วยทำให้การพัฒนา Web Application ด้วยภาษา Ruby ได้ง่ายขึ้น Rails เป็น web framework ประกอบด้วยส่วน (components) ต่างๆ ซึ่งสามารถนำไปสร้างเป็น Web Application ได้เลย เพียงแค่รันไม่กี่คำสั่งเท่านั้น ดาวน์โหลดไฟล์ rpm และติดตั้ง ไฟล์ RPM ที่ต้องใช้สำหรับติดตั้ง Ruby on Rails ruby-rdoc-1.8.6.287-8.fc11.x86_64.rpm rubygems-1.3.1-2.fc11.noarch.rpm rubygem-activesupport-2.3.2-1.fc11.noarch.rpm rubygem-actionpack-2.3.2-1.fc11.noarch.rpm rubygem-actionmailer-2.3.2-1.fc11.noarch.rpm rubygem-activerecord-2.3.2-1.fc11.noarch.rpm rubygem-activeresource-2.3.2-1.fc11.noarch.rpm rubygem-rake-0.8.4-1.fc11.noarch.rpm rubygem-rails-2.3.2-2.fc11.noarch.rpm rubygem-sqlite3-ruby-1.2.4-2.fc11.x86_64.rpm ใช้คำสั่ง rpm เพิ่มติดตั้ง packages ตามลำดับต่อไปนี้ [root@fc11-64a ~]# rpm -ivh ruby-rdoc-1.8.6.287-8.fc11.x86_64.rpm [root@fc11-64a ~]# rpm -ivh rubygems-1.3.1-2.fc11.noarch.rpm [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby on Rails ช่วยทำให้การพัฒนา Web Application ด้วยภาษา Ruby ได้ง่ายขึ้น</p>
<p>Rails เป็น web framework ประกอบด้วยส่วน (components) ต่างๆ ซึ่งสามารถนำไปสร้างเป็น Web Application ได้เลย เพียงแค่รันไม่กี่คำสั่งเท่านั้น</p>
<p><span id="more-923"></span></p>
<h4>ดาวน์โหลดไฟล์ rpm และติดตั้ง</h4>
<p>ไฟล์ RPM ที่ต้องใช้สำหรับติดตั้ง Ruby on Rails</p>
<pre>ruby-rdoc-1.8.6.287-8.fc11.x86_64.rpm
rubygems-1.3.1-2.fc11.noarch.rpm
rubygem-activesupport-2.3.2-1.fc11.noarch.rpm
rubygem-actionpack-2.3.2-1.fc11.noarch.rpm
rubygem-actionmailer-2.3.2-1.fc11.noarch.rpm
rubygem-activerecord-2.3.2-1.fc11.noarch.rpm
rubygem-activeresource-2.3.2-1.fc11.noarch.rpm
rubygem-rake-0.8.4-1.fc11.noarch.rpm
rubygem-rails-2.3.2-2.fc11.noarch.rpm
rubygem-sqlite3-ruby-1.2.4-2.fc11.x86_64.rpm</pre>
<p>ใช้คำสั่ง rpm เพิ่มติดตั้ง packages ตามลำดับต่อไปนี้</p>
<pre>[root@fc11-64a ~]# <strong>rpm -ivh ruby-rdoc-1.8.6.287-8.fc11.x86_64.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygems-1.3.1-2.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-activesupport-2.3.2-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-actionpack-2.3.2-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-actionmailer-2.3.2-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-activerecord-2.3.2-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-activeresource-2.3.2-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-rake-0.8.4-1.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-rails-2.3.2-2.fc11.noarch.rpm
</strong>[root@fc11-64a ~]# <strong>rpm -ivh rubygem-sqlite3-ruby-1.2.4-2.fc11.x86_64.rpm</strong></pre>
<h4>ทดสอบสร้าง Blog ด้วย Rails</h4>
<p>ตัวอย่างต่อไปนี้ แสดงวิธีการสร้าง Web Application ด้วย Rails</p>
<p>สร้างไดเร็คทอรีสำหรับเก็บ application</p>
<pre>[root@fc11-64a ~# <strong>cd /var/www/html/
</strong>[root@fc11-64a html]# <strong>mkdir rails
</strong>[root@fc11-64a html]# <strong>cd rails/</strong></pre>
<p>ใช้คำสั่ง rails เพื่อสร้าง application ขึ้นมา ในที่นี้ตั้งชื่อว่า blog</p>
<pre>[root@fc11-64a rails]# <strong>rails blog
</strong>      create
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  config/initializers
      create  config/locales
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
      create  public/images
      create  public/javascripts
      create  public/stylesheets
      create  script/performance
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/performance
      create  test/unit
      create  vendor
      create  vendor/plugins
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  Rakefile
      create  README
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  config/database.yml
      create  config/routes.rb
      create  config/locales/en.yml
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_rails_defaults.rb
      create  config/initializers/session_store.rb
      create  config/environment.rb
      create  config/boot.rb
      create  config/environments/production.rb
      create  config/environments/development.rb
      create  config/environments/test.rb
      create  script/about
      create  script/console
      create  script/dbconsole
      create  script/destroy
      create  script/generate
      create  script/runner
      create  script/server
      create  script/plugin
      create  script/performance/benchmarker
      create  script/performance/profiler
      create  test/test_helper.rb
      create  test/performance/browsing_test.rb
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/index.html
      create  public/favicon.ico
No such file or directory - /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/bin/../lib/rails_generator/generators/applications/app/../../../../../html/favicon.ico</pre>
<p>คำสั่ง rails จะสร้างไดเร็คทอรีชื่อ blog สำหรับเก็บไฟล์ของ application ที่สร้างขึ้น พร้อมทั้งไดเร็คทอรีย่อยต่างๆ</p>
<pre>[root@fc11-64a rails]# <strong>ls -l
</strong>total 0
drwxr-xr-x 13 root root 156 2009-09-19 12:29 blog</pre>
<pre>[root@fc11-64a rails]# <strong>ls -l blog/
</strong>total 16
drwxr-xr-x 6 root root    63 2009-09-19 12:29 app
drwxr-xr-x 5 root root   128 2009-09-19 12:29 config
drwxr-xr-x 2 root root     6 2009-09-19 12:29 db
drwxr-xr-x 2 root root     6 2009-09-19 12:29 doc
drwxr-xr-x 3 root root    18 2009-09-19 12:29 lib
drwxr-xr-x 2 root root     6 2009-09-19 12:29 log
drwxr-xr-x 5 root root   135 2009-09-19 12:29 public
-rw-r--r-- 1 root root   307 2009-09-19 12:29 Rakefile
-rw-r--r-- 1 root root 10011 2009-09-19 12:29 README
drwxr-xr-x 3 root root   134 2009-09-19 12:29 script
drwxr-xr-x 7 root root   106 2009-09-19 12:29 test
drwxr-xr-x 6 root root    58 2009-09-19 12:29 tmp
drwxr-xr-x 3 root root    20 2009-09-19 12:29 vendor</pre>
<p>เข้าไปในไดเร็คทอรี blog แล้วรันคำสั่ง rake เพื่อสร้าง database สำหรับเก็บข้อมูลของ application blog</p>
<p>โดยดีฟอลต์จะใช้ฐานข้อมูล SQLite version 3 (sqlite3) ดูคอนฟิก database ได้ในไฟล์ &#8220;config/database.yml&#8221;</p>
<pre>[root@fc11-64a rails]# cd blog</pre>
<pre>[root@fc11-64a blog]# <strong>cat config/database.yml
</strong># SQLite version 3.x
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000
...</pre>
<pre>[root@fc11-64a blog]# <strong>rake db:create
</strong>(in /var/www/html/rails/blog)</pre>
<p>ไฟล์ database ของ sqlite3 ที่ถูกสร้างขึ้นจะถูกเก็บไว้ใน &#8220;db/&#8221;</p>
<pre>[root@fc11-64a blog]# <strong>ls -l db/
</strong>total 0
-rw-r--r-- 1 root root 0 2009-09-19 12:35 development.sqlite3</pre>
<p>ใช้คำสั่ง script/generate เพื่อสร้าง controller และ view ของ application</p>
<pre>[root@fc11-64a blog]# <strong>script/generate controller home index
</strong>      exists  app/controllers/
      exists  app/helpers/
      create  app/views/home
      exists  test/functional/
      create  test/unit/helpers/
      create  app/controllers/home_controller.rb
      create  test/functional/home_controller_test.rb
      create  app/helpers/home_helper.rb
      create  test/unit/helpers/home_helper_test.rb
      create  app/views/home/index.html.erb</pre>
<p> รันคำสั่ง script/server เพื่อสตาร์ตเว็บเซิร์ฟเวอร์ของ application ที่สร้างขึ้น</p>
<p>หมายเหตุ</p>
<ul>
<li>โดยดีฟอลต์ Rails จะรันเว็บเซิร์ฟเวอร์ของตัวเองที่พอร์ต 3000 ไม่ได้ใช้ Apache</li>
<li>
<pre>คำสั่งรันเซิร์ฟเวอร์นี้ หน้าจอจะค้างที่ console เพื่อแสดงเหตุการณ์ (log) ต่างๆ เมื่อมีการเรียกใช้</pre>
</li>
</ul>
<pre>[root@fc11-64a blog]# <strong>script/server
</strong>=&gt; Booting WEBrick
=&gt; Rails 2.3.2 application starting on http://0.0.0.0:3000
=&gt; Call with -d to detach
=&gt; Ctrl-C to shutdown server
[2009-09-19 13:02:23] INFO  WEBrick 1.3.1
[2009-09-19 13:02:23] INFO  ruby 1.8.6 (2008-08-11) [x86_64-linux]
[2009-09-19 13:02:23] INFO  WEBrick::HTTPServer#start: pid=2351 port=3000</pre>
<p>ทดสอบใช้ Browser เรียกเข้ามาที่เครื่อง ระบุ IP และพอร์ต 3000</p>
<p><img title="Ruby on Rails - Welcome-aboard" src="http://spalinux.com/wp-content/uploads/2009/09/01-Welcome-aboard.png" alt="Ruby on Rails - Welcome-aboard" width="768" height="737" /><br />
ตัวอย่าง log ที่แสดงออกหน้าจอ console</p>
<pre>Processing ApplicationController#index (for 10.3.3.1 at 2009-09-19 13:02:42) [GET]</pre>
<pre>ActionController::RoutingError (No route matches "/javascripts/prototype.js" with {:method=&gt;:get}):
  /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
  /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'</pre>
<pre>Rendering rescues/layout (not_found)</pre>
<p>หากต้องการยกเลิก (stop) เว็บเซิร์ฟเวอร์ ให้กดปุ่ม [Ctrl-C] ที่ Console</p>
<pre><strong><span style="color: #0000ff;">[Ctrl-C]
</span></strong>^C
[2009-09-19 13:06:18] INFO  going to shutdown ...
[2009-09-19 13:06:18] INFO  WEBrick::HTTPServer#start done.
Exiting</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/09/install_ruby_on_fedora_11">ติดตั้ง Ruby บน Fedora 11</a></li>
<li><a href="http://www.ruby-lang.org/" target="_blank">Ruby Programming Language</a></li>
<li><a href="http://guides.rubyonrails.org/getting_started.html" target="_blank">Getting Started with Rails</a></li>
<li><a href="http://mirrors.kernel.org/fedora/releases/11/Everything/x86_64/os/Packages" target="_blank">Fedora 11 Everything (x86_64)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/09/install_ruby_on_rails_on_fedora_11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิกลีนุกซ์ผ่านเว็บด้วย webmin</title>
		<link>http://spalinux.com/2009/08/configure_linux_by_webmin</link>
		<comments>http://spalinux.com/2009/08/configure_linux_by_webmin#comments</comments>
		<pubDate>Sat, 29 Aug 2009 05:35:45 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Web Server]]></category>
		<category><![CDATA[webmin]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=906</guid>
		<description><![CDATA[วันก่อนไปรับงานติดตั้งลีนุกซ์ให้กับลูกค้ารายหนึ่ง เพื่อใช้เป็น File Server แชร์ไฟล์กันระหว่างเครื่อง client หลังจากติดตั้งเสร็จแล้วใช้งานได้แล้ว ลูกค้าอยากได้วิธีการง่ายๆ เพื่อดูสถานะของเครื่องลีนุกซ์เซิร์ฟเวอร์ หรืออยากจะสั่งปิดเครื่อง (shutdown) เองได้ แต่ไม่อยากทำผ่าน Secure Shell ซึ่งต้องจำคำสั่งมากมาย เลยติดตั้งโปรแกรม webmin เพื่อให้ลูกค้าสามารถที่จะจัดการลีนุกซ์ผ่านหน้าเว็บได้ ซึ่งใช้งานง่ายเลย เพียงแต่บอกว่าการปิดเครื่องต้องคลิ้กที่ลิ้งค์ไหน ในทีนี่เลยนำมาเรียบเรียงเขียนเป็นบทความเผื่อผู้สนใจนำไปติดตั้ง ใช้งาน ดาวน์โหลด webmin เข้าเว็บไซต์ www.webmin.com คลิ้กที่ &#8220;Downloads&#8221; เลือกรูปแบบไฟล์ที่ต้องการ สำหรับ Fedora แนะนำให้เลือกเป็นแบบ RPM ติดตั้ง webmin ใช้คำสั่ง rpm เพื่อติดตั้งไฟล์ที่ดาวน์โหลดมา [root@fc11-64a ~]# rpm -ivh webmin-1.480-1.noarch.rpm warning: webmin-1.480-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 11f63c51 Preparing...                [...]]]></description>
			<content:encoded><![CDATA[<p>วันก่อนไปรับงานติดตั้งลีนุกซ์ให้กับลูกค้ารายหนึ่ง เพื่อใช้เป็น File Server แชร์ไฟล์กันระหว่างเครื่อง client หลังจากติดตั้งเสร็จแล้วใช้งานได้แล้ว ลูกค้าอยากได้วิธีการง่ายๆ เพื่อดูสถานะของเครื่องลีนุกซ์เซิร์ฟเวอร์ หรืออยากจะสั่งปิดเครื่อง (shutdown) เองได้ แต่ไม่อยากทำผ่าน Secure Shell ซึ่งต้องจำคำสั่งมากมาย</p>
<p>เลยติดตั้งโปรแกรม webmin เพื่อให้ลูกค้าสามารถที่จะจัดการลีนุกซ์ผ่านหน้าเว็บได้ ซึ่งใช้งานง่ายเลย เพียงแต่บอกว่าการปิดเครื่องต้องคลิ้กที่ลิ้งค์ไหน</p>
<p><span id="more-906"></span></p>
<p>ในทีนี่เลยนำมาเรียบเรียงเขียนเป็นบทความเผื่อผู้สนใจนำไปติดตั้ง ใช้งาน</p>
<h4>ดาวน์โหลด webmin</h4>
<p>เข้าเว็บไซต์ <a href="http://www.webmin.com/">www.webmin.com</a> คลิ้กที่ &#8220;Downloads&#8221; เลือกรูปแบบไฟล์ที่ต้องการ สำหรับ Fedora แนะนำให้เลือกเป็นแบบ RPM</p>
<h4>ติดตั้ง webmin</h4>
<p>ใช้คำสั่ง rpm เพื่อติดตั้งไฟล์ที่ดาวน์โหลดมา</p>
<pre>[root@fc11-64a ~]# <strong>rpm -ivh webmin-1.480-1.noarch.rpm
</strong>warning: webmin-1.480-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 11f63c51
Preparing...                ########################################### [100%]
Operating system is Redhat Linux
   1:webmin                 ########################################### [100%]
Webmin install complete. You can now login to http://fc11-64a.spalinux.com:10000/
as root with your root password.</pre>
<p>จากการติดตั้ง จะมีการรันเซอร์วิสของ webmin และคอนฟิกไว้ว่าถ้ามีการรีบู๊ตเครื่องใหม่ ให้สตาร์ตเซอร์วิส webmin โดยอัตโนมัติ</p>
<pre>[root@fc11-64a ~]# <strong>ps -ef | grep webmin
</strong>root      1909     1  0 19:06 ?        00:00:00 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf</pre>
<pre>[root@fc11-64a ~]# <strong>chkconfig --list webmin
</strong>webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off</pre>
<h4>ใช้งาน webmin</h4>
<p>webmin จะทำหน้าที่เว็บเซิร์ฟเวอร์อยู่ในตัว รันอยู่ที่พอร์ต 10000 วิธีการเรียกใช้คือเปิด browser เรียกเข้าไปที่ ชื่อ Hostname หรือ IP Address ของเครื่องลีนุกซ์ แต่ต้องระบุพอร์ตเป็นพอร์ต 10000 โดยใช้เครื่องหมาย : ต่อท้ายชื่อ</p>
<p><strong>http://&lt;hostname or ip-address&gt;:10000/</strong></p>
<p>ตัวอย่างหน้าเว็บแสดง System Information</p>
<p><img title="Webmin - System Information" src="http://spalinux.com/wp-content/uploads/2009/08/01-Webmin_System_Information.png" alt="Webmin - System Information" width="600" height="351" /></p>
<p>ตัวอย่างหน้าเว็บ สำหรับการปิดเครื่อง (Shutdown System)</p>
<p><img title="Webmin - Shutdown System" src="http://spalinux.com/wp-content/uploads/2009/08/02-Webmin_Shutdown_System.png" alt="Webmin - Shutdown System" width="600" height="351" /></p>
<h4> </h4>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.webmin.com" target="_blank">webmin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/08/configure_linux_by_webmin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง Apache, PHP บน Fedora 11</title>
		<link>http://spalinux.com/2009/06/install_apache_php_on_fedora_11</link>
		<comments>http://spalinux.com/2009/06/install_apache_php_on_fedora_11#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:13:49 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[install apache php]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=825</guid>
		<description><![CDATA[ในบทความนี้จะอธิบายวิธีการติดตั้งและคอนฟิก Apache บน Fedora 11 (x86_64) โดยทดสอบบนเครื่องที่ ติดตั้ง Fedora 11 แบบประหยัดพื้นที่สุด ใส่แผ่นดีวีดี Fedora 11 แล้วติดตั้งไฟล์ rpm ต่อไปนี้ตามตัวอย่าง [root@fc11-64min ~]# mount /dev/scd0 /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@fc11-64min ~]# cd /media/Packages/ ติดตั้ง Apache Web Server [root@fc11-64min Packages]# rpm -i apr-1.3.3-4.fc11.x86_64.rpm [root@fc11-64min Packages]# rpm -i apr-util-1.3.4-3.fc11.x86_64.rpm [root@fc11-64min Packages]# rpm -i apr-util-ldap-1.3.4-3.fc11.x86_64.rpm [root@fc11-64min Packages]# [...]]]></description>
			<content:encoded><![CDATA[<p>ในบทความนี้จะอธิบายวิธีการติดตั้งและคอนฟิก Apache บน Fedora 11 (x86_64) โดยทดสอบบนเครื่องที่ <a href="http://spalinux.com/2009/06/install_minimal_fedora_11">ติดตั้ง Fedora 11 แบบประหยัดพื้นที่สุด</a></p>
<p><span id="more-825"></span>ใส่แผ่นดีวีดี Fedora 11 แล้วติดตั้งไฟล์ rpm ต่อไปนี้ตามตัวอย่าง</p>
<pre>[root@fc11-64min ~]# <strong>mount /dev/scd0 /media/
</strong>mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc11-64min ~]# <strong>cd /media/Packages/</strong></pre>
<p>ติดตั้ง Apache Web Server</p>
<pre>[root@fc11-64min Packages]# <strong>rpm -i apr-1.3.3-4.fc11.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i apr-util-1.3.4-3.fc11.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i apr-util-ldap-1.3.4-3.fc11.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i httpd-tools-2.2.11-8.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i httpd-2.2.11-8.x86_64.rpm</strong></pre>
<p>ติดตั้ง PHP พื้นฐาน</p>
<pre>[root@fc11-64min Packages]# <strong>rpm -i php-common-5.2.9-2.fc11.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i php-cli-5.2.9-2.fc11.x86_64.rpm
</strong>[root@fc11-64min Packages]# <strong>rpm -i php-5.2.9-2.fc11.x86_64.rpm</strong></pre>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิสเว็บเซิร์ฟเวอร์</p>
<pre>[root@fc11-64min ~]# <strong>service httpd start
</strong>Starting httpd:                                            [  OK  ]</pre>
<p>ทดลองเปิดจาก browser</p>
<p><img title="Fedora 11 - Test Page" src="http://spalinux.com/wp-content/uploads/2009/06/01_Fedora_11_Test_Page.png" alt="Fedora 11 - Test Page" width="600" height="546" /></p>
<p> </p>
<p>เขียนไฟล์ phpinfo.php ใส่ไว้ในไดเร็คทอรี /var/www/html/ เพื่อตรวจสอบคอนฟิกของ Apache และ PHP</p>
<pre>[root@fc11-64min html]# <strong>cat phpinfo.php
</strong>&lt;?php
phpinfo();
?&gt;</pre>
<pre>ตัวอย่างผลลัพธ์จากการเรียกไฟล์ phpinfo.php ผ่าน Web Browser</pre>
<p><img title="Fedora 11 - phpinfo" src="http://spalinux.com/wp-content/uploads/2009/06/02_Fedora_11_phpinfo.png" alt="Fedora 11 - phpinfo" width="600" height="546" /></p>
<p>ในบทความนี้เป็นการติดตั้งเว็บเซิร์ฟเวอร์และคอนฟิก PHP แบบพื้นฐานเท่านั้น คือสามารถใช้เขียนโปรแกรมและใช้ฟังก์ชั่นหลักๆ ของ PHP ได้ แต่ยังไม่สามารถใช้ MySQL, GD, SNMP, &#8230; ซึ่งเราต้องลงไฟล์ rpm เพิ่มเติมต่อไป</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/07/install_php_module_on_fedora_11">ติดตั้ง PHP Module เพิ่มบน Fedora 11</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/06/install_apache_php_on_fedora_11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง Sun Freeware บน Solaris</title>
		<link>http://spalinux.com/2009/05/install_sun_freeware_on_solaris</link>
		<comments>http://spalinux.com/2009/05/install_sun_freeware_on_solaris#comments</comments>
		<pubDate>Sun, 24 May 2009 15:41:22 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Sun Freeware]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=709</guid>
		<description><![CDATA[เว็บไซต์ Sunfreeware.com เป็นแหล่งรวม free software ที่ถูก compile ให้อยู่ในรูปแบบ package (.pkg)  ทำให้สะดวกต่อการติดตั้งบน Solaris  ไฟล์ที่มีให้ดาวน์โหลดมีตั้งแต่ Solaris 2.5 จนถึงเวอร์ชั่นล่าสุด Solaris 10 ทั้งสำหรับรันบนเครื่อง SPARC และ Intel (x86) การดาวน์โหลดไฟล์เพื่อนำมาติดตั้งมีขั้นตอนดังนี้ เลือกเวอร์ชั่นของ Solaris เป็น SPARC หรือ Intel x86 (Pick Processor/OS) เลือก Package ที่จะติดตั้ง อ่านรายละเอียดของ Package นั้น เช่น ต้องติดตั้งโปรแกรมอะไรก่อน (Dependencies) คลิ้กดาวน์โหลดไฟล์ที่ต้องใช้ บทความนี้ขอนำเสนอตัวอย่างการติดตั้ง apache-2.2.11 โดยจะทดลองบน Solaris  10(x86) เลือกเวอร์ชั่นของ Solaris คลิ้กเลือก x86/Solaris 10 เลือก Package [...]]]></description>
			<content:encoded><![CDATA[<p>เว็บไซต์ Sunfreeware.com เป็นแหล่งรวม free software ที่ถูก compile ให้อยู่ในรูปแบบ package (.pkg)  ทำให้สะดวกต่อการติดตั้งบน Solaris  ไฟล์ที่มีให้ดาวน์โหลดมีตั้งแต่ Solaris 2.5 จนถึงเวอร์ชั่นล่าสุด Solaris 10 ทั้งสำหรับรันบนเครื่อง SPARC และ Intel (x86)</p>
<p><span id="more-709"></span>การดาวน์โหลดไฟล์เพื่อนำมาติดตั้งมีขั้นตอนดังนี้</p>
<ul>
<li>เลือกเวอร์ชั่นของ Solaris เป็น SPARC หรือ Intel x86 (Pick Processor/OS)</li>
<li>เลือก Package ที่จะติดตั้ง</li>
<li>อ่านรายละเอียดของ Package นั้น เช่น ต้องติดตั้งโปรแกรมอะไรก่อน (Dependencies)</li>
<li>คลิ้กดาวน์โหลดไฟล์ที่ต้องใช้</li>
</ul>
<p>บทความนี้ขอนำเสนอตัวอย่างการติดตั้ง apache-2.2.11 โดยจะทดลองบน Solaris  10(x86)</p>
<h4>เลือกเวอร์ชั่นของ Solaris</h4>
<p>คลิ้กเลือก x86/Solaris 10</p>
<p><img class="alignnone size-full wp-image-711" title="Sunfreeware Pick Processor/OS" src="http://spalinux.com/wp-content/uploads/2009/05/01_pick_processor_os.png" alt="Sunfreeware Pick Processor/OS" width="689" height="561" /></p>
<h4>เลือก Package</h4>
<p>คลิ้กเลือก apache-2.2.11</p>
<p><img class="alignnone size-full wp-image-712" title="Sunfreeware - Select Package" src="http://spalinux.com/wp-content/uploads/2009/05/02_select_package.png" alt="Sunfreeware - Select Package" width="689" height="561" /></p>
<h4>อ่านรายละเอียด Package</h4>
<p>รายละเอียดของ apache-2.2.11-sol10-x86-local.gz มีดังนี้</p>
<blockquote><p>apache-2.2.11-sol10-x86-local.gz Apache 2 &#8211; the popular web server &#8211; installs in /usr/local/apache2. Dependencies: expat, libiconv, openldap, sasl, zlib, openssl-0.9.8k, and either the libgcc-3.4.6 or gcc-3.4.6. Documentation can be found in /usr/local/apache2/doc/apache2. The configuration files in /usr/local/apache2/conf must be edited to fit your site&#8217;s needs, including ssl support.</p></blockquote>
<p><img class="alignnone size-full wp-image-713" title="Sunfreeware - Package Details" src="http://spalinux.com/wp-content/uploads/2009/05/03_package_details.png" alt="Sunfreeware - Package Details" width="689" height="561" /></p>
<p>จากรายละเอียด</p>
<ul>
<li>การติดตั้ง apache จะถูกติดตั้งไว้ใน /usr/local/apache2</li>
<li>ต้องดาวน์โหลดไฟล์อื่นๆ ด้วย (Dependencies) ในที่นี้มี expat, libiconv, openldap, sasl, zlib, openssl-0.9.8k สามารถคลิ้กลิ้งค์ที่ชื่อไฟล์ได้เลย โดยแต่ละไฟล์อาจมี Dependencies ที่ต้องลงอีก สามารถอ่านรายละเอียดของแต่ละไฟล์ เช่น libiconv ต้องใช้  db-4.2.52.NC</li>
<li>สำหรับ libgcc_s.so.1 สามารถเลือกไฟล์ติดตั้ง ได้สองแบบคือ libgcc-3.4.6 คือ gcc-3.4.6 แบบแรกไฟล์ libgcc-3.4.6 จะขนาดเล็กกว่าแต่มีเฉพาะ library ที่จำเป็นต้องใช้ ไม่มี compiler เพื่อใช้คอมไพล์โปรแกรมเหมือน gcc-3.4.6 ได้</li>
</ul>
<p>คลิ้กลิงค์ที่ไฟล์ต่างๆ เพื่อดาวน์โหลดไฟล์ทั้งหมดที่ต้องใช้</p>
<h4>ติดตั้ง package</h4>
<p>สำหรับการติดตั้ง apache-2.2.11 ถ้าคลิ้กลิ้งค์ไปเรื่อยๆ ตาม Dependencies ไฟล์ที่ต้องใช้มีดังนี้ (24 May 2009)</p>
<pre># <strong>ls -l
</strong>total 47568
-rw-r--r--   1 user1    other    7873798 May 24 21:20 apache-2.2.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    3942221 May 24 21:20 db-4.2.52.NC-sol10-intel-local.gz
-rw-r--r--   1 user1    other     299057 May 24 21:20 expat-2.0.1-sol10-x86-local.gz
-rw-r--r--   1 user1    other     526342 May 24 21:20 libgcc-3.4.6-sol10-x86-local.gz
-rw-r--r--   1 user1    other    1451349 May 24 21:20 libiconv-1.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    6436151 May 24 21:20 openldap-2.4.11-sol10-x86-local.gz
-rw-r--r--   1 user1    other    3174076 May 24 21:20 openssl-0.9.8k-sol10-x86-local.gz
-rw-r--r--   1 user1    other     540742 May 24 21:20 sasl-2.1.21-sol10-x86-local.gz</pre>
<p>รัน gzip เพื่อ unzip ไฟล์</p>
<pre># <strong>gzip -dv *.gz
</strong>apache-2.2.11-sol10-x86-local.gz:        75.3% -- replaced with apache-2.2.11-sol10-x86-local
db-4.2.52.NC-sol10-intel-local.gz:       84.1% -- replaced with db-4.2.52.NC-sol10-intel-local
expat-2.0.1-sol10-x86-local.gz:  65.7% -- replaced with expat-2.0.1-sol10-x86-local
libgcc-3.4.6-sol10-x86-local.gz:         71.7% -- replaced with libgcc-3.4.6-sol10-x86-local
libiconv-1.11-sol10-x86-local.gz:        36.8% -- replaced with libiconv-1.11-sol10-x86-local
openldap-2.4.11-sol10-x86-local.gz:      72.1% -- replaced with openldap-2.4.11-sol10-x86-local
openssl-0.9.8k-sol10-x86-local.gz:       71.3% -- replaced with openssl-0.9.8k-sol10-x86-local
sasl-2.1.21-sol10-x86-local.gz:  71.4% -- replaced with sasl-2.1.21-sol10-x86-local</pre>
<p>รัน pkgadd เพื่อติดตั้ง package ต่างๆ</p>
<p>หมายเหตุ ไม่จำเป็นต้องรัน pkgadd เพื่อติดตั้งไฟล์ตาม Dependencies</p>
<pre># <strong>pkgadd -d apache-2.2.11-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMCap2211     apache
                   (x86) 2.2.11</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCap2211&gt; from &lt;/usr/local/src/apache-2.2.11-sol10-x86-local&gt;</pre>
<pre>apache(x86) 2.2.11
The Apache Group
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing apache as &lt;SMCap2211&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/apache2/bin/ab
/usr/local/apache2/bin/apachectl
/usr/local/apache2/bin/apr-1-config
/usr/local/apache2/bin/apu-1-config
/usr/local/apache2/bin/apxs
/usr/local/apache2/bin/checkgid
/usr/local/apache2/bin/dbmmanage
/usr/local/apache2/bin/envvars
/usr/local/apache2/bin/envvars-std
/usr/local/apache2/bin/htcacheclean
/usr/local/apache2/bin/htdbm
/usr/local/apache2/bin/htdigest
/usr/local/apache2/bin/htpasswd
/usr/local/apache2/bin/httpd
...
...
...
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.ja.utf8
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.ko.euc-kr
/usr/local/doc/apache/docs/manual/vhosts/name-based.html.tr.utf8
/usr/local/doc/apache/httpd.spec
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCap2211&gt; was successful.</pre>
<pre># <strong>pkgadd -d expat-2.0.1-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMCexpat     expat
                  (x86) 2.0.1</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCexpat&gt; from &lt;/usr/local/src/expat-2.0.1-sol10-x86-local&gt;</pre>
<pre>expat(x86) 2.0.1
James Clark et al
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.</pre>
<pre>The following files are already installed on the system and are being
used by another package:
* /usr/local/bin &lt;attribute change only&gt;</pre>
<pre>* - conflict with a file which does not belong to any package.</pre>
<pre>Do you want to install these conflicting files [y,n,?,q] <strong>y
</strong>## Checking for setuid/setgid programs.</pre>
<pre>Installing expat as &lt;SMCexpat&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/bin/xmlwf
/usr/local/doc/expat/COPYING
/usr/local/doc/expat/Changes
/usr/local/doc/expat/MANIFEST
/usr/local/doc/expat/README
...
...
...
/usr/local/lib/libexpat.so.0 &lt;symbolic link&gt;
/usr/local/lib/libexpat.so.0.4.0
/usr/local/lib/libexpat.so.1 &lt;symbolic link&gt;
/usr/local/lib/libexpat.so.1.5.2
/usr/local/man/man1/xmlwf.1
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCexpat&gt; was successful.</pre>
<pre># <strong>pkgadd -d libiconv-1.11-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMCliconv     libiconv
                   (x86) 1.11</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCliconv&gt; from &lt;/usr/local/src/libiconv-1.11-sol10-x86-local&gt;</pre>
<pre>libiconv(x86) 1.11
Bruno Haible
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   6 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.</pre>
<pre>The following files are already installed on the system and are being
used by another package:
* /usr/local/share &lt;attribute change only&gt;
* /usr/local/share/doc &lt;attribute change only&gt;</pre>
<pre>* - conflict with a file which does not belong to any package.</pre>
<pre>Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.</pre>
<pre>Installing libiconv as &lt;SMCliconv&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/bin/iconv
/usr/local/doc/libiconv/ABOUT-NLS
/usr/local/doc/libiconv/AUTHORS
/usr/local/doc/libiconv/COPYING.LIB
/usr/local/doc/libiconv/ChangeLog
...
...
/usr/local/share/doc/iconv.1.html
/usr/local/share/doc/iconv.3.html
/usr/local/share/doc/iconv_close.3.html
/usr/local/share/doc/iconv_open.3.html
/usr/local/share/doc/iconvctl.3.html
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCliconv&gt; was successful.</pre>
<pre># <strong>pkgadd -d openssl-0.9.8k-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMCossl     openssl
                 (x86) 0.9.8k</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCossl&gt; from &lt;/usr/local/src/openssl-0.9.8k-sol10-x86-local&gt;</pre>
<pre>openssl(x86) 0.9.8k
The OpenSSL Group
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing openssl as &lt;SMCossl&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/doc/openssl/CHANGES
/usr/local/doc/openssl/CHANGES.SSLeay
/usr/local/doc/openssl/FAQ
/usr/local/doc/openssl/INSTALL
/usr/local/doc/openssl/INSTALL.DJGPP
...
...
...
/usr/local/ssl/misc/c_hash
/usr/local/ssl/misc/c_info
/usr/local/ssl/misc/c_issuer
/usr/local/ssl/misc/c_name
/usr/local/ssl/openssl.cnf
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCossl&gt; was successful.</pre>
<pre># <strong>pkgadd -d db-4.2.52.NC-sol10-intel-local</strong></pre>
<pre>The following packages are available:
  1  SMCdb     db
               (intel) 4.2.52.NC</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCdb&gt; from &lt;/usr/local/src/db-4.2.52.NC-sol10-intel-local&gt;</pre>
<pre>db(intel) 4.2.52.NC
Sleepycat Software
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing db as &lt;SMCdb&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/BerkeleyDB.4.2/bin/db_archive
/usr/local/BerkeleyDB.4.2/bin/db_checkpoint
/usr/local/BerkeleyDB.4.2/bin/db_deadlock
/usr/local/BerkeleyDB.4.2/bin/db_dump
/usr/local/BerkeleyDB.4.2/bin/db_load
...
...
...
/usr/local/BerkeleyDB.4.2/lib/libdb-4.2.la
/usr/local/BerkeleyDB.4.2/lib/libdb-4.2.so
/usr/local/BerkeleyDB.4.2/lib/libdb-4.so &lt;symbolic link&gt;
/usr/local/BerkeleyDB.4.2/lib/libdb.a
/usr/local/BerkeleyDB.4.2/lib/libdb.so &lt;symbolic link&gt;
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCdb&gt; was successful.</pre>
<pre># <strong>pkgadd -d libgcc-3.4.6-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMClgcc346     libgcc
                    (x86) 3.4.6</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMClgcc346&gt; from &lt;/usr/local/src/libgcc-3.4.6-sol10-x86-local&gt;</pre>
<pre>libgcc(x86) 3.4.6
FSF
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing libgcc as &lt;SMClgcc346&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/lib/libg2c.so &lt;symbolic link&gt;
/usr/local/lib/libg2c.so.0 &lt;symbolic link&gt;
/usr/local/lib/libg2c.so.0.0.0
/usr/local/lib/libgcc_s.so &lt;symbolic link&gt;
/usr/local/lib/libgcc_s.so.1
/usr/local/lib/libstdc++.so.6 &lt;symbolic link&gt;
/usr/local/lib/libstdc++.so.6.0.3
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMClgcc346&gt; was successful.</pre>
<pre># <strong>pkgadd -d openldap-2.4.11-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMColdap     openldap
                  (x86) 2.4.11</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMColdap&gt; from &lt;/usr/local/src/openldap-2.4.11-sol10-x86-local&gt;</pre>
<pre>openldap(x86) 2.4.11
The OpenLDAP Group
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   7 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing openldap as &lt;SMColdap&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/bin/ldapadd &lt;symbolic link&gt;
/usr/local/bin/ldapcompare
/usr/local/bin/ldapdelete
/usr/local/bin/ldapexop
/usr/local/bin/ldapmodify
...
...
...
/usr/local/var/openldap-data/__db.005
/usr/local/var/openldap-data/alock
/usr/local/var/openldap-data/dn2id.bdb
/usr/local/var/openldap-data/id2entry.bdb
/usr/local/var/openldap-data/log.0000000001
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMColdap&gt; was successful.</pre>
<pre># <strong>pkgadd -d sasl-2.1.21-sol10-x86-local</strong></pre>
<pre>The following packages are available:
  1  SMCsasl     sasl
                 (x86) 2.1.21</pre>
<pre>Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <strong>all</strong></pre>
<pre>Processing package instance &lt;SMCsasl&gt; from &lt;/usr/local/src/sasl-2.1.21-sol10-x86-local&gt;</pre>
<pre>sasl(x86) 2.1.21
The SASL Team
Using &lt;/usr/local&gt; as the package base directory.
## Processing package information.
## Processing system information.
   7 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.</pre>
<pre>Installing sasl as &lt;SMCsasl&gt;</pre>
<pre>## Installing part 1 of 1.
/usr/local/doc/sasl2/AUTHORS
/usr/local/doc/sasl2/COPYING
/usr/local/doc/sasl2/ChangeLog
/usr/local/doc/sasl2/INSTALL
/usr/local/doc/sasl2/NEWS
...
...
...
/usr/local/man/man8/sasldblistusers2.8
/usr/local/man/man8/saslpasswd2.8
/usr/local/sbin/saslauthd
/usr/local/sbin/sasldblistusers2
/usr/local/sbin/saslpasswd2
[ verifying class &lt;none&gt; ]</pre>
<pre>Installation of &lt;SMCsasl&gt; was successful.</pre>
<h4>ตรวจสอบ package ที่ติดตั้ง</h4>
<p>รันคำสั่ง pkginfo เพื่อตรวจสอบ package ที่ติดตั้ง ดูเฉพาะที่มีชื่อ SMC</p>
<pre># <strong>pkginfo | grep SMC
</strong>application SMCap2211                        apache
application SMCdb                            db
application SMCexpat                         expat
application SMClgcc346                       libgcc
application SMCliconv                        libiconv
application SMColdap                         openldap
application SMCossl                          openssl
application SMCsasl                          sasl
system      SUNWmgts                         Trusted Extensions, SMC
application SUNWtsmc                         Trusted Extensions SMC Server</pre>
<h4>รันเว็บเซิร์ฟเวอร์ apache</h4>
<p>ใช้คำสั่ง apachectl เพื่อรัน apache</p>
<pre># <strong>/usr/local/apache2/bin/apachectl start
</strong># <strong>ps -ef | grep apache
</strong>  daemon  1016  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1013  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1012  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1015  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
  daemon  1014  1011   0 22:13:43 ?           0:00 /usr/local/apache2/bin/httpd -k start
    root  1011     1   0 22:13:42 ?           0:00 /usr/local/apache2/bin/httpd -k start</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.sunfreeware.com/" target="_blank">Sunfreeware.com &#8211; Freeware for Solaris</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/05/install_sun_freeware_on_solaris/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ปิดโมดูลที่ไม่ใช้งานของ Apache เว็บเซิร์ฟเวอร์</title>
		<link>http://spalinux.com/2008/09/disable_unused_apache_modules</link>
		<comments>http://spalinux.com/2008/09/disable_unused_apache_modules#comments</comments>
		<pubDate>Mon, 29 Sep 2008 16:40:23 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=220</guid>
		<description><![CDATA[โดยดีฟอลต์คอนฟิกของ Apache เว็บเซิร์ฟเวอร์ที่ติดตั้งมากับลีนุกซ์เวอร์ชั่นต่างๆ จะเปิด (enable) การใช้งานโมดูลต่างๆ ทั้งหมด ทั้งนี้เพื่อสะดวกและง่ายต่อการเริ่มต้นใช้งาน แต่การใช้งานจริงๆ ในระบบ production แนะนำให้ปิด (disable) คอนฟิกของโมดูลที่ไม่ได้ใช้งาน ทั้งนี้เพื่อประโยชน์ทางด้านความปลอดภัย (security) และประหยัดหน่วยความจำ Memory ที่ต้องถูกใช้งานโดยเปล่าประโยชน์ด้วย (แนะนำให้ใช้คำสั่ง ps เปรียบเทียบขนาด memory ที่ใช้ก่อนและหลังการปิดโมดูล) บทความนี้ได้รวบรวมจัดกลุ่มโมดูลตามลักษณะการใช้งาน ซึ่งถ้าคุณไม่ได้ใช้คุณสมบัติในโมดูลนั้นๆ สามารถที่จะปิดได้ ด้วยการใส่เครื่องหมาย # หน้าบรรทัดของ LoadModule โดยคอนฟิกทั้งหมดจะเป็นตัวอย่างที่ทำบน Fedora 9 และหลังจากการแก้ไขทั้งหมดเพื่อปิดโมดูลทั้งหมดนี้แล้ว เว็บยังสามารถรัน PHP ได้ตามปกติ คำเตือน กรุณาทดสอบการเปลี่ยนแปลงคอนฟิกทุกอย่างให้แน่ใจว่า การปิดโมดูลไป จะไม่กระทบต่อการรันโปรแกรมที่ทำงานอยู่บนเว็บเซิร์ฟเวอร์ Apache Module: Authentication and Authorization โมดูลในกลุ่มนี้ถูกใช้เพื่อตรวจสอบผู้ใช้งาน (Authentication) และระบุสิทธิที่ผู้ใช้งานสามารถทำได้ (Authorization) ลักษณะการตรวจสอบคือจะมีหน้าต่าง popup ขึ้นมาให้ใส่ User [...]]]></description>
			<content:encoded><![CDATA[<p>โดยดีฟอลต์คอนฟิกของ Apache เว็บเซิร์ฟเวอร์ที่ติดตั้งมากับลีนุกซ์เวอร์ชั่นต่างๆ จะเปิด (enable) การใช้งานโมดูลต่างๆ ทั้งหมด ทั้งนี้เพื่อสะดวกและง่ายต่อการเริ่มต้นใช้งาน</p>
<p>แต่การใช้งานจริงๆ ในระบบ production แนะนำให้ปิด (disable) คอนฟิกของโมดูลที่ไม่ได้ใช้งาน ทั้งนี้เพื่อประโยชน์ทางด้านความปลอดภัย (security) และประหยัดหน่วยความจำ Memory ที่ต้องถูกใช้งานโดยเปล่าประโยชน์ด้วย (แนะนำให้ใช้คำสั่ง ps เปรียบเทียบขนาด memory ที่ใช้ก่อนและหลังการปิดโมดูล)</p>
<p>บทความนี้ได้รวบรวมจัดกลุ่มโมดูลตามลักษณะการใช้งาน ซึ่งถ้าคุณไม่ได้ใช้คุณสมบัติในโมดูลนั้นๆ สามารถที่จะปิดได้ ด้วยการใส่เครื่องหมาย # หน้าบรรทัดของ LoadModule โดยคอนฟิกทั้งหมดจะเป็นตัวอย่างที่ทำบน Fedora 9 และหลังจากการแก้ไขทั้งหมดเพื่อปิดโมดูลทั้งหมดนี้แล้ว เว็บยังสามารถรัน PHP ได้ตามปกติ</p>
<p><span id="more-220"></span></p>
<p>คำเตือน  กรุณาทดสอบการเปลี่ยนแปลงคอนฟิกทุกอย่างให้แน่ใจว่า การปิดโมดูลไป จะไม่กระทบต่อการรันโปรแกรมที่ทำงานอยู่บนเว็บเซิร์ฟเวอร์</p>
<hr />
<h4>Apache Module: Authentication and Authorization</h4>
<p>โมดูลในกลุ่มนี้ถูกใช้เพื่อตรวจสอบผู้ใช้งาน (Authentication) และระบุสิทธิที่ผู้ใช้งานสามารถทำได้ (Authorization)  ลักษณะการตรวจสอบคือจะมีหน้าต่าง popup ขึ้นมาให้ใส่ User name และ Password  แล้วส่งข้อมูลนี้ตรวจสอบกับไฟล์ที่เก็บรหัสผู้ใช้งาน ว่าถูกต้องหรือไม่</p>
<p>ตัวอย่างไฟล์คอนฟิก .htaccess และไฟล์ .htpasswd เพื่อระบุว่า ก่อนที่จะเข้าดูเว็บไซต์นี้ได้ ต้องใส่ User name และ Password ให้ถูกต้องก่อน โดยตรวจสอบข้อมูลรหัสผ่านที่อยู่ในไฟล์ /var/www/html/.htpasswd</p>
<pre>[root@web-server html]# <strong>cat .htaccess</strong>
AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/html/.htpasswd
Require valid-user</pre>
<pre>[root@web-server html]# <strong>cat .htpasswd
</strong>john:&lt;password&gt;</pre>
<p>การตรวจสอบสิทธิผู้ใช้งานแบบนี้ เป็นคุณสมบัติของโมดูลหนี่งของ Apache ไม่เกี่ยวข้องกับการเขียนโปรแกรมเว็บเอง เช่น PHP แล้วใช้ SESSION ในการตรวจสอบ</p>
<p>ถ้าเว็บเซิร์ฟเวอร์ไม่มีการใช้การตรวจสอบสิทธิแบบนี้ สามารถปิดคอนฟิกของโมดูลในบรรทัดต่อไปนี้ได้</p>
<p>ตัวอย่างการปิดโมดูล Authentication and Authorization</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf/httpd.conf
</strong>...
#LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_default_module modules/mod_authn_default.so
<span style="color: #3366ff;">LoadModule authz_host_module modules/mod_authz_host.so
</span>#LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
...</pre>
<p><strong>ข้อควรระวัง</strong> โมดูล <strong>authz_host_module</strong> จะเป็นการตรวจสอบสิทธิโดยสามารถระบุเป็น ip address หรือ host name ในไฟล์คอนฟิก httpd.conf จะมีการเรียกใช้คอนฟิกของโมดลูนี้หลายที่  ไม่แนะนำให้ปิด</p>
<hr />
<h4>Apache Module: Dynamic Content with CGI</h4>
<p>หากไม่มีโปรแกรมที่เป็น CGI รันอยู่บนเว็บเซิร์ฟเวอร์ สามารถที่จะปิดโมดูล cgi_module ได้ (การปิดโมดูลนี้ไม่กระทบกับเว็บที่เขียนเป็น PHP)</p>
<p>ตัวอย่างการปิดโมดูล cgi_module</p>
<pre>[root@web-server ~]# <strong>/etc/httpd/conf/httpd.conf
</strong>...
#LoadModule cgi_module modules/mod_cgi.so
...</pre>
<hr />
<h4>Apache Module: Server Side Includes (SSI)</h4>
<p>หากไม่มีโปรแกรมที่เป็น Sever Side Includes หรือ SSI รันอยู่บนเว็บเซิร์ฟเวอร์ สามารถที่จะปิดโมดูล include_module ได้ (การปิดโมดูลนี้ไม่กระทบกับเว็บที่เขียนเป็น PHP)</p>
<p>ตัวอย่างการปิดโมดูล include_module</p>
<pre>[root@web-server ~]# <strong>/etc/httpd/conf/httpd.conf
</strong>...
#LoadModule include_module modules/mod_include.so
...</pre>
<hr />
<h4>Apache Module: Apache Proxy Server</h4>
<p>นอกจากจะสามารถรันเป็นเว็บเซิร์ฟเวอร์ได้แล้ว โปรแกรม Apache ยังสามารถทำหน้าที่เป็น Proxy Server ได้อีกด้วย เช่นเดียวกับ Squid ถ้าเครื่องทำหน้าที่เป็นเว็บเซิร์ฟเวอร์อย่างเดียว คุณสามารถปิดโมดูลนี้ได้ ใน Fedora 9 การปิดโมดูล Proxy ของ Apache ต้องแก้ไขสองไฟล์คือในไฟล์ /etc/httpd/conf/httpd.conf และไฟล์ /etc/httpd/conf.d/proxy_ajp.conf</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf/httpd.conf
</strong>...
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
...</pre>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf.d/proxy_ajp.conf</strong></pre>
<pre>LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
...</pre>
<hr />
<h4>Apache Module: Distributed Authoring and Versioning (WebDAV)</h4>
<p>หากไม่ได้ใช้คุณสมบัติของโมดูล WebDAV นี้ สามารถแก้ไขไฟล์ได้ดังนี้</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf/httpd.conf
</strong>...
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
...</pre>
<hr />
<h4>Apache Module: Server Status</h4>
<p>โมดูลนี้มีทั้งข้อดีข้อเสีย ข้อดีคือสามารถดูสถานะโดยละเอียดของเว็บเซิร์ฟเวอร์ได้ ในกรณีที่เครื่องช้า แต่ข้อเสียคืออาจเป็นปัญหาทางด้านความปลอดภัยของเครื่องได้ คอนฟิกโดยดีฟอลต์จะอนุญาตให้ดูได้จาก localhost หรือเครื่องที่รันเว็บอยู่เท่านั้น แต่ถ้าเครื่องของคุณทดสอบแล้วทำงานได้ตามปกติ สามารถจะปิดโมดูลนี้ได้</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf/httpd.conf</strong>
...
#LoadModule status_module modules/mod_status.so
#LoadModule info_module modules/mod_info.so
...</pre>
<hr />
<h4>Apache Module: mod_perl</h4>
<p>หากไม่มีเว็บโปรแกรมที่เขียนเป็น mod_perl รันอยู่บนเว็บเซิร์ฟเวอร์ สามารถที่จะปิดโมดูล mod_perl ได้ (การปิดโมดูลนี้ไม่กระทบกับเว็บที่เขียนเป็น PHP)</p>
<p>ตัวอย่างการปิดโมดูล mod_perl</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf.d/perl.conf</strong>
...
LoadModule perl_module modules/mod_perl.so
...</pre>
<hr />
<h4>Apache Module: mod_python</h4>
<p>หากไม่มีเว็บโปรแกรมที่เขียนเป็น mod_python รันอยู่บนเว็บเซิร์ฟเวอร์ สามารถที่จะปิดโมดูล mod_python ได้ (การปิดโมดูลนี้ไม่กระทบกับเว็บที่เขียนเป็น PHP)</p>
<p>ตัวอย่างการปิดโมดูล mod_python</p>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf.d/python.conf
</strong>...
#LoadModule python_module modules/mod_python.so</pre>
<pre># Override type-map handler for /var/www/manual
#&lt;Directory "/var/www/manual/mod/mod_python"&gt;
#    &lt;Files *.html&gt;
#        SetHandler default-handler
#    &lt;/Files&gt;
#&lt;/Directory&gt;
...</pre>
<hr />
<h4>Apache Module: Others</h4>
<p>โมดูลอื่นๆ ที่น่าจะปิดคือ</p>
<ul>
<li>speling_module – แก้ไข url ที่พิมพ์ผิด</li>
<li>
<pre>userdir_module – อนุญาตผู้ที่มีแอคเคานต์อยู่บนเซิร์ฟเวอร์สามารถมีเว็บส่วนตัวได้</pre>
</li>
</ul>
<pre>[root@web-server ~]# <strong>cat /etc/httpd/conf/httpd.conf
</strong>...
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
...</pre>
<hr />
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://httpd.apache.org/docs/2.2/mod/" target="_blank">Module Index &#8211; Apache HTTP Server</a></li>
<li><a href="http://spalinux.com/2008/09/basic_tuning_apache_web_server">ปรับแต่งคอนฟิกพื้นฐานของ Apache เว็บเซิร์ฟเวอร์</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/09/disable_unused_apache_modules/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ปรับแต่งคอนฟิกพื้นฐานของ Apache เว็บเซิร์ฟเวอร์</title>
		<link>http://spalinux.com/2008/09/basic_tuning_apache_web_server</link>
		<comments>http://spalinux.com/2008/09/basic_tuning_apache_web_server#comments</comments>
		<pubDate>Sun, 28 Sep 2008 16:49:04 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=211</guid>
		<description><![CDATA[บทความนี้ขอแนะนำการปรับแต่งคอนฟิกพื้นฐานของ Apache ซึ่งติดตั้งมากับ Fedora 9 ทำให้เว็บเซิร์ฟเวอร์ทำงานอย่างมีประสิทธิภาพ โดยการปิดคุณสมบัติที่ไม่ได้ใช้งานออกไป เพื่อประหยัดขนาด CPU, Memory ที่ต้องใช้ในการรันโปรแกรม การแก้ไขทั้งหมดในบทความนี้เป็นการแก้ไขคอนฟิกในไฟล์ /etc/httpd/conf/httpd.conf ซึ่งจะเป็นไฟล์คอนฟิกหลักของ Apache เว็บเซิร์ฟเวอร์ คำเตือน กรุณาทดสอบการแก้ไขคอนฟิกในเครื่องทดลองก่อนที่จะนำไปใช้กับเว็บเซิร์ฟเวอร์จริงๆ แนะนำให้สำรองไฟล์ (backup) ก่อนที่จะแก้ไขคอนฟิก ตรวจสอบความถูกต้องของรูปแบบไฟล์ httpd.conf เมื่อแก้ไขไฟล์ httpd.conf เสร็จสิ้น ให้ใช้คำสั่ง httpd –t เพื่อตรวจสอบรูปแบบ (syntax) ของไฟล์ก่อนว่าถูกต้องหรือไม่ ผลลัพธ์จากการรันคำสั่งต้องขึ้นว่า Syntax OK ก่อนที่จะ restart เซอร์วิสใหม่อีกครั้งเพื่อให้คอนฟิกที่แก้ไขมีผล ตัวอย่างการใช้คำสั่ง httpd –t เพื่อตรวจสอบ syntax ของไฟล์ httpd.conf [root@web-server ~]# httpd -t Syntax OK ตัวอย่างผลลัพธ์การตรวจสอบในกรณีที่รูปแบบ syntax ของไฟล์ httpd.conf [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้ขอแนะนำการปรับแต่งคอนฟิกพื้นฐานของ Apache ซึ่งติดตั้งมากับ Fedora 9 ทำให้เว็บเซิร์ฟเวอร์ทำงานอย่างมีประสิทธิภาพ โดยการปิดคุณสมบัติที่ไม่ได้ใช้งานออกไป เพื่อประหยัดขนาด CPU, Memory ที่ต้องใช้ในการรันโปรแกรม</p>
<p>การแก้ไขทั้งหมดในบทความนี้เป็นการแก้ไขคอนฟิกในไฟล์ /etc/httpd/conf/httpd.conf ซึ่งจะเป็นไฟล์คอนฟิกหลักของ Apache เว็บเซิร์ฟเวอร์</p>
<p><span id="more-211"></span></p>
<p><span style="color: #ff6600;"><strong>คำเตือน</strong></span></p>
<ul>
<li><span style="color: #ff6600;"><strong>กรุณาทดสอบการแก้ไขคอนฟิกในเครื่องทดลองก่อนที่จะนำไปใช้กับเว็บเซิร์ฟเวอร์จริงๆ </strong></span></li>
<li><span style="color: #ff6600;"><strong>แนะนำให้สำรองไฟล์ (backup) ก่อนที่จะแก้ไขคอนฟิก</strong></span></li>
</ul>
<h4>ตรวจสอบความถูกต้องของรูปแบบไฟล์ httpd.conf</h4>
<p>เมื่อแก้ไขไฟล์ httpd.conf เสร็จสิ้น ให้ใช้คำสั่ง httpd –t เพื่อตรวจสอบรูปแบบ (syntax) ของไฟล์ก่อนว่าถูกต้องหรือไม่ ผลลัพธ์จากการรันคำสั่งต้องขึ้นว่า Syntax OK ก่อนที่จะ restart เซอร์วิสใหม่อีกครั้งเพื่อให้คอนฟิกที่แก้ไขมีผล</p>
<p>ตัวอย่างการใช้คำสั่ง httpd –t เพื่อตรวจสอบ syntax ของไฟล์ httpd.conf</p>
<pre>[root@web-server ~]# <strong>httpd -t
</strong>Syntax OK</pre>
<p>ตัวอย่างผลลัพธ์การตรวจสอบในกรณีที่รูปแบบ syntax ของไฟล์ httpd.conf ไม่ถูกต้อง</p>
<pre>[root@web-server ~]# <strong>httpd -t
</strong>Syntax error on line 44 of /etc/httpd/conf/httpd.conf:
Invalid command 'ServerToken', perhaps misspelled or defined by a module not included in the server configuration</pre>
<p>ผลลัพธ์จะฟ้องว่าผิดตรงไหนในไฟล์คอนฟิก พร้อมทั้งคำแนะนำในการแก้ไข ซึ่งต้องแก้ไขจนกว่าจะได้ผลลัพธ์ &#8220;Syntax OK&#8221; แล้วค่อยใช้คำสั่ง service เพื่อทำการ restart เว็บเซิร์ฟเวอร์</p>
<hr />
<h4>ServerTokens OS</h4>
<p>ServerTokens จะเป็นคอนฟิกที่ใช้ควบคุมการส่งข้อมูลของ Server: ใน HTTP Header กลับไปยังเว็บไคลเอนต์ เพื่ออธิบายถึงโปรแกรมที่ใช้รันเป็นเว็บเซิร์ฟเวอร์ และรายละเอียดเพิ่มเติม</p>
<p>แนะนำให้เปลี่ยนคอนฟิกจาก OS เป็น Prod เพื่อลดรายละเอียดของโปรแกรมที่ใช้ ด้วยเหตุผลทางด้านความปลอดภัยของตัวเซิร์ฟเวอร์เอง</p>
<p><strong>ดีฟอลต์จากการติดตั้ง Fedora 9</strong></p>
<pre>ServerTokens OS</pre>
<p>ข้อมูล Server: ใน HTTP Header ที่ส่งกลับไปยังไคลเอนต์จะมีทั้งชื่อโปรแกม เวอร์ชั่น และระบบปฏิบัติการที่ใช้ เช่น Apache/2.2.8 (Fedora)</p>
<p><strong>คำแนะนำ</strong></p>
<pre>ServerTokens Prod</pre>
<p>ข้อมูล Server: ใน HTTP Header จะส่งแค่คำว่า Apache</p>
<hr />
<h4>ServerSignature On</h4>
<p>คอนฟิก ServerSignature จะควบคุมการแสดงข้อมูลของเว็บเซิร์ฟเวอร์ในหน้าเว็บเพจที่เปิดแล้วมีปัญหา เช่น Apache Server at 10.3.3.91 Port 80</p>
<p>แนะนำให้เปลี่ยนจาก On เป็น Off เพื่อปิดการแสดงข้อมูล</p>
<p><strong>ดีฟอลต์จากการติดตั้ง Fedora 9</strong></p>
<pre>ServerSignature On</pre>
<p><strong>คำแนะนำ</strong></p>
<pre>ServerSignature Off</pre>
<hr />
<h4>ปิดการใช้คุณสมบัติ Indexes</h4>
<p>ดีฟอลต์คอนฟิกที่ติดตั้งมากับ Fedora นั้น จะเปิดการใช้ Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรี่ ที่ไม่มีไฟล์ index.html</p>
<p><strong>ดีฟอลต์จากการติดตั้ง Fedora 9</strong></p>
<pre>&lt;Directory "/var/www/html"&gt;
    Options <strong>Indexes</strong> FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
&lt;/Directory&gt;</pre>
<p><strong>คำแนะนำ</strong></p>
<p>ปิดการใช้งาน Indexes โดยลบออกจากบรรทัด Options ในคอนฟิก Directory ต่างๆ</p>
<pre>&lt;Directory "/var/www/html"&gt;
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
&lt;/Directory&gt;</pre>
<hr />
<h4>ปิดคอนฟิกการแสดงรูป icons</h4>
<p>หลังจากการปิดการใช้งาน Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรีที่ไม่มีไฟล์ index.html เราสามารถปิดคอนฟิก icons ในบรรทัดต่อไปนี้ในไฟล์ได้ วิธีการปิดที่แนะนำคือใส่เครื่องหมาย # ไว้ด้านหน้า</p>
<p>ตัวอย่างการปิดคอนฟิก icons ในไฟล์ httpd.conf ด้วยการใส่เครื่องหมาย #</p>
<pre>#Alias /icons/ "/var/www/icons/"</pre>
<pre>#&lt;Directory "/var/www/icons"&gt;
#   Options Indexes MultiViews FollowSymLinks
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#&lt;/Directory&gt;</pre>
<pre>#IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable</pre>
<pre>#AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip</pre>
<pre>#AddIconByType (TXT,/icons/text.gif) text/*
#AddIconByType (IMG,/icons/image2.gif) image/*
#AddIconByType (SND,/icons/sound2.gif) audio/*
#AddIconByType (VID,/icons/movie.gif) video/*</pre>
<pre>#AddIcon /icons/binary.gif .bin .exe
#AddIcon /icons/binhex.gif .hqx
#AddIcon /icons/tar.gif .tar
#AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
#AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
#AddIcon /icons/a.gif .ps .ai .eps
#AddIcon /icons/layout.gif .html .shtml .htm .pdf
#AddIcon /icons/text.gif .txt
#AddIcon /icons/c.gif .c
#AddIcon /icons/p.gif .pl .py
#AddIcon /icons/f.gif .for
#AddIcon /icons/dvi.gif .dvi
#AddIcon /icons/uuencoded.gif .uu
#AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
#AddIcon /icons/tex.gif .tex
#AddIcon /icons/bomb.gif core</pre>
<pre>#AddIcon /icons/back.gif ..
#AddIcon /icons/hand.right.gif README
#AddIcon /icons/folder.gif ^^DIRECTORY^^
#AddIcon /icons/blank.gif ^^BLANKICON^^</pre>
<pre>#DefaultIcon /icons/unknown.gif</pre>
<pre>#ReadmeName README.html
#HeaderName HEADER.html</pre>
<pre>#IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t</pre>
<hr />
<h4>ปิดการใช้งาน CGI (ในกรณีที่ไม่ใช้งาน)</h4>
<p>หากเว็บเซิร์ฟเวอร์ไม่มีการใช้งาน CGI แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้</p>
<p>ตัวอย่างการปิดการใช้งาน CGI โดยการใส่เครื่องหมาย # นำหน้าบรรทัด</p>
<pre>#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"</pre>
<pre>#&lt;Directory "/var/www/cgi-bin"&gt;
#    AllowOverride None
#    Options None
#    Order allow,deny
#    Allow from all
#&lt;/Directory&gt;</pre>
<hr />
<h4>ปิดการใช้งาน Server-Side Includes (SSI)</h4>
<p>หากไม่มีการใช้งาน Sever-Side Includes (SSI) แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้</p>
<p>ตัวอย่างการปิดการใช้งาน Server-Side Includes (SSI) โดยการใส่เครื่องหมาย # นำหน้าบรรทัด</p>
<pre>#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/09/basic_tuning_apache_web_server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ตรวจสอบเวอร์ชั่นของเว็บเซิร์ฟเวอร์ด้วยคำสั่ง telnet</title>
		<link>http://spalinux.com/2008/09/checking_web_server_version_by_telnet</link>
		<comments>http://spalinux.com/2008/09/checking_web_server_version_by_telnet#comments</comments>
		<pubDate>Sun, 28 Sep 2008 09:33:46 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Utility]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=209</guid>
		<description><![CDATA[เราสามารถใช้คำสั่ง telnet ตรวจสอบเวอร์ชั่นของเว็บเซิร์ฟเวอร์ที่รันอยู่บนเครื่องอื่นได้  ซึ่งเป็นข้อมูลส่วนหนึ่งของ HTTP Header ที่ส่งจากเซิร์ฟเวอร์กลับไปยังไคลเอนต์ วิธีการคือใช้คำสั่ง telnet ตามด้วยชื่อเว็บเซิร์ฟเวอร์ที่ต้องการตรวจสอบ ลงท้ายด้วยตัวเลข 80 ซึ่งเป็นพอร์ตที่รันโดยดีฟอลต์เป็นเว็บเซิร์ฟเวอร์ เมื่ออยู่ในคำสั่ง telnet ต้องกดปุ่ม [ Enter ] หนึ่งครั้งเพื่อขึ้นบรรทัดใหม่ พิมพ์ HEAD / HTTP/1.1 แล้วกดปุ่ม [ Enter ] อีกสองครั้ง ถ้าพิมพ์ถูกต้องข้อมูลของเว็บเซิร์ฟเวอร์จะแสดงผลออกมา สามารถดูเวอร์ชั่นที่ใช้จากบรรทัดที่ขึ้นต้นด้วยคำว่า Server ตัวอย่างการใช้คำสั่ง telnet เพื่อตรวจสอบเวอร์ชั่นของเว็บเซิร์ฟเวอร์ที่ติดตั้งมากลับ Fedora 9 [user@client ~]$ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. HEAD / HTTP/1.1 HTTP/1.1 [...]]]></description>
			<content:encoded><![CDATA[<p>เราสามารถใช้คำสั่ง telnet ตรวจสอบเวอร์ชั่นของเว็บเซิร์ฟเวอร์ที่รันอยู่บนเครื่องอื่นได้  ซึ่งเป็นข้อมูลส่วนหนึ่งของ HTTP Header ที่ส่งจากเซิร์ฟเวอร์กลับไปยังไคลเอนต์</p>
<p>วิธีการคือใช้คำสั่ง telnet ตามด้วยชื่อเว็บเซิร์ฟเวอร์ที่ต้องการตรวจสอบ ลงท้ายด้วยตัวเลข 80 ซึ่งเป็นพอร์ตที่รันโดยดีฟอลต์เป็นเว็บเซิร์ฟเวอร์</p>
<p><span id="more-209"></span></p>
<p>เมื่ออยู่ในคำสั่ง telnet ต้องกดปุ่ม [ Enter ] หนึ่งครั้งเพื่อขึ้นบรรทัดใหม่ พิมพ์ HEAD / HTTP/1.1 แล้วกดปุ่ม [ Enter ] อีกสองครั้ง ถ้าพิมพ์ถูกต้องข้อมูลของเว็บเซิร์ฟเวอร์จะแสดงผลออกมา สามารถดูเวอร์ชั่นที่ใช้จากบรรทัดที่ขึ้นต้นด้วยคำว่า Server</p>
<p>ตัวอย่างการใช้คำสั่ง telnet เพื่อตรวจสอบเวอร์ชั่นของเว็บเซิร์ฟเวอร์ที่ติดตั้งมากลับ Fedora 9</p>
<pre>[user@client ~]$ <strong>telnet localhost 80
</strong>Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.</pre>
<pre><strong>HEAD / HTTP/1.1</strong></pre>
<pre>HTTP/1.1 400 Bad Request
Date: Sun, 28 Sep 2008 08:34:51 GMT
<span style="color: #0000ff;">Server: Apache/2.2.8 (Fedora)
</span>Connection: close
Content-Type: text/html; charset=iso-8859-1</pre>
<pre>Connection closed by foreign host.</pre>
<p>ตัวอย่างข้อมูลเว็บเซิร์ฟเวอร์ที่ google.com ใช้</p>
<pre>[user@client ~]$ <strong>telnet www.google.com 80
</strong>Trying 72.14.235.147...
Connected to www.google.com.
Escape character is '^]'.</pre>
<pre><strong>HEAD / HTTP/1.1</strong></pre>
<pre>HTTP/1.1 302 Found
Location: http://www.google.co.th/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=e69...; expires=Tue, 28-Sep-2010 09:26:21 GMT; path=/; domain=.google.com
Date: Sun, 28 Sep 2008 09:26:21 GMT
<span style="color: #0000ff;">Server: gws</span>
Content-Length: 221</pre>
<pre>Connection closed by foreign host.</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/09/checking_web_server_version_by_telnet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
