Thursday, June 16, 2011
FreeBSD: ports -->Zope
เรื่องที่ว่า ก็ เรื่องของ zope ที่เอามาเขียนรายงาน โดยไม่ต้องใช้ กระดาษเขียนรายงาน ให้สมกับทีุ่คยอวดศักดา อวดชาวบ้าน หรือโกหกชาวบ้านนั่นแหละ ว่า เป็น paperless office ทั้งที่โดยแท้จริงแล้ว รายงานที ก็ มีกระดาษาให้ซาเล้งได้ตัง เอากระดาษไปขายที
แต่จะว่าโกหก ก็คงไม่เต็มคำ ขอถอนข้อความน่ะ เพราะ paperless คือหมายถึง กระดาษน้อย ก็ได้ เน้าะจิ๋มเน้าะ
มะไฟ ลง zope จาก ports ใน category www ลงแล้ว มันยังทะแม่งๆ เวลาพูดกับพี่ ว.ณ. สุราฯ ที ก็ต้อง ปรับสมองหลายๆที เพราะพี่เขาเล่นลงเอาเอง ไม่ได้ใช้ ports แต่อย่างไร ที่สำคัญ พี่เขาใช้ OpenBSD เอาซะอีก
วิธีก็ไปอ่าน Makefile ในนั้น ใน /usr/ports/www/zope/Makefile แล้วดูว่า ทำไมลงแล้วมันต้องไปอยู่ที่ /usr/local/www/zope และชื่อผู้ใช้ ทำไมมันต้องเป็น www และ ...ฯลฯ
ก็ได้ดวงตาเห็นธรรมขึ้นมาทันควัน
/usr/local นั่นคือค่า --prefix ที่ FreeBSD ports ใช้ ดังนั้น หากอยากให้ลงที่ /home/motorc สมมติน่ะ ก็กำหนดให้ค่า --prefix=/home/motorc ไป ค่าอื่นๆ ก็เช่นกัน
สรุปสำหรับ zope ที่ลง ให้กำหนดค่าต่างต่างดังนี้ , อ้อ ท่านต้องเป็น root น่ะระหว่างที่ลง
# setenv ZOPE_USER motorc
# setenv WEBBASEDIR Live
# setenv SZOPEBASEDIR ${WEBBASEDIR}/MIK
# setenv INSTANCENAME Jotawski
# setenv PREFIX /home/motorc/Zope
จากนั้น เมื่อจะลงก็เพียงแค่สั่ง
# cd /usr/ports/www/zope
# make
# make install
# make instance
แล้วก็ แก้ไขแฟ้มต่างๆ ที่เขาแนะนำในตอนท้ายของแต่ละช่วงๆนั้นๆไป
ที่สำคัญ คือท่านต้องเพิ่ม user ที่ชื่อ motorc ลงไปในระบบด้วย ท่านจะกำหนดเป็นอย่างอื่นก็ได้ ไม่ต้องแปลกใจหรอก motorc ก็มาจาก มอเตอร์ไซด์รับจ้างนั่นแหละ ที่วิ่งหน้าหมู่บ้าน หรือ หน้าปากซอย ทุกซอยนั่นแหละ วินปากซอย หรือ เรียกสั้นๆว่า วิน ซึ่งพ้องเสียงกับ windows นั่นแหละ ไม่ได้มีความหมายอะไรมาก
และเมื่อแก้ไขแฟ้มทุกแฟ้มแล้ว อย่าลืม เปลี่ยน owner ให้เป็น motorc ทุกแฟ้มที่ได้ลงไปนั้นด้วย ดังนี้
# chown -R motorc:motorc /home/motorc/Zope/
อนึ่ง ถ้าหากประสงค์ที่จะลง startup script เอาไว้ให้มันวิ่งเองทุกครั้งที่เปิดเครื่อง ก็พอเดาออกน่ะว่า จะเอาแฟ้มพวกนั้น จากตรงไหน ไปไว้ที่ /usr/local/etc/rc.d/
ครับ ใช่เลย เอาจาก /home/motorc/Zope/etc/rc.d ไป เพราะปกติ แฟ้มพวกนี้ จะอยู่ที่ /usr/local/etc/rc.d เมื่อเรากำหนด PREFIX=/home/motorc/Zope แล้วแฟ้มพวกนั้น ก็ต้องอยู่ใน etc/rc.d เมื่อเทียบกับ PREFIX นั่นเอง
ขอให้โชคดีทุกท่าน ในวันพระนี้
Thursday, August 6, 2009
ไกลปืนเที่ยง: FreeBSD ---> command(3) (ต่อ)
mkdir
อันคำสั่งนี้ ที่ยกมานำเสนอ เป็นที่รู้จักคุ้นเคยกันดีอยู่แล้ว แต่ ที่ใคร่จะชี้ให้เห็นในคราวนี้ ก็เปน command options ต่างๆที่อาจจะแปลก ใหม่ สำหรับบางท่านเท่านั้น
คำสั่งนี้ จะ สร้าง สาระบบแฟ้ม ที่มีชื่อตามระบุไว้ตามลำดับไป ด้วย permission 'rwxrwxrwx' ที่จะถูกปรับแต่งทีหลังด้วยค่าของ umask ในกรณีที่ไม่กำหนด permission ให้กับคำสั่ง อนึ่ง ผู้ใช้ ต้องมี write permission ใน parent directory เพื่อใช้งานคำสั่งนี้
path สำหรับคำสั่ง ในกรณีที่ท่านต้องเรียกใช้งานจาก shell คือ /bin/mkdir
ไวยากรณ์คำสั่งคือ
ที่ใคร่ขออนุญาตชี้แนะ ในกรณีนี้ คือ command option -p ซึ่งอนุญาตให้เราสร้าง directory ได้จาก ส่วนประกอบ ที่ แม้จะยังไม่ได้สร้างขึ้นมา ตัวอย่างเช่น ~/public_html/erp/config ซึ่งโดยปกติแล้ว การที่จะสร้าง config มาได้นั้น ต้องมี ~/public_html และ ~/pubcli_html/erp มาก่อน แต่กับ option นี้ สามารถ สร้างได้เลยในคราวเดียว แม้ส่วนที่ยังไม่สร้าง ก็จะสร้างให้ด้วย
command option -m mode นั้น ก็ไม่ยากแก่การคาดเดา เป็นการกำหนด permission mode แรกเริ่มให้ แทนที่จะใช้ 0755 ตามที่ระบบกำหนดให้เท่านั้นเอง
ไหนไหนก็ไหนไหน, ภาษาอังกฤษจากเพื่อนๆเธอบอกว่า แวแวอีส เอะ แวแว ก็มาจาก where where is a where where ตรงๆแหละ, ก็บอกแล้ว คำสั่งที่ตรงข้ามก็ได้แก่ rmdir(1) และคู่ ของคำสั่งนี้ก็คือ chdir(1)
ในการใช้งาน FreeBSD นั้น พี่พี่ท่าน สมควรได้ สัมผัส กับคำสั่งนี้ และ คู่ ของเขาอยู่มากกว่า ก็ขอยกมาให้ทราบไว้ก่อน รับรอง แค่การเตรียมการ ก่อนการใช้งาน GRASS ก็ได้ใช้แล้ว
อีก ๒ คำสั่ง ที่สมควรรับทราบไว้ ได้แก่ chmod(1) เอาไว้เปลี่ยน permission mode กับ chown(1) เอาไว้เปลี่ยนเจ้าของ เปลี่ยนกลุ่ม
แหม ซีงิต จริง ทำได้ยังงี้ก็ ...
มะไฟ เล็งเห็นแล้วว่า คำสั่งในชุดแรกที่ยกมานั้น ต้องได้ใช้งานแน่แน่ จึงคัดสรรค์มาเป็นพิเศษ มานำเสนอก่อนอื่น ต่อไป จะเป็นเรื่องที่เกี่ยวข้องกับ FreeBSD จริงๆซะที
Sunday, March 1, 2009
ไกลปืนเที่ยง : FreeBSD --> disk partition
เกี่ยวกับกรณีนี้, disk partition, สำหรับมือใหม่ อาจจะนึกไม่ถึงว่า จำเป็นต้องมีด้วยรึ เพราะเห็นว่า ลงทีไรก็มีครบทุกส่วน มาให้ทุกที อันนี้ ขอยืนยันไว้ตรงนี้เลยครับว่า เท่าที่จะแนะนำต่อไปนี้ ต้องมีครับ ต้องมี
ที่ท่านเจอไปทุกทีนั้น เขาก็สร้างมาให้ ให้ครบไปทุกทีแหละครับ ขอยืนยันอีกทีละกัน ซึ่งทั้งหมดที่ว่า เท่าที่จำเป็นต้องมีนั้น ก็คือ
Filesystem partition file type Mounted point
/dev/ad0s1a a FS /
/dev/ad0s1b b swap
/dev/ad0s1d d FS /var
/dev/ad0s1e e FS /usr
/dev/ad0s1f f FS /home
กล่าวโดยรวมก็คือ ท่านต้องมี file system สำหรับ /var, /usr, /home และแน่นอนที่สุดว่า root file system กับ swap area ต้องมีในกรณีที่เป็น hard disk ก้อนแรก
ตัวอย่างที่ยกมานี้ เป็น hard disk ก้อนแรกก้อนเดียว แต่ถ้าท่านสามารถมี hard disk ได้หลายก้อน ท่านอาจจะจัดที่ให้กับวา, /var, หรือโอม, /home, เป็นพิเศษ ก็ได้ ไม่แปลก
สำหรับขนาดนั้น ก็ขึ้นอยู่กับงาน
เรื่องเคยมีมาแล้ว ผู้รู้จักท่านหนึ่ง เขาลง MySQL โดยนำ tarred ball มาระเบิดเอง แล้วมีปัญหา ผมเข้าไปแนะนำให้ลงจาก ports เพราะง่ายกว่า ก็ลงได้ ผ่านแบบไม่มีปัญหา แต่กลับไม่สามารถ start mysqlserver ได้ สาเหตุก็คือ
- ผู้ที่เป็นเจ้าของโปรแกรม mysql ไม่ใช่ mysql และไม่ได้อยู่ในกรุ้ปของ mysql
- เนื้อที่สำหรับวา, /var, มีไม่พอ เพราะไม่ได้เตรียมไว้ให้สำหรับวา
ที่ผมมั่นใจว่าท่านนั้นไม่ได้เตรียมที่ไว้ สำหรับวา ก็เพราะ ท่านนั้นรายงานว่า สั่งวิ่งทีไร มันเจอ ไฟซีสเต็มฟูล ไปซะทุกที ก็จะไม่ให้มัน เต็ม ได้อย่างไรกันเล่า ในเมื่อ ไม่ได้จัดที่ไว้ให้วา วาก็ไปอิงแอบกับ รู้ท , /, เท่านั้นเอง ซึ่งก็รู้ๆกันอยู่ว่า รู้ท ของ FreeBSD นั้น เล็กนิดเดียว แต่ mysql นั้นเป็นฐานข้อมูลซึ่งต้องการเนื้อที่ สำหรับแค่ วิ่ง อย่างเดียวโดยไม่รวมตัวข้อมูลด้วยนี่ ก็ร่วมๆ ครึ่งเม้กกาไบท์แล่ว
สำหรับประการแรก ที่ว่า ผู้ที่สั่งวิ่งโปรแกรม mysql ไม่ใช่ mysql และไม่ได้อยู่ในกรุ้บ mysql นั้น
ประเด็นนี้ แก้ได้ง่ายด้วย chown(1) ซึ่งเป็นประโยชน์โดยตรงจากข้อเขียนที่แล้ว ในเรื่องของ file permission นั่นแหละ
ก็หวังว่าประสบการณ์จริงเหล่านี้ คงให้ข้อคิด ที่เป็นประโยชน์ สำหรับเพื่อนรัก นักอ่านบ้าง ไม่มากก็น้อย
Thursday, February 26, 2009
ไกลปืนเที่ยง : FreeBSD --> file permissions
เรื่องที่ว่านี้ ก็คือ binary digits หรือ เลขฐาน ๒ หรือ bits ที่มีแต่ 0 กับ 1 เท่านั้นเอง ง่ายเน้าะ
เรามาดูว่า ๑ บิท จะมีค่าอะไรได้บ้าง ก็แค่ 0 กับ 1 ก็ให้นึกว่า ปิดไฟแสงสว่าง กับ เปิดไฟแสงสว่าง ก็แล้วกัน เปรียบเทียบให้เห็นเป็นตัวอย่างง่ายๆ
แล้ว ๒ บิท ก็จะมีค่า ตั้งแต่ 0 ถึง 3 ดังนี้น่ะ
00 = 0
01 = 1
10 = 2
11 = 3
ขอให้สังเกตุค่าต่างๆของเลขฝั่งขะซ้ายมือไว้ด้วย มันสวย เป็นระเบียบดี
ทีนี้ ๓ บิท หละครับ จะมีค่าจากไหน ไปถึงไหนมั่ง ลองๆนึกดูซิ
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
อีกครั้งหนึ่ง ที่ใคร่ขอแนะให้สังเกตุ และ จำ pattern ของกลุ่มเลขฐาน ๒ นี้ไว้ด้วย มัน สวย และ เป็นระเบียบดี และ เป็น ประโยชน์ ด้วย
อ้อ ยังคงใช้ได้น่ะ ที่ว่า ถ้าเป็น 0 คือ ปิด ถ้าเป็น 1 คือ เปิด
เอาล่ะ เรามา เล่น อะไรกันสนุกสักนี้ดหนึ่งน่ะ ในกลุ่ม ๓ บิท นั้น เราแทนตำแหน่ง จากซ้ายไปขวา ด้วย rwx ตามลำดับไป ดังนี้
แล้วให้ลองกำหนดว่า ถ้าอันไหน เปิด ให้เป็น 1 อันไหน ปิด ให้เป็น 0 ลองดูน่ะครับว่า ถ้าเป็น 755 ละครับ ลองเขียนออกมาเป็น pattern ซิ จะเป็นอะไร, อ้อ ต้องสามกลุ่มน่ะ
แล้วทีนี้ ลองอีกเที่ยว โดยถ้าว่า อันไหน เปิด ให้ใช้ตัวอักษร ตัวนั้นไปเลย ไม่ต้องใช้เลขแล้ว ส่วนอันที่ ปิด ให้ใช้ ขีดขวาง - แทนเอา
ลองกับ 755 ดูว่า pattern เป็นยังไง
ลองดูซิว่า ถ้าเป็น rw-r--r-- จะ ได้เลขอะไร
เราพักกันตรงนี้ สักครู่น่ะ
ม้ะ...เรามาไปกันต่อไป
ก็ไม่แน่ใจเหมือนกันว่า ที่ปล่อยให้ท่านได้พักนั้น ท่านจะพักจริง หรือว่่ามัวแต่ครุ่นคิด จนไม่ได้พักกันแน่ หากเป็นกรณีหลัง มะไฟ คงสร้างบาปกรรมขึ้น หวังว่าคงไม่ใช่น่ะ แลที่ว่า ๓ กลุ่ม นั้น ก็คงจะเข้าใจน่ะครับว่า หมายถึง กลุ่มของเลข ๓ บิทส์ ๓ กลุ่ม ซึ่งผลก็คือ เลข ๙ บิทส์ นั่นเอง
ก็คงไม่มีปัญหากับ 4 ตัวสุดท้ายตรงตำแหน่งขวาสุด และคงกระจ่างว่า ทำไม rw-r--r-- จึงมีค่าเป็น 644
ทำไมต้อง ๓ กลุ่ม และความหมายของ r, w, x คืออะไร ได้เคยบอกไว้แล้วใน FreeBSD: file ในที่นี้ ใคร่ขอเน้นให้เชื่อมโยงเลขฐานสอง กับความหมายต่างๆ ที่ใช้งานในชีวิตประจำวัน เป็นเบื้องต้น
ในตอนต้น ที่บอกให้จำ ความสวยงาม ความเป็นระเบียบ นั้นก็มีเหตุอยู่น่ะ คือกลุ่มบิทส์ ตั้งแต่ ๒ บิทส์ ๓ บิทส์ ที่ยกตัวอย่างมาน่ะ น่าจะจับ กระสวน ของบิทส์ได้ ให้ลองเอาเองว่า ถ้าเป็นกลุ่ม ๔ บิทส์บ้าง pattern ของบิทส์ จะเป็นอย่างไร
อีกอย่างหนึ่ง ที่อยากให้คิดต่อคือ ในกลุ่ม ๒ บิทส์ ค่าที่ได้ มีตั้งแต่ ๐ ถึง ๓ รวมเป็น ๔ ค่า ในกลุ่ม ๓ บิทส์ ค่าที่ได้มีตั้งแต่ ๐ ถึง ๗ รวม ๘ ค่า แล้ว ในกลุ่ม ๔ บิทส์หละ สมควรเดาออกได้น่ะครับ ในกลุ่ม ๓ บิทส์นั้น ทำให้เราได้สัมผัสกับเลขฐานแปด, octal, ไปโดยไม่รู้ตัว
ดังนี้แล้ว ถ้าเราจะมอง file permission เป็นเลข octal ก็จะทำให้ทำงานได้ง่ายขึ้น สะดวกขึ้น และ รวดเร็วขึ้นด้วย
การเปลี่ยน permission เราเรียกว่า เป็นการเปลี่ยน mode และ คำสั่งที่เกี่ยวข้องคือ chmod(1) และการกำหนดให้ใครเป็น owner นั้นกระทำโดยคำสั่ง chown(1)
หวังว่า ข้อเขียนเกี่ยวกับเรื่องของ แฟ้ม จะพอมีสาระ มาบ้าง และก็หวังว่า คงช่วยให้ท่านได้ทำงาน หรือ ใช้งาน FreeBSD ได้คล่องขึ้น