คือผมเป็นมือใหม่อ่ะครับอยากหัดเขียน python ในการเยียนเว็บก็เลยลองใช้เทอร์โบเกียร์แต่ว่ามัน งง อ่ะครับ http://docs.turbogears.org/1.0/Wiki20/Page1 ผมได้ศึกษาจากลิงค์นี้อ่ะครับ คือว่าผมทำตามขั้นตอนทุกอย่างตั้งแต่แรกแล้วพอมาถึง python start-wiki20.py มันจาขึ้นประมาณว่า pot not free อะไรประมาณนี้ ผมใช้ os:windowvista db:appserv(mysql)จะทำงานส่งอาจารย์อ่ะครับ ถ้าให้ดีพี่ๆช่วยแนะนำเป็นทีละขั้นตอนเลยได้ไหมครับ ขอละเียดนิดนึงนะครับแบบว่ามือใหม่่จริงๆ งงมาก มันขึ้นแบบในรูปนี้อ่ะครับรามลิงค์นะครับ
http://dekdee.buu.ac.th/~cp481612/error.JPG
เหมือนจะมัปัญหาที่ port 8080 แต่ไม่รู้จะไม่แก้ตรงไหนครับ
ลองแก้ไฟล์ dev.cfg ดูนะครับ
uncomment บรรทัดนี้
server.socket_port=8080
แล้วลองแก้เป็น port อื่นที่ไม่ใช่ 8080 ดู
ขอบคุณมากมายครับเดวจะลองดูนะครับได้ไม่ได้ยังไงเดวจะมาบอกนะครับ
ลองดูแล้วอ่ะครับแต่ว่าก็ยังเหมือนเดิมเลยครับ งง แล้วผมจะทำยังไงดีครับที่จะเขียน web application ด้วย python ขอคำแนะนำจากพี่ๆด้วยนะครับขอละเอียดนิดนึงนะครับ
ปลผมลองแก้ที่พี่ luckyman บอกแล้วครับแต่ก็ยังเหมือนเดิม ตามรูปอ่ะครับ
http://dekdee.buu.ac.th/~cp481612/1.JPG
จาก msg เท่าที่ดู มันไม่น่าจะมีสาเหตุอื่นเลย นอกจากมีการเรียกใช้ Port ซ้ำกันกับ process ตัวอื่นๆ อาจจะต้องลองเปลี่ยนเป็น port อื่นๆ ที่มันไม่น่าจะมีการเรียกใช้ได้ (ประเภท 55305) ถ้ายังไม่เวิร์กอีกอาจจะต้องลองไปดูพวก Firewall Policy ดู แล้วลองตั้ง python.exe เป็น exception ดู ไม่อีกทีลองเปลี่ยนชื่อ host เป็น 127.0.0.1 ดู
ยังเหมือนเดิมอ่ะครับหรือว่าผมแก้ไม่ถูกที่พี่ๆลองดูในรูปนะครับ
http://dekdee.buu.ac.th/~cp481612/2.JPG
http://dekdee.buu.ac.th/~cp481612/3.JPG
http://dekdee.buu.ac.th/~cp481612/4.JPG
แต่ที่ว่าเปลี่ยน host เป็น 127.0.0.1 อ่ะครับไม่เข้าใจอ่ะครับว่าเปลี่ยนตรงไหนขอบคุณมากมายครับสำหรับความช่วยเหลือ
127.0.0.1 หมายถึงให้เปลี่ยน localhost ตรงในส่วนของ server host น่ะครับ แต่อันที่จริงตรงคงไม่ต้องไปยุ่งกับมันก็ได้ เพราะส่วนใหญ่ก็กำหนดไว้ใน hosts ของ Windows เป็นค่า Default อยู่แล้ว
ส่วนปัญหาที่ยังอยู่นี่... ที่เครื่องได้ติดตั้ง Anti Virus อะไรไว้หรือปล่าวครับ ถ้ามี ให้ปิดการทำงานของพวก Anti Virus ก่อน แล้วลองสั่ง script ให้ทำงานใหม่ดู ถ้ายังไม่ได้ ลองปิด Firewall ของ Windows แล้วลองใหม่อีกครั้ง แต่ถ้าได้ลง Anti Virus ไว้จริงๆ ผมคิดว่าน่าจะทำงานได้ตั้งแต่ปิด Anti Virus นะ ลองดูอีกทีครับ
ผมใช้ not32 อ่ะครับจะลองดูนะครับ
ยังไม่ได้เลยอ่ะครับ ทำยังไงดี แล้วพี่ๆที่เคยใช้ TurboGears ติดตั้งบนไหนเหรอครับ window หรือว่า linux
ทั้ง Windows/Linux ครับ
จากเคสท์เท่าที่ฟัง ความเป็นไปได้มันไม่น่าจะมีอย่างอื่นเลย คือ Error ลักษณะดังกล่าวจริงๆ ปัญหามันไม่ได้มาจากตัว TurboGears/CherryPy เอง เพียงแต่ในโมดูล _cpserver.py มันจะมีการ trap เพื่อดูว่าเปิดพอร์ตที่กำหนดได้สำเร็จมั้ย ถ้าไม่ก็ให้ raise cherrypy.NotReady ขึ้นมา ซึ่งถ้าปัญหาของการเปิดพอร์ตไม่ได้ ถ้าไม่ได้มีการเรียกใช้พอร์ตซ้ำกันจริงๆ (ซึ่งในกรณีนี้ไม่น่าจะใช่) ปัญหาก็น่าจะอยู่ที่พวก Anti Virus | Firewall ลักษณะนี้ แต่เท่าที่ผมเคยเจอมาอีกตัวหนึ่งก็คือ Skype อันนี้เปิดไว้ก็เหมือนจะไป interrupt การเปิดพอร์ตพวกนี้อยู่เหมือนกัน
สรุปคือผมอยากแนะนำให้กลับไปเช็ครายละเอียดโปรแกรมพวกนี้ดีๆ อีกครั้ง ว่าเราเปิดอะไรไว้บ้าง ลองพยายามปิดโปรแกรมที่มีอยู่(โดยเฉพาะในกลุ่มที่น่าจะมีการใช้ Socket) แล้วลองใหม่อีกที เพราะปัญหาลักษณะนี้ ความเป็นไปได้อย่างอื่นแทบไม่มีเลยครับ
ผมใช้ windows นะ
เท่าที่ไล่หาดูใน list พบว่า cherrypy อาจจะ มีปัญหากับ ESET Smart Security Firewall
งั้นลองปิดมันเลยละกัน
เข้าไปแก้ไฟล์
C:\Python26\Lib\site-packages\cherrypy_cpserver.py
โดยให้ ปิดคำสั่งตามนี้
#wait_for_free_port(host, port)
ของผมอยู่บรรทัดที่ 99
อย่าลืมลบไฟล์
_cpserver.pyc
ออกก่อนด้วยแล้วลองดูอีกทีครับ
จะลองดูนะครับขอบคุณครับ
ทำตามที่พี่ luckyman บอกมันขึ้นค้างอยู่แบบนี้อ่ะครับ
http://dekdee.buu.ac.th/~cp481612/6.JPG
มันก็ Serving แล้วนี่ครับ แต่แปลกตรงที่ทำไมมันไป map กับ host 0.0.0.0
ลองไปที่ browser แล้วไปที่ http://localhost:553115 แล้วมันเวิร์กไหมครับ?
อย่างไรก็ตาม การไป remark ในส่วน method ที่เช็คการเปิดพอร์ตลักษณะนี้ ต่อให้มันทำงานได้ ก็ควรจำกัดไว้ในส่วนของ developing environment เท่านั้นนะครับ ถ้าจะไป deploy จริงควรหลีกเลี่ยงอย่างยิ่ง เพราะอาจจะไปเป็นสาเหตุให้ port มัน conflict กันวุ่นวายไปหมด
แต่ดูจากที่มันไป listen ที่ http://0.0.0.0:553115 แบบนี้ ผมก็ไม่มั่นใจว่ามันจะทำงานได้นะ
ห้าแสนกว่านี่มันเยอะไปมั๊ยครับ
ปกติจะได้แค่ 16-bit unsigned integer 0-65535
ส่วน 0.0.0.0 คือรับ connection จากทุก address ที่ติดต่อเข้ามา
ห้าแสนกว่าเยอะไปครับ จริงๆ ตอนพิมพ์ตอบคือกดเลขสุ่มด้วย กดเพลินไปหน่อย ต้องขอโทษคุณ nanartong ด้วย ให้ปรับไปใช้เลขสุ่ม 4 หลักในการทดสอบแทนครับ
ส่วนเรื่อง http://0.0.0.0 นั้น โดยข้อตกลงมาตรฐานก็เป็นตามที่คุณ luckyman ว่า เพราะอย่างนั้นตอนที่แนะนำให้ทดสอบ ก็ยังแนะนำให้ใช้ localhost เหมือนเดิม เพราะถ้าได้มันก็ต้องได้แล้ว แต่ที่ผมสงสัยคือในเมื่อผู้ใช้ไม่ได้ไปกำหนดทำไม script ดันไป map เข้ากับ 0.0.0.0 เอง
เป็น default ของ cherrypy ครับ
สงสัยอีกอย่าง มีใครใช้ TG ในงานจริงบ้างรึเปล่าครับ (หมายถึงในนี้นะ) คนที่ผมรู้จักใช้ Django กันหมด
มันบอก Serving HTTP on http://0.0.0.0:553115 ผมก็ลองเรียกผ่าน browser ดูมันไม่มีอะไรเกิดขึ้นเลยอ่ะครับเป็นหน้าขาวๆๆ port 553115 ผมเข้าไปเปลี่ยนที่ dev.cfg อ่ะครับตอนแรกมันเป็น 8080
พี่ๆอย่าเพิ่งทิ้งผมไปนะ ช่วยผมด้วยมีนาแล้วโปรเจ็คยังไม่ถึงไหนเลย
พี่ครับมันเรียกใช้งานไม่ได้อ่ะครับ ทำไงดี
ลองเปลี่ยนเป็น 8080 เหมือนเดิมแต่มันก็ยังเป็น http://0.0.0.0:8080 อ่ะครับ
แล้วเข้า http://localhost:8080 ได้มั๊ยครับ
ผมว่ามันมีปัญหาที่ตรงนี้ผมลองแก้ตรง host เป็น 127.0.0.0.1 และ localhost แล้วก็ยังใช้ไม่ได้เรียกผ่าน browser แล้วมันไม่ขึ้นอ่ะครับ
ผมไม่มีคำแนะนำอื่นครับ นอกจากเช็คพวกโปรแกรมหรือ process ที่มีความเป็นไปได้เช่น Anti Virus, Firewall, Skype (หรืออาจจะรวมไปถึง IM ตัวอื่นๆ) โดยอาจจะลอง netstat -na ดูก่อนก็ได้ว่ามี process อะไรเรียกเปิดใช้พอร์ตอยู่บ้าง
ที่จริงลึกๆ ในใจอยากแนะนำให้ไปเอา comment ที่ไปใส่ไว้หน้า method wait_for_free_port ออก เพราะนั่นจะทำให้เราไม่รู้ว่าจริงๆ แล้วนี่มันเวิร์กหรือไม่เวิร์ก ปัญหาลักษณะนี้มันเป็นที่ Base system ครับ ไม่ใช่ที่ตัว Framework เอง การไป Comment ส่วนการตรวจสอบการเปิดพอร์ตแบบนี้มันหลอกระบบไม่ได้(ไปๆ มาๆ ผู้ใช้ถูกหลอกว่า Serving อย่างนี้แต่ทำงานไม่ได้) ซึ่งเมื่อเป็นอย่างงี้ ก็ควรกลับไปแก้ที่ตัวปัญหาซึ่งก็คือไปพยายามค้นให้พบว่า process ตัวไหนกันแน่ที่มันเป็นปัญหาและปิดมันซะ เพราะไม่อย่างงั้นไม่ว่าจะเปลี่ยนไปใช้ Framework อะไร (DJango, RoR, etc.) ก็จะเจอปัญหาเหมือนเดิม เผลอๆ พวก XAMMP, LAMP ในส่วน http server ยังเปิดไม่ขึ้นเลย
ตามรูปเลยครับ http://dekdee.buu.ac.th/~cp481612/7.JPG
เรียก http://localhost:8080 ก็ไม่ได้เหมือนกันครับ
เห็นใช้ nod32 เลยคิดว่าน่าจะเป็น ESET Firewall ลองเพิ่ม python.exe ไว้ใน exception list ของ ESET Personal Firewall รึยังครับ
ลอง เช็คดูแล้วมันเป็นแบบนี้อ่ะครับตามรูปอ่ะครับ
http://dekdee.buu.ac.th/~cp481612/8.JPG
ยังครับ เดวผมจะลองดูนะครับ
ที่พี่บอกว่า เพิ่ม python.exe ไว้ใน exception list ของ ESET Personal Firewall ใช่ตรงนี้หรือป่าวครับ http://dekdee.buu.ac.th/~cp481612/9.JPG
ผมดูจาก thread นี้นะ เพราะไม่ได้ใช้ nod32
http://www.wilderssecurity.com/showthread.php?t=220766
คิดว่าไม่ใช่นะครับ
method ที่ให้ comment ไว้มันจะเช็คว่า port ที่ bind ไว้มัน connect ได้รึเปล่าน่ะครับ โดยลอง connect ไปที่ localhost ดู
เท่าที่เห็นจาก netstat คือ รอรับ connection แล้ว แต่ติดต่อไม่ได้น่าจะมีอะไรไปบล็อคอยู่ พวก mysql หรืออะไรก็ตามที่เปิด socket รอรับ connection ก็คงมีอาการเดียวกันอย่างที่คุณ bleam ว่าไว้น่ะครับ
edit พวก parental control ของ windows live ก็สร้างปัญหาอย่างเดียวกันนี้ได้นะครับ
นั่นมัน Extension ครับ ไม่ใช่ Exception เขียนก็ไม่เหมือนกัน ความหมายก็ไม่เหมือนกัน
พี่ๆอย่าเพิ่งทิ้งผมไปนะถ้ายังไงขอ เมลไว้ติดต่อพี่หน่อยได้ไหมครับ เพราะว่าคงจะมีเรื่องปรึกษาพี่อีก ขอบคุณมากๆเลยครับ
เหรอครับ เหอะๆจะลองดูครับ
ปวดหัว เดวพรุ่งนี้ผมจะลองเอาฮาร์ดดิสอีกตัวมาใช้ เอาลงแค่
-window
-python
-TurboGears
-appsev
ลงแค่นี้พอยังไงพี่่ๆก็อย่าเพิ่งทิ้งผมนะครับแบบว่าผมมือใหม่จริงๆยังมีเรื่อง งง อีกเยอะเลย
ขอบคุณพวกพี่ๆมากครับที่ให้ความช่วยเหลือ
แล้วพี่ luckyman ใช้ window อะไรเหรอครับ xp/vista แล้วพี่ลงอะไรบ้างในการสร้าง web จะหาคู่มือการใช้งานได้ที่ไหนมีเป็นภาษาไทยหรือป่าว อ่านในเว็บเทอร์โบเกียร์ แล้วไม่ค่อยเข้าใจเท่าไหร่ลักษณะการใช้งานจะเหมือน dreamweaver หรือป่าว
ใช้ 7 beta ครับ ที่ทำงานใช้ xp
ภาษาไทยไม่แน่ใจ เห็นมี django66.com กับ traceforth.com แล้วก็ที่นี่
แต่ปกติจะเปิด tutorial แล้วพิมพ์ตามเลย
TG ที่เห็นก็คือ documentation บนเว็บ ส่วน Django จะมี djangobook.com ครับ
วิธีติดตั้ง django คือแตกไฟล์ แล้วพิมพ์
python setup.py install
ไม่ต่างกัน
อันนี้ต้องว่าหน่อยแล้ว เพราะการเขียนโปรแกรมไม่ใช่งานตัดอ้อย ถ้าไม่เข้าใจไปฟันมั่วๆก็เสียแรงเปล่า ลองเสียเวลาสักวัน นั่งอ่านนั่งแปลทำความเข้าใจก่อน ใจเย็นๆ แล้วจะเข้ารูปเข้ารอยเองครับ สู้ต่อไป
ฟันอ้อยง่ายกว่าเยอะ
อ้อยใหน??
น่าจะลองหัด setup บน vmware หรือ virtualbox นะ ลงทุกอย่างเสร็จก็ snapshot ซักที
ถ้าไม่แน่ใจว่าผิดถูกก็ revert กลับมาใช้ของเก่าแล้วทำใหม่ จะได้ไม่ต้องเสียเวลาลงใหม่บ่อยๆ
เหรอครับ ตอนแรกกว่าว่าจะใช้ Django เหมือนกันแต่เข้าไปดูในเว็บของ Django เอง ไม่เห็นมีตัวโปรแกรมที่ดาวน์โหลดสำหรับติดตั้งบน window เลย เห็นมีแต่ติดตั้งบน linux .tar.gz ถ้ายังไงขอลิงค์ด้วยนะครับ
ก็ตัวนั้นแหละครับ มันคือ compressed archive file เอามาแล้วขยายด้วย 7-zip บน windows ได้ครับ
หรือง่ายกว่านั้น ลง python + setuptools แล้วสั่ง
easy_install Django==1.0.2-final