How To Install web.py in XAMPP

web.py คืออะไร

มันคือ Framework สำหรับการเขียนเว็บด้วยภาษา python คล้ายๆ PHP ครับ สามารถเข้าไปดูเพิ่มเติมได้ที่นี่ ถามว่าทำไมเราไม่ใช้ php ไปล่ะ คำตอบคือ Python เป็นภาษาที่ค่อนข้างง่ายสำหรับมือใหม่ ไม่สลับซับซ้อน มีการบังคับให้จัดรูปแบบให้สวยงาม เหมาะสำหรับมือใหม่มาก แล้วถามว่ามันมีข้อเสียไหม ณ ตอนนี้ที่เริ่มศึกษามันช้ากว่า php เป็น 100 เท่า ซึ่งผมพอเดาได้ว่าผลมากจากไหน คาดว่ามาจาก Zend Engine คงจะไป Optimize อะไรสักอย่างให้ครับ แล้วตัว py ยังไม่ได้ compile มันเลยช้า วิธีนี้เป็นวิธีบน Ubuntu นะครับ ถ้าใช้บน Windows ก็ต้องปรับเอานิดหน่อย ถ้าไม่ได้จริงๆก็ถามได้ครับ เดี๋ยวลองไปหาข้อมูลให้

แล้วเราจะลง web.py ใส่ XAMPP ได้ยังไงล่ะ?

ก่อนอื่นเราต้องลง web.py ก่อน

หากต้องการข้อมูลล่าสุด คลิกที่นี่ครับ

  1. เปิด Terminal
  2. สั่ง wget -O webpy.tar.gz https://github.com/webpy/webpy/tarball/master
  3. สั่ง tar zxvf webpy.tar.gz
  4. sudo python setup.py install

การปรับให้ใช้กับ XAMPP ได้

ต้องลง XAMPP ก่อน โดยสามารถหาวิธีได้จากที่นี่ครับ

  1. สร้าง folder ที่ต้างการใน /opt/lampp/htdocs/ เช่น webpy แล้วเข้า folder นั้น
  2. สร้าง .htaccess ขึ้นมา มีเนื้อหาดังนี้
    Options +ExecCGI
    AddHandler cgi-script .py

ทดสอบการทำงาน

  1. สร้าง file ชื่ออะไรก็ได้ เช่น code.py
  2. ใส่เนื้อหาดังนี้
    #!/usr/bin/env python
    import web
    urls = (
        '/(.*)', 'hello'
    )
    app = web.application(urls, globals())
    class hello:        
        def GET(self, name):
            if not name: 
                name = 'World'
            return 'Hello, ' + name + '!'
    if __name__ == "__main__":
        #app.run()
        app.cgirun()
  3. ลองเข้าหน้าเว็บนั้นเช่น http://127.0.0.1/webpy/code.py/MIX

จบครับ

XAMPP เข้า phpMyAdmin ไม่ได้ ติด Error 403 Access forbidden!

อันนี้ผมไม่รู้ว่าเป็นเฉพาะ Ubuntu รึเปล่านะครับ แต่ถ้าหากใครประสบปัญหาเข้า phpMyAdmin ของ XAMPP แล้วเจอหน้า Error 403 Access forbidden! เรามีวิธีแก้ดังนี้ครับ

ตกลงกันก่อน

ถ้าผมพูดถึงโฟลเดอร์ config จะหมายถึง

  • ใน linux จะหมายถึง /opt/lampp/etc/
  • ใน windows จะหมายถึง xampp/apache/conf

ตามแบบฉบับทั่วๆไปที่หาเจอ

  1. ให้ใช้โปรแกรม text editor เช่น notepad,notepad++,geany เปิดไฟล์ extra/httpd-xampp.conf ที่อยู่ในโฟลเดอร์ config
    ประมาณว่า /opt/lampp/etc/extra/httpd-xampp.conf
    หรือ C:\XAMPP\apache\conf\extra\httpd-xampp.conf
  2. เลื่อนไปล่างสุดเราจะเจอ
    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    	Order deny,allow
    	Deny from all
    	Allow from ::1 127.0.0.0/8 \
    		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
    		fe80::/10 169.254.0.0/16
    
    	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </LocationMatch>

    ให้เราแก้เป็น

    #<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    #	Order deny,allow
    #	Deny from all
    #	Allow from ::1 127.0.0.0/8 \
    #		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
    #		fe80::/10 169.254.0.0/16
    #
    #	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    #</LocationMatch>

    (ใส่ # ไปข้างหน้าของทุกบรรทัด)

  3. Save แล้ว restart apache ใหม่ แล้วลองเข้าดู

อธิบายเพิ่มเติมที่แก้ httpd-xampp.conf

ส่วนที่ให้แก้คือส่วน ที่บอกว่าหากเข้า folder ที่ชื่อว่า xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info ( | หมายถึงหรือ) ให้ทำการปิดกั้นการเข้าถึงทั้งหมด อนุญาติเฉพาะ IP ที่เป็นเครื่องตัวเอง (127.0.0.1,::1) หรือเครื่องที่เป็นภายในเครือข่ายเดียวกันเท่านั้น (โดยทั่วไปคือน้ำหน้าด้วย 10.0.*,172.16.*,169.254.* และ 192.168.*)

แล้วถ้าไม่ได้ผล ผมแนะนำวิธีนี้แทนครับ

  1. ให้ใช้โปรแกรม text editor เช่น notepad,notepad++,geany เปิดไฟล์ extra/httpd-xampp.conf ที่อยู่ในโฟลเดอร์ config
  2. ให้แก้ส่วนล่างสุดจากวิธีด้านบนกลับให้เป็นเหมือนเดิม(คือเอา # หน้าบรรทัดออก)
  3. ก่อนบรรทัด
    </LocationMatch>

    ให้เพิ่มบรรนี้ลงไปครับ

    Require all granted

    จะได้เป็นแบบนี้ครับ

    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
            Order deny,allow
            Deny from all
            Allow from ::1 127.0.0.0/8 \
                    fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
                    fe80::/10 169.254.0.0/16
    
            ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
            Require all granted
    </LocationMatch>
  4. Save Restart Apache แล้วลองเข้าใหม่ดูครับ

XAMPP ไม่สามารลงบน Ubuntu Linux แบบ 64 Bits ได้

สำหรับท่านใดที่ลง XAMPP บน Ubuntu หรือ Linux 64 bits  แล้วไม่สามารถสั่ง start ได้ จะต้องลง package เพิ่มนะครับ วิธีลงก็ตามนี้เลยครับ

สำหรับสาย Debian

sudo apt-get install ia32-libs

หรือหากเป็นสาย Redhat หรือ CentOS

sudo yum install glibc*