Showing posts with label virtualenv. Show all posts
Showing posts with label virtualenv. Show all posts

Thursday, April 26, 2012

Zope & python

ใน คราวที่แล้ว นั้น ทิ้งท้ายไว้ให้พี่ๆ เพื่อนๆ น้องๆตรง

ให้ท่านทำอย่างใดอย่างหนึ่ง ซึ่งจะให้ผลเหมือนกัน คือ
) ในหน้าที่แสดงผล ให้กดตรงข้อความเข้มๆ Zope Management Interface หรือ
) ปิด web browser แล้วเรียกใหม่อีกครั้ง คราวนี้ไปที่ http://localhost:8080/manage/
ซึ่งทั้งสองเส้นทาง จะบังคับให้ท่านกรอก ชื่อ/ระหัสลับ ที่ท่านได้ตอบไปในคราวสร้าง zope instance นั้นแล้ว ก็ให้กรอกไปให้ถูกต้อง
รูปข้างล่างนี้แสดงให้เห็นถึงหน้า web browser เมื่อท่าเรียกเข้าไปครั้งแรกด้วย http://localhost:8080/

แล้วก็มีรูป เลอะๆเลือนๆทิ้งไว้ ซึ่งหากไม่กดเข้าไปก็คงไม่รู้ว่ารูปอะไรพวกเราจากกัน ณ ตรงนั้น 
เข้าไปทำงานใน ZMI
งวดนี้ เรามาต่อกันอีก ส่วนจะไปได้เท่าไหร่ก็คงต้องขึ้นกับอุณหภูมิห้องว่าสูงหรือต่ำแค่ไหน สูงมากไป เครื่องก็ดับ
เราเริ่มกันด้วยรูป จากวิธีที่ ๒) (หรือวิธีที่ ๑) ก็เหมือนกัน) ดังนี้

และเมื่อท่านกรอกข้อมูลถูกต้องครบถ้วนแล้ว ท่านจะพบกับหน้าเอกสารดังต่อไปนี้


หน้าหลักสำหรับจัดการ zope, ZMI
ในรูปให้สังเกตุว่ามีสองส่วน ที่แยกกันในแนวตั้ง หรือ ซ้าย-ขวา ที่ส่วนซ้ายจะเล็กกว่า ส่วนขวา ซึ่งใหญ่ กินเนื้อที่เกือบทั้งหมด นั่นคือสิ่งที่พวกเรารู้ไปด้วยกันในขณะนี้ จากรูปที่นำมาให้ดูนี้

ตรงบริเวณส่วนใหญ่ของ browser ล่างสุด จะเป็นปุ่มสวิชต์ต่างๆ เช่น Rename, Cut, ... ,Select All 

ข้างบนนั้น เป็นตัวหนังสือ ที่ปิดด้านบนด้วย Type Name, Size, Last Modify 

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

ลำดับถัดมา ขอให้สังเกตุส่วนขวามือ บริเวณบนๆ ขวาสุด ท่านจะเห็น drop down menu ชื่อว่า Acce... , ที่วงแดงๆไว้นี่แหละ, นั้น

ให้นำ mouse ไปกดลงไป แล้วเลื่อนลงไปล่างสุด จนพบกับ ZMS ให้ใช้ mouse กดเลือก ตรงนี้

ZMS ที่เขาให้เรามาใช้งาน
รอสักพัก แล้วท่านจะได้รูปตามนี้

ตามรูปที่แสดงให้ดูนี้ ให้ท่านสังเกตุรายละเอียด บริเวณด้านบน ตรงส่วนขวามืออันเป็นส่วนใหญ่ของภาพ ดดยเฉพาะบรรทัดที่เขียนว่า Folder ID, Lang และ Theme ให้ดูตรงชื่อต่างๆ ที่อยู่ในบรรทัดนั้นๆ

ที่แก้ไขได้ และสมควรแก้ไขคือ Foder ID จากชื่อดูว่าแปลกๆ ให้เป็นชื่อที่สื่อความว่าเป็น ZMS object ของท่าน กับอีกหนึ่งที่สมควรแก้คือ LANG, หากท่านเข้าใจภาษาเยอรมัน ก็ไม่ต้องแก้, ให้แก้เป็น eng, English, English ทั้งสามค่า สำหรับการใช้งานด้วยภาษาอังกฤษ

ให้จำชื่อที่ท่านแก้ตรง Folder ID นั้นเอาไว้ให้ดี เอ้า สมมติว่าชื่อ myInit

ก็ตามรูปที่ได้วงๆ ชี้ๆไว้ให้พอได้แนวทางว่าจักต้องแก้ตรงไหน อย่างไร

จากนั้น ให้เลื่อน scroll bar ลงมาล่างสุด หรือหากจอภาพของท่านสามารถแสดงผลได้หมด ก็ให้เหลือบสายตาลงมายังด้านล่างของจอภาพแสดงผลของ browser

คงเห็นปุ่ม Add น่ะครับ อย่าเพ่อกดลงไป ให้ดูจอภาพด้านซ้ายมือ อันกินบริเวณส่วนน้อยของจอภาพนั้นเอาไว้ ก็คงมีพวก Root folder, Control_panel, acl_user, temp_folder ประดานี้ ดูเอาไว้ก่อนให้พอติดตาครับ



จากนั้นให้ท่านกดตรงปุ่ม Add รูปอะไรก็ไม่รู้ แต่ ถ้าได้อย่างนี้แล้ว นั่นแหละ มันมาแล้ว
นี่เป็นรูปของ template ที่เขาสร้างไว้ให้เราพร้อมใช้งาน


ในรูปถัดมา วงเขียวๆ ด้านซ้ายมือนั่นแหละ ตรงที่กินที่ส่วนน้อยของจอภาพนั่นแหละ ให้สังเกตุว่า จะมีชื่อใหม่เพิ่มเข้ามา ก็ชื่อของ Folder ID ที่ท่านกำหนดขึ้นมาเอง

ทีนี้ พอนึกออกรึยัง ที่เคยบอกว่า ให้สังเกตุไว้ พอให้ติดตาเอาไว้ก่อนน่ะ



เอาล่ะ มองดูอีกด้านที่กินที่ส่วนใหญ่ของจอภาพนั้น ก็ ที่วงน้ำเงินไว้ตรงบริเวณคำ www-site นั้น กับอีกวงแดงๆ ข้างล่าง ตรงกับคำ Image นั่นแหละ

รูปวงแดงของ Image อาจจะไม่ชัดเจนนัก เลยเพิ่มให้อีก ๑ รูป พร้อมกับเพิ่มสิ่งที่อยากชี้ให้เห็นด้วยวงสีเขียวมาให้ดูล่ะกัน
ตรงวงเขียวนั่นแหละ คือ ภาพ ที่ท่านสามารถแทรกลงไปได้ และข้อความบรรยายใต้ภาพก็เช่นกัน ท่านสามารถ เพิ่ม เปลี่ยน ปรับขยับตำแหน่ง เอาได้ ตามใจชอบ และหากสังเกตุให้ดี ในวงเขียวนั้น ตรงมุมขวา จะมีสัญญลักษณะคล้ายแว่นขยายอยู่ แสดงว่า ภาพที่นำเสนอนี้ มี ๒ แบบ คืออย่างที่กำลังชม กำลังเห็นนี้ (ซึ่งถือว่าเป็น รูปย่อ) กับ แบบขยาย เมื่อท่านกดไปที่ภาพนี้

ก็ดูว่ารกรก เต็มไปด้วยรูป ที่ไม่ค่อยรู้เรื่องน่ะ  
แต่ก็ขอให้รู้จักว่า ส่วนไหนคือ ZMS ที่เราเพิ่มเข้ามา 
และในวัตถุ ZMS นี้ ส่วนไหนคือ www ส่วนไหนคือ Images ส่วนไหน คือการ preview  
และที่สำคัญ ตรงไหนที่เป็นส่วนที่บังคับ หรือ กำกับ ควบคุม การทำงานของ ZMS  ก็ขอให้รู้ น่ะครับ


ลองคาดเดาดูเล่นๆก่อนก็ได้ แต่อย่าเพ่อมือไวกดเล่นไปก่อนล่ะกัน  คริคริ
รึว่ากดไปแล้ว ก็ไม่ต้องตกใจไปหรอก ยังไงเสียท่านก็เข้ามาในรูปใดรูปหนึ่งนี้ได้ตลอดเวลาแหละ มันไม่หายไปไหนหรอกครับ

เอาเถอะ ไหนไหนก็ไหนไหนแล้ว ลองกด scroll bar ลงมาด้านล่างสุด แล้วสังเกตุตรง Folder สี่-ห้า ชื่อนั้นให้ดี น่ะ
จากนั้น เลื่อนไปบนสุดๆๆๆ จะมีคำว่า Preview อยู่ กดไปเลย แล้ว สี่-ห้า ชื่อของ Folder ที่บอกให้ดูไว้น่ะ มันอยู่ตรงไหน พอสุงเกตุได้หรือเปล่า 

ทีนี้ หากจะกลับมาหน้าเดิม ก็กดตรงคำว่า Back to WWW-site นั่นแหละ

เอากันเท่านี้ก่อนน่ะครับ

Wednesday, April 18, 2012

Zope & python

Zope

ก่อนที่จะลืมเลืนหายไป อันเป็นข้อด้อยอย่างยิ่งของ FreeBSD ที่พอลงแล้ว ก็ใช้ไปจนลืม ลืมวิธีการลง
อนึ่ง เรื่องราวของ zope และ ZMS นี้ได้รับการแนะนำจากอาจารย์ วิริยะ กลิ่นเสาวคนธ์ จังหวัดสุรษฎร์ธานี แต่เอกสารที่เขียนขึ้นนี้ เขียนเองจากความทรงจำ และขณะทำงาน สดสด

Prerequisite 
ในการนี้ ต้องลง python ก่อน แล้วลง virtualenv ไว้ด้วย เพื่อสะดวกสำหรับผู้ใช้อื่นๆ
python ที่กำหนดโดย FreeBSD นั้น เขาใช้ python-2.7 ก็ไปลงผ่าน ports ซะ ง่ายดี รวมทั้ง virtualenv ด้วยเช่นกัน
การลงผ่าน ports นั้นต้องเป็น root เท่านั้น
รายละเอียดของโปรแกรมที่ต้องใช้กับ FreeBSD ก็มี
๑) FreeBSD ที่ใช้งานขณะนี้นั้น คือ
[mni] ~% uname -a
FreeBSD mni.jes.in.th 9.0-STABLE FreeBSD 9.0-STABLE #10: Sat Apr 14 07:30:41 ICT 2012 root@mni.jes.in.th:/kaitag/obj/usr/src/sys/JOTAWSKI amd64
[mni] ~%
๒) python
python27-2.7.3 An interpreted object-oriented programming language
๓) virtualenv
py27-virtualenv-1.7 Virtual Python Environment builder
py27-virtualenvwrapper-2.11.1 A set of extensions to Virtual Python Environment builder


zope 2.13.13 และ zms ล่าสุด

วิธีการที่นำเสนอนี้ ท่านสามารถลงเองได้ ไม่ต้องไปรบกวนให้ระบบต้องมารับผิดชอบด้วย นับว่าสะดวกไปหลายอย่าง
เบื้องต้น ขอแนะนำให้ท่านหาเนื้อที่พิเศษแยกไว้ต่างหากเลย อาจจะเป็น file system แยกมาเลยก็ได้ ในกรณีของ มะไฟ ใช้ usb external hard disk ขนาด 600 gigaoctets มาไว้ที่ /kaitag ก็เลยอาศัย /kaitag นี่แหละ เก็บ หรือ ลงโปรแกรม zope ที่ /kaitag/psr/zMa แล้วก็กำหนดว่า /kaitag/psr นั้นตัวท่านเองสามารถเขียน-อ่านได้ด้วย (หรืออย่างน้อย ท่านอยู่ในกลุ่มนั้น และกำหนด permission ให้เป็น g+w /kaitag )

ทำตามนี้เลยน่ะ ไม่ต้องเป็นร้งเป็นรูต(root) อะไรหรอก ให้ login ด้วย id ของท่านเองแหละ สมมุติให้เป็น psr

% mkdir -p /kaitag/psr (คำสั่งนี้ ทำหนเดียว)
% cd /kaitag/psr
% virtualenv --system-site-packages zMa

ถึงตอนนี้โปรแกรมจะสร้างสาระบบแฟ้ม zMa ขึ้นมาจาก /kaitag/psr พร้อมกับลงโปรแกรมที่จำเป็น ในเบื้องต้น ไว้ให้ในสาระบบแฟ้มย่อย ในภายในนั้นอีกทีหนึ่ง ซึ่งได้แก่

…/zMa/bin/
…/zMa/lib/
…/zMa/include/

และ option --system-site-packages นั้น จะทำให้โปรแกรมต่างๆ ที่ต้องเรียกใช้งาน ในสาระบบแฟ้ม …/zMa/ นั้น จะไปเรียกแฟ้มที่ได้ลงไว้ในระบบ ในคราวที่ลงโปรแกรม python ไว้แล้วด้วย root แต่ทีแรกนั้น โดยการสร้าง link แทนการลงแฟ้มใหม่

ในลำดับถัดมานั้น ท่านต้องต่อเชื่อมกับ internet ด้วยน่ะ ไม่งั้นทำงานต่อไปไม่ได้แน่เลย

% cd  zMa
% ./bin/easy_install -i http://download.zope.org/Zope2/index/<zope version>  Zope2

ให้แทนที่  <zope version> ด้วยตัวเลขที่บอก version ของ zope ที่ท่านสนใจใช้งาน ลงไป ตัวอย่างเช่น 2.13.13 เป็นต้น

แลในช่วงนี้ ให้ท่านนั่งอ่านอริยสัจจสี่ไปพลางๆ หรืออ่านหนังสือธรรมอันเป็นสรณของท่านไปพลางๆ ไม่นานนัก
ในที่สุด ท่านจะเห็นข้อความนี้

Installed /kaitag/psr/zMa/lib/python2.7/site-packages/manuel-1.1.1-py2.7.egg
Finished processing dependencies for Zope2

ก็แสดงว่าท่านใช้งานได้ทั้ง ซบ (zope) และ เสียว (zeo)


Zope Instance
แต่ก่อนที่ท่านจะใช้งาน ท่าน ต้อง สร้าง instance มาก่อน อันเนื่องมาจากการที่ ซบ นั้นเป็นวัตถุ (object) อย่างหนึ่ง นั่นเอง ไม่มีอะไรมาก แต่ต้องสร้างขึ้นมา ดังนี้เลย

% ./bin/mkzopeinstance -d yzMai

เมื่อ yzMai เป็นชื่อสาระบบแฟ้มสำหรับ zope instance ที่สร้างขึ้นตามข้อกำหนดในการใช้งานของ zope สาระบบแฟ้มนี้ กำหนดชื่อด้วย option d ตามตัวอย่างที่ให้ไว้

ชื่อที่สร้างขึ้น นำหน้าด้วยอักษรวาย (y) อันหมายถึงว่า ยังไม่ใช้งานจริงน่ะ ตามด้วยชื่อ สาระบบแฟ้มที่อยู่ในขณะนั้น แล้วต่อท้ายด้วย อักษรไอ (i) ให้รู้ว่ามันเป็น instance ที่ยังไม่ใช้งานจริงน่ะ – yet zope (zMa) instance – ก็แล้วแต่ท่านจะกำหนดเอาเอง แต่ขอให้สื่อความ ก็เป็นอันใช้ได้

ในการนี้ ให้ท่านหาสมุดบันทึกความสำคัญมาไว้ใกล้ๆตัว เพราะโปรแกรมจะถาม ชื่อ และ ระหัสลับ ซึ่ง ชื่อ/ระหัสลับ นี้ จะถูกเรียกใช้งานก็ต่อเมื่อท่านทำงานแก้ไข ปรับปรุง เพิ่มเติมผ่านทาง web browsers ต่อไปในภาคหน้า อย่างไรก็ดีในสาระบบแฟ้มอันเป็น zope instance นี้จะมีแฟ้มชื่อ inituser ซึ่งแม้จะบันทึก ชื่อ/ระหัสลับ เอาไว้ก็ตาม แฟ้มนี้จะหายไป ในครั้งแรกที่ท่านเรียกใช้งาน zope ดังนั้น จึงได้แนะให้หาสมุดมาบันทึกเอาไว้ หรือ ท่านจะสำเนาไว้ดังนี้ก็ได้

% cd yzMai
% cp -p inituser 0-A-inituser

การที่เลือกใช้เลข 0 นำหน้าก็เพื่อว่า แฟ้มนี้จะปรากฏในตอนต้นเมื่อสั่ง list directory ดูด้วยคำสั่ง ls และก็ด้วยเหตุผลเดียวกับการที่มีอักษร A นำหน้าอีกในลำดับหนึ่งนั้น ทั้งนี้ เพื่อเตือนความทรงจำของท่านเอง มิใช่เพื่ออะไรเลย

และอีกหนึ่งคำสั่งเพื่อสำเนาแฟ้มของ zope instance เอาไว้ ดังนี้

% cp -pR etc/ etc.orig/

โดยที่สาระบบแฟ้ม etc/ จะเก็บแฟ้ม configurations ของ zope instance เอาไว้ การกระทำเช่นนี้ ดูว่าจะเกินเลยไป แต่ ป่องกันไว้ ดีกว่าเสียใจในภายหลัง


Zope configurations
zope เขาจัด configurations ไว้หลายอย่างมาให้เป็นเบื้องต้น ท่านสามารถปรับ หรือแก้ไขเอาเองได้จากแฟ้ม etc/zope.conf ภายใต้สาระบบแฟ้มของ instance ที่สร้างขึ้น (ซึ่งในที่นี้คือ yzMai) อนึ่งขอให้ท่าน อย่างน้อย ได้อ่านแฟ้มนี้สักครั้งด้วย เพื่อความเข้าใจอันดีของท่านเอง

ผมแก้ให้เรียกผ่าน port 82 แทนที่จะเป็น port 8080 ตามที่ zope กำหนดมาให้ ส่วนอื่นๆที่แก้ไขจากต้นฉบับคือ

effective-user psr
enable-product-installation on
datetime-format international
rest-input-encoding utf-8
rest-output-encoding utf-8
rest-language-code en
ip-address 127.0.0.1
large-file-threshold 100Mb
default-zpublisher-encoding utf-8

ขอให้เลือก plain text editor ยอดนิยมของท่านมาแก้ไขแฟ้ม etc/zope.conf นี้


ZMS
zms เป็น zope content management system ที่อนุญาตให้ท่านสร้างเอกสารด้วย template ที่เขาได้สร้างมาให้แล้ว อย่างง่ายดาย โดยมิต้องเสียเวลาเริ่มต้นใหม่ นับว่าสะดวกสำหรับการนำเสนอรายงานได้เป็นอย่างดี

ขอให้ท่านไป download เอา zms เวอร์ชันล่าสุด, ZMS-latest.tar.gz, เก็บไว้ในสาระบบแฟ้มของ zope instance ของท่าน, yzMai, ที่ซึ่งเป็น ตำแหน่งทำงานของท่านในขณะนี้ จาก zms โดยเลือกกด Download ในหน้าที่เข้าไปนี้

ให้ลง zms ไว้ที่สาระบบแฟ้ม Products ของ zope instance ที่ท่านสร้างขึ้น โดยสั่ง

% cd Products
% tar -xzvf ../ZMS-latest.tar.gz

หากมีคำถามเกี่ยวกับการเขียนทับแฟ้มที่มีอยู่แล้ว ก็ให้เขียนทับไปทุกแฟ้ม จากนั้น กลับสู่สาระบบแฟ้ม zope instance, yzMai, ด้วยคำสั่ง

% cd ..

ทั้งหมดที่กล่าวนำมานี้ ก็เพื่อให้ท่านได้สร้าง หรือ นำเสนอผลงานผ่าน zms ผ่าน zope อีกทีหนึ่ง


Running zope
ในสาระบบแฟ้มของ zope instance ที่ท่านสร้างขึ้น, yzMai, ให้ท่านเริ่มทำงาน zope ด้วยคำสั่ง

% ./bin/zopectl start

แลหากอยากหยุดการทำงาน ก็สามารถสั่งได้ด้วยคำสั่งเดียวกันนี้ ลำบากเพียงเปลี่ยนจาก start เป็น stop เท่านั้นเอง อนึ่ง ก็แลแฟ้ม inituser นั้นจะหายไปเมื่อท่านเริ่มวิ่ง zope เป็นครั้งแรก น่าใจหายน่ะ

เมื่อมีปัญหา ท่านสามารถดูรายละเอียดต่างๆได้จาก log ในสาระบบแฟ้ม log/Z2.log และ log/event.log แลถึงจะไม่มีปัญหา ก็ควรแวะเข้าไปตรวจสอบดูเป็นระยะไป ก็ไม่เสียหายอะไร มีแต่ได้ประโยชน์เสียอีก

เรียก web browser ยอดนิยมของท่านมา แล้วตั้งเป้าหมายไปที่ http://localhost:82/ ดูมีหรือว่า ท่านจะเห็นอะไรบ้าง

ในกรณีที่ไม่เห็นอะไรเลย นอกจาก error ให้ท่านตรวจดูว่าแฟ้มทั้ง ๒ ในสาระบบแฟ้ม log ที่กล่าวถึงนั้นมีอยู่หรือไม่ และสมควรไม่มีเลยในกรณีนี้ ทั้งนี้เป็นเพราะ พวกเราไปตั้ง port ที่ต่ำกว่า 1024 อันเป็นข้อห้าม ข้อถือสาในเรื่องของความปลอดภัยของระบบเข้า นั่นเอง

เช่นนี้ก็ลำบากไปแก้ไข configurations ของ zope ตรงบรรทัด address 82 นั้น ให้เป็น address 8080 หรือ port อื่นที่ไม่ไปชนกันเข้า แล้วเริ่มวิ่ง zope อีกครั้ง ด้วยคำสั่งข้างบนนั้น

ให้ท่านสังเกตุง่ายๆว่าทำงาน หรือ ไม่ทำงาน ด้วยการ list directory ดูว่าแฟ้ม inituser นั้นยังอยู่ หรือ หายไป หากหายไป แสดงว่า ทำงาน

หรือ

ให้ list directory ของสาระบบแฟ้ม log ดูว่ามีแฟ้มทั้ง ๒ นั้นเกิดขึ้นหรือไม่ หากมี ก็แสดงว่า ทำงาน และให้ตรวจดูรายละเอียดเบื้องต้นจากแฟ้ม event.log ดังนี้

% tail ./log/event.log

สาระที่แสดงมาให้เห็น ท่านสมควรทราบโดยสัญชาติญาน

จากนั้น ให้ท่านทำอย่างใดอย่างหนึ่ง ซึ่งจะให้ผลเหมือนกัน คือ
๑) ในหน้าที่แสดงผล ให้กดตรงข้อความเข้มๆ Zope Management Interface หรือ
๒) ปิด web browser แล้วเรียกใหม่อีกครั้ง คราวนี้ไปที่ http://localhost:8080/manage/
ซึ่งทั้งสองเส้นทาง จะบังคับให้ท่านกรอก ชื่อ/ระหัสลับ ที่ท่านได้ตอบไปในคราวสร้าง zope instance นั้นแล้ว ก็ให้กรอกไปให้ถูกต้อง

รูปข้างล่างนี้แสดงให้เห็นถึงหน้า web browser เมื่อท่าเรียกเข้าไปครั้งแรกด้วย http://localhost:8080/


ขอพักตอนแรกไว้เท่านี้ก่อน

View My Stats