แสดงบทความที่มีป้ายกำกับ Web Server แสดงบทความทั้งหมด

วันอาทิตย์ที่ 14 มิถุนายน พ.ศ. 2558

[HOW TO] LINE Bot on Raspberry PI with LINE API Python

[HOW TO] LINE Bot on Raspberry PI with LINE API Python   

1. ทำการอัพเดท packet ของ raspbian ก่อน
sudo apt-get install update
sudo apt-get install upgrade
 2. ซึ่ง [LINE API Python] จำเป็นต้องลง packet python 
sudo apt-get install python
sudo apt-get install python-pip
3. ทำการ download [LINE API Python] จาก https://github.com/carpedm20/LINE ในนี้จะมีทั้งวิธีใช้ด้วย
wget https://github.com/carpedm20/LINE/archive/master.zip
unzip master.zip
cd LINE-master/
4. ทำการแก้ไข ไฟล์ api.py ให้สามารถเชื่อมต่อกับ server หลักได้
ทำการเพิ่ม สคริป ภายใต้
def ready(self):
  """
  After login, make `client` and `client_in` instance
  to communicate with LINE server
  """
เอาเครื่องหมาย + ออกด้วย
+        self.transport = THttpClient.THttpClient(self.LINE_HTTP_URL)
 +        self.transport_in = THttpClient.THttpClient(self.LINE_HTTP_IN_URL)
 +        self.transport.setCustomHeaders(self._headers)
 +        self.transport_in.setCustomHeaders(self._headers)
 +        self.protocol = TCompactProtocol.TCompactProtocol(self.transport)
 +        self.protocol_in = TCompactProtocol.TCompactProtocol(self.transport_in)
 +        self._client = CurveThrift.Client(self.protocol)
 +        self._client_in = CurveThrift.Client(self.protocol_in)
 +        self.transport.open()
 +        self.transport_in.open()

5. ทำการรันไฟล์ config.py และ ติดตั้งด้วย setup.py
python config.py
python setup.py install

6. หากไม่มี Error  ใดๆในการติดตั้ง ให้ทดลองการส่งข้อความด้วยไฟล์ echobot.py ใน examples (อย่าลืมเข้าไปแก้ไฟล์ โดยการใส่ ID และ Pass ด้วยนะครับ)
vi echobot.py



เพิ่มเติม script checks status
vi check.py
import subprocess
from line import LineClient, LineGroup, LineContact

try:
    client = LineClient("ID", "PASS")
    #client = LineClient(authToken="TOKEN")
except:
    print "Login Failed"

while True:
    op_list = []

    for op in client.longPoll():
        op_list.append(op)

    for op in op_list:
        sender   = op[0]
        receiver = op[1]
        message  = op[2]

        msg = message.text
        if 'GetRAM' in msg:
                proc=subprocess.Popen('egrep --color "Mem|Cache|Swap" /proc/meminfo', shell=True, stdout=subprocess.PIPE, )
                output=proc.communicate()[0]
                sender.sendMessage("[%s] %s" % (sender.name, output))

        if 'GetDATE' in msg:
                proc=subprocess.Popen('date', shell=True, stdout=subprocess.PIPE, )
                output=proc.communicate()[0]
                sender.sendMessage("[%s] %s" % (sender.name, output))

        if 'GetKERNAL' in msg:
                proc=subprocess.Popen('uname -a', shell=True, stdout=subprocess.PIPE, )
                output=proc.communicate()[0]
                sender.sendMessage("[%s] %s" % (sender.name, output))


ขอบคุณ Api ดีๆจาก https://github.com/carpedm20/LINE
เครดิต : ตาเล็ก วินโด้

วันพฤหัสบดีที่ 12 ธันวาคม พ.ศ. 2556

[HOW TO] Install Web Server on Ubuntu

ขั้นตอนการติดตั้ง Web Server
1.ทำการติดตั้ง Apache2 ด้วยคำสั่ง 
$ sudo apt-get install apache2

ใส่ Password แล้วตอบ Y
จะขึ้น [ OK ]

2.เมื่อเสร็จแล้วให้ติดตั้ง php5 ด้วยคำสั่ง
$  sudo  apt-get install php5




3.เมื่อเสร็จแล้วให้ทำการติดตั้ง  MySQL ด้วยคำสั่ง
$  sudo apt-get install mysql-server

ซักพักมันจะให้เราใส่ Password และ Repeat password 


4. ทำการติดตั้ง phpmyadmin ด้วยคำสั่ง 
$ sudo apt-get install phpmyadmin


หมายเหตุ : phpMyAdmin เป็นโปรแกรมประเภท mySQL Client ตัวหนึ่งที่ใช้ในการจัดการฐานข้อมูล mySQL ผ่านบราวเซอร์ได้โดยตรง


เลือก apache2 (กด specbarเพื่อเลือก,กด tab เพื่อเลื่อน)

ตอบ yes

ใส่พาสเวิร์ดของ Admin ในการใช้งาน database

ใส่พาสเวิร์ดของ Admin ในการใช้งาน mysql

ยืนยัน Password

เป็นอันเสร็จ


ทำการทดสอบ
1. ทดสอบการทำงานของ apache2 โดยใช้คำสั่ง
$ netstat -lnt 

เพื่อดูสถานะการเชื่อมต่อของเครื่อง

ถ้า TCP มีการใช้งาน port :80 และมีสถานะ LISTEN  ถือว่าใช้งานได้ (สามารถดูรายละเอียดของคำสั่งต่างๆได้โดยใช้ทำสั่ง  man <command>)
ต่อมาเป็นการทดสอบ การทำงานบนเครื่อง client โดยนำ IP ของเครื่อง เซิร์ฟเวอร์ไปใส่ใน URL browser ของเครื่อง client

ตรวจสอบ IP ของเครื่องเซิร์ฟเวอร์ได้โดยใช้คำสั่ง  
$ ifconfig



และนำ IP ที่ได้ไปวางบน URL ของ browser ของเครื่อง Client  ถ้ามีคำว่า It  works!  ก็ผ่าน

2.ทำการทดสอบการทำงานของ PHP เราต้องสร้าง file ทดสอบขึ้นมาชื่อ testweb.php
โดยการใช้คำสั่ง
$ sudo vi /var/www/testweb.php  


พิมพ์คำสั่ง    และทำการ save
<?php
phpinfo();
?>


ต่อมาเปิดให้ apache2 ใช้งาน php ด้วยคำสั่ง
$ sudo a2enmod php5


ต่อมาให้แก้ไฟล์ /etc/apache2/apache2.conf โดยใช้คำสั่ง 
$ sudo vi /etc/apache2/apache2.conf 


และไปเพิ่มบรรทัดล่างสุดว่า servername ตามด้วยชื่อhostname ของตัวเอง

*สามารถตรวจสอบชื่อ hostname ด้วยคำสั่ง 
$hostname


และทำการ restart  apache2 ด้วยคำสั่ง 
$ sudo /etc/init.d/apache2 restart หรือ $ sudo service apache2 restart



ทำการตรวจสอบการทำงานของ php โดยพิมพ์ IP/ชื่อไฟล์ที่เราสร้าง จากbrowser ของเครื่อง Client
 ในที่นี้จะเป็น 192.168.23.129/testweb.php

สุดท้ายทำการทดสอบการทำงานของ phpmyadmin จากเครื่อง Client ด้วย IP/phpmyadmin ในที่นี้จะเป็น 192.168.23.129/phpmyadmin

ลองใส่ Username และ Password ลงไปเพื่อทดสอบการใช้งาน

3.ทดสอบการทำงานของ mysql โดยใช้คำสั่ง
$ mysql -u root -p

และกรอกพาสเวิร์ดลงไป