SSL ของ cloudflare

SSL ใน CloudFlare มีสามแบบตามรูปนี้

อธิบายตามรูปก็ตามนี้

Flexible SSL
เข้ารหัสระหว่าง USER กับ CloudFlare แต่ระหว่าง CloudFlare กับ Server ไม่ต้องมี SSL
ใช้ SSL ของ CloudFlare เลย

Full SSL
เข้ารหัสระหว่าง USER กับ CloudFlare และ CloudFlare กับ Server
ต้องมี SSL ใน Server แต่ Cloudflare จะไม่สน Cert ใน Server อาจจะเป็น Cert แบบแชร์ก็ได้

Full SSL (stict)
เข้ารหัสระหว่าง USER กับ CloudFlare และ CloudFlare กับ Server
SSL ต้องมี Cert ที่ตรวจสอบได้จริงและยังไม่หมดอายุ

ปกติใน CloudFlare จะเปิด SSL ให้อยู่แล้ว แค่เพิ่ม page rule เข้าไปแค่นั้น ก็ใช้งานได้แล้ว

ตัวอย่างเพิ่ม page rule เพื่อเปิด SSL โดยที่ Server ไม่มี SSL

show hidden file ใน dreamviewer

ปกติผมจะใช้ dreamviewer แค่ cs4 ในการเขียนเว็บ เมื่อไม่กี่วันมานี้ได้คอมเครื่องใหม่มา ก็เลยอยากสนับสนุนของแท้ซะหน่อย (แบบ trial ก่อนนะ) เลยโหลด cc มาละซะ แล้วบางไฟล์ใน server มันจะถูกซ่อนไว้ (เป็นปกติ) คราวนี้คลำกันนานเลย เข้าเมนูนู้นนี่นั้น ก็หาไม่เจอซะที สุดท้ายกดไปกดมาก็เจอง่ายๆ ตามรูปเลย

เสียเวลาไป 2 ชั่วโมง เพื่อปุ่มนี้ปุ่มเดียวเลย

HDD External ตัวแรกในชีวิต

ปกติผมจะใช้ Flash Drive หรือไม่ก็เขียนข้อมูลลงแผ่น DVD เป็นส่วนใหญ่ แต่เดี๋ยวนี้สื่อหลายๆ อย่างมันก็เริ่มเปลี่ยนเป็นแบบ Download ทั้งนั้นแล้ว อย่าง เพลง หนัง เดี๋ยวนี้ก็เน้น Download กันซะมากกว่า ก็ได้ฤกษ์จัด External สักตัวมาไว้เก็บข้อมูลประจำบ้าน + ได้เงินจากทำโปรเจคนิดหน่อย ก็จัดมาซะ 3TB เลย เอาให้หายอยากกันไปเลยทีเดียว

นอกจากต่อ USB3 ได้แล้ว ยังต่อ LAN แชร์กันในบ้านได้อีก ถ้า HDD เจ้ง แต่กล่องไม่เจ้ง ก็ยังแกะเอา HDD ข้างในเปลี่ยนได้อีก (เห็นฝรั่งทำกัน)

ติดต่อ GPIO ของ RPi โดยใช้ python

เราสามารถใช้ RPi ควบคุมอุปกรณ์ภายนอกผ่านพอร์ท 40pin ที่ติดตั้งอยู่บน RPi ผ่านโมดูลที่มีมาให้อยู่แล้ว โดยใช้ภาษา C หรือ python ก็ได้ แล้วแต่ความถนัด ก่อนจะไปเขียนโปรแกรมลองมาดูขาต่างๆ ของ GPIO กันก่อน

ผมเลือกใช้ python ในการทดสอบแทนภาษา C เพราะ python เขียนง่ายกว่ามาก แถมเป็น interpreter ที่ไม่ต้องทำการ compile ก่อน ถ้าบรรทัดไหนเกิดข้อผิดพลาดขึ้น ก็จะมี error แสดงที่หน้าจอทันที ทำให้แก้ไขโปรแกรมได้ง่าย เหมาะแก่การหัดเขียนโปรแกรม

ก่อนอื่น ต้องติดตั้ง python และ GPIO ของ python ก่อน
ติดตั้ง python

sudo apt-get install python-dev

ติดตั้ง python-gpio

sudo apt-get install python-rpi.gpio

 

สร้างไฟล์ชื่อ blink.py

sudo nano blink.py

import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(21,GPIO.OUT)
while True:
   GPIO.output(21, True)
   sleep(1)
   GPIO.output(21, False)
   sleep(1)
GPIO.cleanup()

ต่อสายเข้า LED โดยให้ขา 40 (GPIO21) เข้าขา Anode และขา 6 (Ground) เข้าขา Cathode วิธีดูขา LED ถ้าเป็นขายาว จะเป็นขา Anode ส่วนขาสั้นจะเป็น Cathode แต่ถ้าขาถูกตัดไปแล้ว ให้ดู LED จากด้านบน ด้านที่แบนจะเป็นขา Cathode แรงดันที่ออกจาก RPi จะเป็น 3.3v ควรจะต่อ R สัก 330 โอม หรือ 560 โอม สักตัว เดี๋ยว LED จะเสียเอา

รันโปรแกรมโดยใช้คำสั่ง

sudo python blink.py

จะได้ผลลัพธ์ตามนี้


ถ้าต้องการหยุดโปรแกรมก็กด CTRL+C

ง่ายๆ เลยใช่ไหมครับ

ได้ Raspberry Pi มาฟรีทำยังไงกับมันดี

ผมได้ Raspberry Pi 2 model B (ขอเรียกว่า RPi ละกัน) มาฟรีๆ ตัวหนึ่ง ผมเคยได้ยินมาว่า เจ้า RPi ตัวนี้สามารถทำงานได้เยอะแยะมากมาย เช่นเป็นคอมพิวเตอร์ราคาถูก เอามาทำ media server หรือต่อกับ hardware ตัวอื่นๆ เป็น micro controller เลยก็มี

RPi นั้นมีส่วนประกอบที่แทบจะเป็นคอมพิวเตอร์ที่สมบูรณ์เลย ตัว RPi 2 ที่ผมได้มา เป็น System On Chip (SoC) ของ Broadcom BCM2836 ข้างในมี CPU ARM A7, GPU VideoCore IV, Ram 1GiB (แชร์กับ GPU), USB 1 port (แต่บน RPi 2 มี USB Hub ขยายเป็น 4 port ให้), HDMI เอาไว้ต่อจอ ขาดแค่ storage เท่านั้น ซึ่ง RPi 2 ก็มีช่อง micro sd เอาไว้ให้อยู่แล้ว การที่คอมพิวเตอร์จะทำงานได้ ก็ต้องมี OS เป็นตัวจัดการ การที่ไม่มี storage ในตัว ผมว่าเป็นข้อดีซะอีก เราสามารถเปลี่ยน OS หรือเตรียม OS ที่มีหลาย configuration ไว้ทำหรับงานต่างๆ ใน sd แต่ละอัน ถ้าต้องการใช้งานอันไหน ก็แค่ถอด sd ตัวเก่าออก แล้วเอาตัวใหม่ใส่เข้าไป แถมราคา sd ก็ถูกมากๆ


OS หลักของ RPi คือ Raspbian (น่าจะมาจากคำว่า Raspberry + Debian) โหลดได้จาก https://www.raspberrypi.org/downloads/ นอกจากนั้นยังมี OS เจ้าอื่นๆ ให้เลือกลงอีก แต่ผมยังไม่มีความรู้เกี่ยวกับ RPi เลย ก็เริ่มจาก Raspbian ก่อนละกัน

ไฟล์ที่โหลดมาได้จะมีนามสกุล img ก่อนจะนำไปใช้งาน ต้องทำการเขียนข้อมูลลงใน sd เสียก่อน โปรแกรมที่ใช้สำหรับ windows คือ Win32Disk Imager ถ้าเป็น mac ก็ใช้ ApplePi-Baker แทน

เสียบ sd เข้ากับคอมพิวเตอร์ sd ต้องมีขนาด 4GB ขึ้นไป แล้วเปิดโปรแกรม Win32 Disk Imager เลือกไฟล์ Raspbian

เลือก drive ของ sd ปกติถ้าเสียบ sd อันเดียว โปรแกรมจะเลือกให้อยู่แล้ว

กด Write แล้วรอสัก 5 นาที แนะนำให้ใช้ sd class 10 เพื่อความเร็วในการอ่านเขียน ราคา sd 8GB class 10 กับ class 4 ราคาต่างกันแค่หลักสิบ ถ้ามีอยู่แล้ว ใช้อันไหนก็ได้ แต่ถ้าซื้อใหม่ class 10 เท่านั้น

หลังจากเขียนไฟล์ลง sd เสร็จแล้ว ต่อจอ mouse กับ keyboard แล้วเสียบ sd เข้าไปที่ช่องด้านหลังบอร์ด RPi จากนั้นเสียสายไฟเข้าทาง micro usb


เรียบร้อย…

พอบูทเสร็จจะเข้าไปหน้า Raspberry Pi Software Configuration Tool ให้เลือก ข้อ 1.Expand Filesystem



sd อันนี้จะใช้ได้เต็มขนาด หลังจากการบูทครั้งต่อไป

ถ้าต้องการภาษาไทย ให้เลือกเมนู 4.Internationalisation Options

เลือก Change Locale

เลือก th_TH.UTF-8 UTF8

เลือก Finish

หลังจากบูทระบบใหม่ จะเข้ามาหน้า login ของ RPi ที่เหมือนๆ กับ linux ตัวอื่นๆ

login คือ pi
password คือ raspberry

ถ้าต้องการใช้งาน X Windows ทำได้โดยพิมพ์คำสั่ง startx

CPU ของ RPi มันช้ามากๆ ถ้าเทียบกับ PC ก็อย่าตั้งความหวังว่ามันจะลื่นเหมือน linux บน PC มันแค่พอใช้งานได้เท่านั้นแหละ

Raspbian มันก็คือ linux ที่ดัดแปลงมาให้ทำงานบน RPi ในการใช้งานจริง เราคงไม่ต่อ จอ mouse กับ keyboard ให้รกแน่นอน แค่ต่อสายแลนกับสายไฟสองเส้น แล้วใช้โปรแกรม putty ก็เข้าไปใช้งานได้เหมือนกัน

เปิดโปรแกรม putty แล้วใส่ ip ของ RPi ขั้นตอนการกำหนด ip ถ้าไม่ทำการ fixed ip ที่ RPi สามารถไปทำที่ router ได้ โดยกำหนด ip ผูกติดกับ mac address เลย

login คือ pi
password คือ raspberry

เท่านี้ก็ใช้งานได้แล้ว

 

เขียน htaccess ให้ข้ามใช้ SSL บางหน้า

เดี๋ยวนี้เว็บไซต์ส่วนใหญ่ที่ผมเขียน จะขอ SSL ติดไปด้วยเสมอ เวลาเข้าเว็บที่มี SSL แล้ว เราต้องเขียน htaccess เพื่อบังคับให้ใช้งานผ่าน https ตามนี้

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.cmdevhub.com/$1 [NC,R=301,L]

จากข้างบน บรรทัดสุดท้ายจะเป็นการเขียนบังคับให้ทุก request ที่เข้ามา ถูก redirect ไปที่ https ทั้งหมด

แต่บางครั้ง ถ้าเราต้องการเขียนโปรแกรมให้เรียกข้อมูลผ่าน curl จะมีปัญหาทันที เราจะไม่สามารถเรียกผ่าน https ได้ วิธีแก้ปัญหาก็คือ เขียนเงื่อนไขให้ยกเว้นบาง url หรือบางไฟล์ ให้ผ่านทาง http ปกติ แค่นี้ก็จะสามารถใช้ curl ได้แล้ว

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond http://www.cmdevhub.com/loaddata.php [NC]
ใช้งาน URL ด้านบนผ่าน http เท่านั้น

RewriteCond %{SCRIPT_FILENAME} \/load\.php [NC]
ไฟล์ load.php ใช้งานได้โดยไม่ต้องผ่าน https อยู่ใน directory ใดก็ได้
RewriteRule ^(.*)$ https://www.cmdevhub.com/$1 [NC,R=301,L]

เท่านี้เราก็แก้ปัญหาเรียก curl ผ่านเว็บที่ใช้ https ได้แล้ว หวังว่าจะมีประโยชน์บ้างนะครับ

เซ็ต virtual host ใน xampp

หลังจากลง xampp แล้ว ถ้าเราต้องการเพิ่ม virtual host โดยให้ทำงานแบบแยกพอร์ท เราสามารถแก้ไขไฟล์ htconf ได้ โดยเพิ่ม

บอกว่าจะใช้พอร์ทไหนโดยเขียน จากตัวอย่างบอกว่าจะใช้พอร์ท 8001

Listen 8001

จากนั้นตั้งชื่อ host และบอกว่าไฟล์เก็บไว้ที่ไหน

<VirtualHost localhost:8001>
DocumentRoot “e:\www\test”
</VirtualHost>

เสร็จแล้วให้ทำการ save และทำการ restart apache โดยการกด stop และ start ใน xampp control panel

หลังจากเริ่ม apache ใหม่แล้ว ให้ทดลองเปิด browser แล้วพิมพ์ localhost:8001

ถ้าหากไม่มีปัญหาก็จะสามารถใช้งานไฟล์ที่อยู่ใน directory ได้ ถ้าหากเกิด error 403 แสดงว่าไม่ได้ตั้งให้ apache ใช้งาน directory อื่นได้ ให้เราไปเซ็ตค่าที่

<Directory />
AllowOverride none
Require all denied
</Directory>

เปลี่ยนเป็น

<Directory />
AllowOverride all
Require all granted
</Directory>

เท่านี้ก็จะสามารถเรียก directory ใดๆ จากในเครื่องได้แล้ว

Payment Gateway ของธนาคารในประเทศไทย

ผมเคยได้รับโปรเจคให้เขียนโปรแกรมขายของแล้วในส่วนของการจ่ายเงิน ให้ใช้ Payment Gateway ที่เป็นของธนาคารโดยตรงเลย เนื่องจากว่าค่าธรรมเนียมถูกกว่าของเว็บที่เป็นตัวกลางเช่น Paypal, Paysbuy หรือ 2C2P ก็เลยมีโอกาสได้ลองติดต่อกับธนาคารและมีข้อมูลมาแชร์กันนิดหน่อยครับ

ก่อนอื่นก็อธิบายคำว่า Payment Gateway ก่อน เว็บไซต์ที่มีการจ่ายเงินออนไลน์ตั้งแต่เว็บขายของ ไปจนถึงสายการบิน ที่มีการจองผ่านหน้าเว็บไซต์ ขั้นตอนสุดท้ายของการทำรายการก็คือการจ่ายเงิน ถ้าเป็นเมื่อก่อน ผู้ซื้ออาจจะต้องออกไปโอนเงินที่ธนาคาร หรือดีหน่อยก็เดินไปจ่ายเงินที่ 7 ระบบ Payment Gateway จึงเป็นช่องทางให้ผู้ซื้อสามารถชำระเงินจากคอมพิวเตอร์ได้เลยเพิ่มความสะดวกสบายให้กับผู้ซื้อมากขึ้น ระบบ Payment Gateway มี 2 รูปแบบคือ เชื่อมต่อกับธนาคารโดยตรง หรือ ผ่านเว็บไซต์ที่เป็นตัวกลาง เช่น Paypal ซึ่งแต่ละแบบก็มีข้อดีข้อเสียต่างกัน ตามที่เคยศึกษามาดังนี้

Continue reading

ค่า IPN ที่ได้จาก paypal

เก็บค่าไว้ดูเฉยๆ ครับ ถึงแม้ว่า Paypal จะมี REST API ออกมาแล้ว แต่ถ้าทำบนเว็บ ผมก็ยังชอบ Classic API มากกว่า อย่างน้อยมัน Redirect ไปที่ Paypal เลย ทำให้ดูเหมือนว่าเราจ่ายเงินกับ Paypal จริงๆ ทีนี้ตอนส่งค่ากลับ เราควรจะส่งค่าไปที่ IPN เพื่อทดสอบว่าที่เราจ่ายเงินไปเมื่อกี้ผ่านหรือไม่ลักษณะก็ประมาณในรูปนี้

รายละเอียดเพิ่มเติม อ่านได้จากตรงนี้เลย

https://developer.paypal.com/docs/classic/ipn/gs_IPN/

ค่าที่ส่งมาก็ตามนี้เลย

Array ( [0] => mc_gross=10.74 [1] => protection_eligibility=Ineligible [2] => payer_id=7AKYXA62JHJ28 [3] => tax=0.00 [4] => payment_date=01%3A26%3A48+Jun+29%2C+2014+PDT [5] => payment_status=Completed [6] => charset=windows-1252 [7] => first_name=POP [8] => mc_fee=0.61 [9] => notify_version=3.8 [10] => custom=1%2C+popcm82%40gmail.com [11] => payer_status=verified [12] => business=shikimasan-facilitator%40gmail.com [13] => quantity=1 [14] => payer_email=popcm82%40gmail.com [15] => verify_sign=An5ns1Kso7MWUdW4ErQKJJJ4qi4-AZ7COGevOZwhzP.I7xXBZluVjWBi [16] => txn_id=90604886TJ142822G [17] => payment_type=instant [18] => last_name=EYE [19] => receiver_email=shikimasan-facilitator%40gmail.com [20] => payment_fee=0.61 [21] => receiver_id=E6DSF6LCZKA6Y [22] => txn_type=web_accept [23] => item_name=SBOBET222+registeration [24] => mc_currency=USD [25] => item_number= [26] => residence_country=US [27] => test_ipn=1 [28] => handling_amount=0.00 [29] => transaction_subject=1%2C+popcm82%40gmail.com [30] => payment_gross=10.74 [31] => shipping=0.00 [32] => merchant_return_link=click+here [33] => auth=AAPg-EApVQ6-.mrEUuFjCtr5Ab7MQlltZSL.791sCcItxm-uIk5xClVtjyHWodt9XDb.0c29pZH9bjdstlxW8xQ ) The response from IPN was: INVALID

Windows 7 ISO จากเว็บ Microsoft

Windows 7 ถือว่าเป็น OS ที่ดีมากตัวหนึ่งของ Microsoft คอมรุ่นใหม่ๆ ไม่ว่าจะเป็น Desktop หรือ Notebook เดี๋ยวนี้โดนบังคับให้ลง Windows 7 ขึ้นไปแล้วทั้งนั้น (จริงๆ บังคับที่ Vista แต่ตัวนั้นมันเป็น 7 beta เลยไม่นับละกัน)

Microsoft ใจดี แจก Windows 7 ให้โหลดกันไปใช้งานได้ 30 วัน ถ้าอยากใช้งานต่อก็หา CD Key มาใส่กันเองนะ ไฟล์ ISO นี้สามารถใช้ Windows 7 USB/DVD Download tools เขียนลงแผ่น DVD หรือใส่ Flash drive ได้เลย

 

โหลดแล้ว อย่าลืมซื้อ CD Key แทนใส่ด้วยนะ

© 2016 CMDEVHUB

Theme by Anders NorenUp ↑