วิธีติดตั้ง Plugin ใน Redmine

บทความนี้จะมาสอนวิธีการการติดตั้ง Plugin ของ Redmine ซึ่งสามารถทำตามได้ไม่ยาก เพียงเข้าไปที่เว็บไซต์ของ Redmine Plugin ที่เป็นที่รวบรวม Plugin ไว้จำนวนมากที่ https://www.redmine.org/plugins หรือถ้าใครอยากเข้าไปดู Plugin ยอดนิยมก็สามารถเข้าไปได้ที่ https://www.redmine.org/plugins?page=1&sort=rating

สำหรับวิธีการติดตั้งนั้นปกติ Plugin แต่ละตัวก็จะขั้นตอนการติดตั้งบอกเรามาในไฟล์ Readme หรือบอกขั้นตอนไว้ที่หน้าเว็บของ Plugin นั้นๆ เราก็สามารถทำตามได้ไม่ยาก ตัวอย่างสำหรับการติดตั้งในบทความนี้เราจะมาทำการติดตั้ง Plugin Redmine Code Review

โดยก่อนอื่นให้เราไปดาวโหลด Plugin Redmine Code Review ได้ที่
https://www.redmine.org/plugins/redmine_code_review

แล้วนำไฟล์ plugin ที่ได้ unzip แล้วเอาไว้ที่ folder plugins (ในตัวอย่างนี้ใช้ Bitnami redmine เราจะเอาไปวางที่ Bitnami/redmine/apps/redmine/htdocs/plugins)
จากนั้นทำการใช้ command line ไปที่ folder plugin แล้วใช้คำสั่ง rake redmine:plugins:migrate RAILS_ENV=production

หลังจาก run คำสั่งเสร็จแล้ว ก็ทำการ Restart Redmine

จากนั้นถ้าเราเข้าไปที่ Redmine ที่ menu -> Administration -> Plugin

ก็จะเห็น Redmine code review plugin ที่เราพึงติดตั้งเข้าไปก็เป็นอันจบเรียบร้อย สำหรับวิธีการติดตั้ง Plugin ของ Redmine

รวบรวม Shortcut ปุ่มลัด ที่สำคัญใน Vs code

เพื่อนๆหลายๆคนคนหน้าจะทราบว่าการใช้ Keyboard Shortcut คีย์ลัดต่างๆ ใน VS code ทำให้เราทำงานได้ไวขึ้นมีประสิทธิภาพมากขึ้น แต่ว่าบางคนก็อาจะคิดว่ามันมี Shortcut เยอะมากๆจำได้ไม่หมดหรอก เพราะฉะนั้นบทความนี้จะมา Highlight Key ที่จำเป็นใช้งานกันบ่อยๆ ที่จำเป็นจะต้องจำให้ได้ (เป็นของ Windows นะ) มาดูกัน

ใครอยากโหลดไฟล์เดิมๆเอาไปปริ้นก็สามารถโหลดได้ที่นี้
Windows https://go.microsoft.com/fwlink/?linkid=832145
macOS https://go.microsoft.com/fwlink/?linkid=832143
Linux https://go.microsoft.com/fwlink/?linkid=832144

วิธีใช้งาน Excel lookup ข้อมูลโดย INDEX

บทความนี้จะมาสอนวิธีการใช้ Function INDEX ใน Excel ซึ่ง INDEX เอาไว้ใช้ในกรณีที่เราต้องการจะทำการ lookup หรือดึงข้อมูลจากกลุ่มตารางตารางหนึ่งที่เรากำหนดไว้โดยแทนข้อมูลแต่ละ cell เป็นตำแหน่ง INDEX
Syntax ของ function Index ก็คือ INDEX(array, ค่า index,0)

ตัวอย่างการใช้งาน =INDEX(E3:E5,B3,0) กรอกเลข 3 ใน Cell B3 เพื่อ lookup ค่าอันที่ 3 ที่อยู่ใน E3:E5

นอกจากนี้ก็ยัง lookup ค่าที่อยู่ในแนวนอน row ได้ด้วย ตัวอย่างคือ =INDEX(E10:G10,B10,0) กรอกเลข 3 ใน Cell B10 เพื่อ lookup ค่าอันที่ 3 ที่อยู่ใน E10:G10

สามารถ Download ตัวอย่าง https://drive.google.com/file/d/1u-s7l2ox4Xs4sxb4DkGA8Ciy9J1a-bjq/view?usp=sharing

วิธีแสดงไฟล์ pdf ในเว็บ WordPress

ถ้าเราอยากจะให้ไฟล์ Pdf แสดงผลในเว็บหรือ Blog WordPress ของเรา จะมีวิธีไหนบางนะ บทความนี้มีคำตอบ มาดูกัน

สำหรับการทำให้ไฟล์ Pdf ของเรามาแสดงผลหรือเปิดได้อยู่ในเว็บของเรา เราเรียกอีกแบบหนึ่งว่าคือการ Embed Pdf หรือการฝัง Pdf นั้นเอง โดยหลักๆแล้วใน WordPress เราสามารถทำได้ 2 วิธีการนั้นก็คือ

วิธีที่ 1 ลง WordPress Plugin Embed Pdf สำหรับวิธีนี้เราก็ต้องไปหา Plug-in สำหรับการ Embed Pdf มาลง สำหรับ Plug-in ที่แนะนำก็คือ PDF Embedder https://wordpress.org/plugins/pdf-embedder/ เพื่อนๆสามารถไปดาวโหลดมาทดลองใช้งานกันได้ สำหรับข้อดีของวิธีนี้ก็คือเราสามารถเอาไฟล์ของเราที่แนบอยู่ในเว็บไซต์ของเราเอามาแสดงผลได้เลย จะมีกี่ไฟล์หรือขนาดใหญ่แค่ไหนก็ได้(เท่าที่ Host เราจะเก็บได้) แต่ก็มีข้อเสียนั้นก็คือเราต้องติดตั้ง Plug-in แล้วก็ต้องเก็บไฟล์ไว้ใน Host ของเรา ถ้าใครมีไฟล์เยอะๆก็จะกินพื้นที่เก็บข้อมูล

วิธีที่ 2 ใช้ Google Drive วิธีนี้ก็จะเป็นการเอาไฟล์ Pdf ของเราไปเก็บใน Google Drive เพื่อทำการ Embed Pdf iframe เอาไปแปะที่เว็บเราได้เลย ซึ่งไม่จำเป็นว่าจะต้องเป็น WordPress นอกจากนี้การใช้วิธีนี้ยังไม่จำกัดเฉพาะไฟล์ Pdf เรายังสามารถ Embed ไฟล์ Office อื่นๆที่ Google Docs รองรับ ยกตัวอย่างเช่นไฟล์เอกสาร Word ไฟล์ Excel เป็นต้น

ตัวอย่าง Embed pdf จาก Google Drive

สำหรับวิธีการ Embed ไฟล์จาก Google Drive สามารถดูวิธีการทำได้ไม่ยากโดย

หลังจากเรา upload file เข้าไปใน Google drive ให้เราคลิกขวาแล้วกดที่ share

ให้เรากดไปที่ Advanced

เราก็จะได้ ลิงค์ที่เอาไว้เปิดไฟล์ใน Google doc ให้เราเอาไปเปิดใน browser

เมื่อเปิดขึ้นมาให้เรากดไปที่สัญลักษณ์ 3 จุด ที่ขวามือบน แล้วเลือก Embed Item

เราก็จะได้โด้ด iframe ซึ่งสามารถเอาไปแปะในเว็บไซต์ หรือ wordpress ของเราได้เลย

วิธีระบุเวลาเริ่มเล่นของวิดิโอใน Youtube

เพื่อนๆทราบไหมว่าเราสามารถส่งลิงค์แบบระบุเวลาเล่นของ Youtube ได้ มาดูวิธีการระบุเวลาเล่นของ Youtube กันเลย

โดยก่อนอื่นให้เราไปที่ Youtube ที่เราต้องการจะแชร์ลิงค์ แล้วกดไปที่ Share

กำหนดเวลาที่เราต้องการ ตัวอย่างเช่นนาทีที่ 2

เราก็จะได้ลิงค์ youtube ที่เริ่มเล่น ณ นาทีที่เรากำหนด
https://youtu.be/ze5qE9Kpm-I?t=120

หรือเราสามารถใช้อีกวิธีหนึ่งก็คือใส่ &t=XmYs ต่อที่ลิงค์ของ Youtube โดย X คือ เลขนาที และ Y คือเลขวินาที
ตัวอย่างเช่น
http://www.youtube.com/watch?v=ze5qE9Kpm-I&t=2m0s

หรือกำหนดเป็น ชั่วโมงก็ได้เช่นกัน โดยใช้ &t=WhXmYs โดย W คือเลขชั่วโมง
ตัวอย่างเช่น
https://www.youtube.com/watch?v=amJ-PVB7pu8&t=1h10m10s

วิธีเปลี่ยน VS code ปุ่มลัด shortcut key ต่างๆ

ในบทความนี้ก็จะมาสอนวิธีการเปลี่ยนคีย์ลัดใน Vs code ซึ่งเพื่อนๆสามารถทำตามได้ไม่ยาก โดยเริ่มต้นให้เราไปที่ File เลือก Preferences แล้วก็สามารถเลือก เปลี่ยน Key ได้โดยเลือกที่ Keyboard Shortcuts

เมื่อเรามาที่หน้า Keyboard Shortcut แล้วก็จะมีหน้าตาดังภาพ เราสามารถเลือกเปลี่ยน key ได้ตามที่เราถนัด หากหาไม่เจอสามารถพิมพ์ลงไฟในช่องค้นหาเพื่อหาปุ่มที่เราต้องการจะเปลี่ยนได้

นอกจากนี้หากเราอยากเปลี่ยน key ลัดทั้ง Vs code ให้ไปเหมือนกับโปรแกรมอื่นๆเช่น Vim, Sublime Text หรือ Eclipse Keymap ก็สามารถทำได้เช่นกันโดยเข้าไปที่ File เลือก Preferences แล้วเลือก Keymaps เพื่อ Dowload Keymaps ตามที่เราต้องการ

และนี้ก็เป็นวิธีเปลี่ยน Keyboard shorcut และ Keymap ของ VS code หวังว่าเพื่อนๆจะนำเอาวิธีการใช้งานไปใช้ซึ่งสามารถทำตามได้ไม่ยากเลย

วิธีใช้ Google Meet นัดหมายและทำ Video conference

ในบทความนี้จะมาสอนวิธีใช้งาน Google Meet สำหรับทำการนัดหมายเพื่อประชุมงาน หรือ นัดหมายเพื่อจะทำการ Tele conference หรือ Video conference

ก่อนอื่นให้เราไปที่เว็บ Google แล้ว Login เข้าระบบไปตามปกติ แล้วสังเกตจะมีสัญลักษณ์จุดๆ ให้เรากดแล้วเลือกไปที่ calendar

แล้วทำการเลือก Create ปุ่มด้านซ้ายมือบน

ก็จะมี pop up ขึ้นมาให้เรากรอกข้อมูลเกี่ยวกับการนัดประชุม ให้เราทำการกด หากเรากดที่ More option

ให้เรากรอกข้อมูลเกี่ยวกับการ Meeting ลงไป เช่น เวลาการนัดหมาย สถานที่ หากใครต้องการทำ Video conference ก็ให้เรากดเลือกที่ Hangouts Meet ด้วย Google ก็จะทำการ Generate URL มาให้เรา

ทางด้านซ้ายมือ เราสามารถนัดคนที่จะมาเข้าร่วมประชุมได้ โดยเราสามารถพิมพ์ชื่อ Email ลงไป โดยไม่จำกัดว่าจะต้องเป็น Gmail สามารถใช้ Email ที่อื่นก็ได้ นอกจากนี้เรายังสามารถให้สิทธิกับคนที่เราเชิญเข้าประชุมสามารถเชิญคนอื่นเข้าร่วมประชุมได้ สามารถเลือกได้ที่ Invite others

หลังจากนั้นให้เรากด Save ก็จะมีหน้าต่าง Pop up ถามให้เราส่งข้อมูลให้กับคนที่เราเชิญ ให้เรากด Send และ Invite external guests ได้เลย

คนที่ได้รับเชิญก็จะได้ Email หากใครใช้ Outlook ก็จะได้ Email ดังรูป

รายชื่อมหาลัยในไทยพร้อมตัวย่อภาษาอังกฤษและไทย

รายชื่อมหาลัยในไทยพร้อมตัวย่อภาษาอังกฤษและไทยตามตารางด้านล่าง

ชื่อชื่อย่อภาษาไทยชื่อย่อภาษาอังกฤษ
สถาบันอุดมศึกษาของรัฐ
มหาวิทยาลัยกาฬสินธุ์มกสKSU
มหาวิทยาลัยนครพนมมนพNPU
มหาวิทยาลัยนราธิวาสราชนครินทร์มนรPNU
มหาวิทยาลัยนเรศวรมนNU
มหาวิทยาลัยมหาสารคามมมสMSU
มหาวิทยาลัยรามคำแหงมรRU
มหาวิทยาลัยสุโขทัยธรรมาธิราชมสธSTOU
มหาวิทยาลัยอุบลราชธานีม.อบUBU
สถาบันบัณฑิตพัฒนบริหารศาสตร์สพบNIDA
สถาบันเทคโนโลยีปทุมวันสทปPIT
มหาวิทยาลัยราชภัฏ
มหาวิทยาลัยราชภัฏกาญจนบุรีมรกจKRU
มหาวิทยาลัยราชภัฏกำแพงเพชรมรภ.กพKPRU
มหาวิทยาลัยราชภัฏจันทรเกษมมจษCRU
มหาวิทยาลัยราชภัฏชัยภูมิมชยCPRU
มหาวิทยาลัยราชภัฏเชียงรายมร.ชCRRU
มหาวิทยาลัยราชภัฏเชียงใหม่มร.ชมCMRU
มหาวิทยาลัยราชภัฏเทพสตรีมรทTRU
มหาวิทยาลัยราชภัฏธนบุรีมรธDRU
มหาวิทยาลัยราชภัฏนครปฐมมรนNPRU
มหาวิทยาลัยราชภัฏนครราชสีมามร.นมNRRU
มหาวิทยาลัยราชภัฏนครศรีธรรมราชมรนศNSTRU
มหาวิทยาลัยราชภัฏนครสวรรค์มรนวNSRU
มหาวิทยาลัยราชภัฏบ้านสมเด็จเจ้าพระยามบสBSRU
มหาวิทยาลัยราชภัฏบุรีรัมย์มรภ.บรBRU
มหาวิทยาลัยราชภัฏพระนครมรภ.พนPNRU
มหาวิทยาลัยราชภัฏพระนครศรีอยุธยามรอยARU
มหาวิทยาลัยราชภัฏพิบูลสงครามมรพสPSRU
มหาวิทยาลัยราชภัฏเพชรบุรีมรภ.พบPBRU
มหาวิทยาลัยราชภัฏเพชรบูรณ์มรพชPCRU
มหาวิทยาลัยราชภัฏภูเก็ตมรภPKRU
มหาวิทยาลัยราชภัฏมหาสารคามมรมRMU
มหาวิทยาลัยราชภัฏยะลามรยYRU
มหาวิทยาลัยราชภัฏร้อยเอ็ดม.รอRERU
มหาวิทยาลัยราชภัฏราชนครินทร์มรรRRU
มหาวิทยาลัยราชภัฏรำไพพรรณีมรรพRBRU
มหาวิทยาลัยราชภัฏลำปางมร.ลปLPRU
มหาวิทยาลัยราชภัฏเลยมรลLRU
มหาวิทยาลัยราชภัฏวไลยอลงกรณ์ ในพระบรมราชูปถัมภ์มรวVRU
มหาวิทยาลัยราชภัฏศรีสะเกษมรภ.ศกSSKRU
มหาวิทยาลัยราชภัฏสกลนครมรสนSNRU
มหาวิทยาลัยราชภัฏสงขลามรภ.สขSKRU
มหาวิทยาลัยราชภัฏสวนสุนันทามรภ.สสSSRU
มหาวิทยาลัยราชภัฏสุราษฎร์ธานีมรสSRU
มหาวิทยาลัยราชภัฏสุรินทร์ม.รภ.สรSRRU
มหาวิทยาลัยราชภัฏหมู่บ้านจอมบึงมรมจMCRU
มหาวิทยาลัยราชภัฏอุดรธานีมร.อดUDRU
มหาวิทยาลัยราชภัฏอุตรดิตถ์มรอURU
มหาวิทยาลัยราชภัฏอุบลราชธานีมรภ.อบUBRU
มหาวิทยาลัยเทคโนโลยีราชมงคล
มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพมทร.กรุงเทพRMUTK
มหาวิทยาลัยเทคโนโลยีราชมงคลตะวันออกมทร.ตะวันออกRMUTTO
มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรีมทร.ธัญบุรีRMUTT
มหาวิทยาลัยเทคโนโลยีราชมงคลพระนครมทร.พระนครRMUTP
มหาวิทยาลัยเทคโนโลยีราชมงคลรัตนโกสินทร์มทร.รัตนโกสินทร์RMUTR
มหาวิทยาลัยเทคโนโลยีราชมงคลล้านนามทร.ล้านนาRMUTL
มหาวิทยาลัยเทคโนโลยีราชมงคลศรีวิชัยมทร.ศรีวิชัยRMUTSV
มหาวิทยาลัยเทคโนโลยีราชมงคลสุวรรณภูมิมทร.สุวรรณภูมิRUS
มหาวิทยาลัยเทคโนโลยีราชมงคลอีสานมทร.อีสานRMUTI
สถาบันการศึกษาของทหารและตำรวจ
โรงเรียนนายร้อยตำรวจรร.นรตRPCA
โรงเรียนนายร้อยพระจุลจอมเกล้ารร.จปรCRMA
โรงเรียนนายเรือรร.นรRTNA
โรงเรียนนายเรืออากาศนวมินทกษัตริยาธิราชรร.นนกNKRAFA
วิทยาลัยพยาบาลกองทัพบกวพบRTANC
วิทยาลัยพยาบาลกองทัพเรือวพรRTNCN
วิทยาลัยพยาบาลตำรวจวพ.รพ.ตรNPC
วิทยาลัยพยาบาลทหารอากาศวพอRTAFNC
วิทยาลัยแพทยศาสตร์พระมงกุฎเกล้าวพมPCM
สถาบันอุดมศึกษาในกำกับของรัฐ
จุฬาลงกรณ์มหาวิทยาลัยจฬCU
มหาวิทยาลัยเกษตรศาสตร์มกKU
มหาวิทยาลัยขอนแก่นมขKKU
มหาวิทยาลัยเชียงใหม่มชCMU
มหาวิทยาลัยทักษิณมทษTSU
มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรีมจธKMUTT
มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือมจพKMUTNB
มหาวิทยาลัยเทคโนโลยีสุรนารีมทสSUT
มหาวิทยาลัยธรรมศาสตร์มธTU
มหาวิทยาลัยนวมินทราธิราชนมรNMU
มหาวิทยาลัยบูรพามบBUU
มหาวิทยาลัยพะเยามพUP
มหาวิทยาลัยมหาจุฬาลงกรณราชวิทยาลัยมจรMCU
มหาวิทยาลัยมหามกุฏราชวิทยาลัยมมรMBU
มหาวิทยาลัยมหิดลMU
มหาวิทยาลัยแม่โจ้มจMJU
มหาวิทยาลัยแม่ฟ้าหลวงมฟลMFU
มหาวิทยาลัยวลัยลักษณ์มวลWU
มหาวิทยาลัยศรีนครินทรวิโรฒมศวSWU
มหาวิทยาลัยศิลปากรมศกSU
มหาวิทยาลัยสงขลานครินทร์ม.อPSU
มหาวิทยาลัยสวนดุสิตมสดSDU
สถาบัน
สถาบันการพยาบาลศรีสวรินทิรา สภากาชาดไทยSTIN
สถาบันดนตรีกัลยาณิวัฒนาสกวPGVIM
สถาบันเทคโนโลยีจิตรลดาสจดCDTI
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบังสจลKMITL
สถาบันบัณฑิตศึกษาจุฬาภรณ์ (สังกัดราชวิทยาลัยจุฬาภรณ์)สบจCGI
สถาบันบัณฑิตพัฒนบริหารศาสตร์สพบNIDA
วิทยาลัย
วิทยาลัยวิทยาศาสตร์การแพทย์เจ้าฟ้าจุฬาภรณ์ (สังกัดราชวิทยาลัยจุฬาภรณ์)PCCMS
สถาบันอุดมศึกษาเอกชน
มหาวิทยาลัยกรุงเทพมกทBU
มหาวิทยาลัยกรุงเทพธนบุรีมกธBTU
มหาวิทยาลัยกรุงเทพสุวรรณภูมิมกสBSU
มหาวิทยาลัยการจัดการและเทคโนโลยีอีสเทิร์นมจทอUMT
มหาวิทยาลัยเกริกม.กรKRU
มหาวิทยาลัยเกษมบัณฑิตมกบKBU
มหาวิทยาลัยคริสเตียนม.ค.ตC.U.T.
มหาวิทยาลัยเฉลิมกาญจนามฉนCNU
มหาวิทยาลัยตาปีมตปTPU
มหาวิทยาลัยเจ้าพระยามจพCPU
มหาวิทยาลัยชินวัตรมชวSIU
มหาวิทยาลัยเซนต์จอห์นมซจSJU
มหาวิทยาลัยเทคโนโลยีมหานครมทมMUT
มหาวิทยาลัยธนบุรีมธรTRU
มหาวิทยาลัยธุรกิจบัณฑิตย์มธบDPU
มหาวิทยาลัยนอร์ทกรุงเทพมนกNBU
มหาวิทยาลัยนอร์ท-เชียงใหม่มนชNCU
มหาวิทยาลัยนานาชาติแสตมฟอร์ดมนชสSTIU
มหาวิทยาลัยนานาชาติเอเชีย-แปซิฟิกม.น.อAIU
มหาวิทยาลัยเนชั่นมนชNTU
มหาวิทยาลัยปทุมธานีม.ป.ทPTU
มหาวิทยาลัยพายัพมพยPYU
มหาวิทยาลัยพิษณุโลกมพลPLU
มหาวิทยาลัยฟาฏอนีมฟนFTU
มหาวิทยาลัยฟาร์อีสเทอร์นม.ฟ.อFEU
มหาวิทยาลัยภาคกลางม.ภกUCT
มหาวิทยาลัยภาคตะวันออกเฉียงเหนือม.ภ.นNEU
มหาวิทยาลัยรังสิตมรสRSU
มหาวิทยาลัยรัตนบัณฑิตมรบRBAC
มหาวิทยาลัยราชธานีมรธRTU
มหาวิทยาลัยราชพฤกษ์มรพRPU
มหาวิทยาลัยวงษ์ชวลิตกุลมวVU
มหาวิทยาลัยเว็บสเตอร์ (ประเทศไทย)ม.ว.ทWTUT
มหาวิทยาลัยเวสเทิร์นมทWTU
มหาวิทยาลัยศรีปทุมมศปSPU
มหาวิทยาลัยสยามมสSU
มหาวิทยาลัยหอการค้าไทยมกคUTCC
มหาวิทยาลัยหัวเฉียวเฉลิมพระเกียรติม.ฉ.กHCU
มหาวิทยาลัยหาดใหญ่ม.ญHU
มหาวิทยาลัยอัสสัมชัญมอชAU
มหาวิทยาลัยอีสเทิร์นเอเชียมวอEAU
มหาวิทยาลัยเอเชียอาคเนย์ม.อ.อSAU
สถาบัน
สถาบันกันตนาสกนKI
สถาบันการจัดการปัญญาภิวัฒน์สจปPIM
สถาบันวิทยาการจัดการแห่งแปซิฟิคส.ว.ปPIMS
สถาบันการเรียนรู้เพื่อปวงชนสรพLIFE
สถาบันเทคโนโลยีไทย-ญี่ปุ่นสทญTNI
สถาบันเทคโนโลยียานยนต์มหาชัยสทมMIAT
สถาบันเทคโนโลยีแห่งสุวรรณภูมิสทสSVIT
สถาบันรัชต์ภาคย์ส.รภRPI
สถาบันวิทยาการประกอบการแห่งอโยธยาสวอIESA
สถาบันวิทยสิริเมธีสวสธVISTEC
สถาบันอาศรมศิลป์อ.ศAS
วิทยาลัย
วิทยาลัยเฉลิมกาญจนาระยองวฉกCKC
วิทยาลัยเชียงรายวชรCRC
วิทยาลัยเซนต์หลุยส์ว.ซลSLC
วิทยาลัยเซาธ์อีสท์บางกอกซ.อ.บSBC
วิทยาลัยดุสิตธานีวดธDTC
วิทยาลัยทองสุขว.ทTSC
วิทยาลัยเทคโนโลยีพนมวันท์วทพPCT
วิทยาลัยเทคโนโลยีภาคใต้วทตSCT
วิทยาลัยเทคโนโลยีสยามวทสSTC
วิทยาลัยนครราชสีมาวนมNMC
วิทยาลัยนอร์ทเทิร์นวนทNTC
วิทยาลัยนานาชาติเซนต์เทเรซาวนทSTIC
วิทยาลัยนานาชาติราฟเฟิลส์วนรRIC
วิทยาลัยบัณฑิตเอเซียว.บ.อCAS
วิทยาลัยพิชญบัณฑิตพญบPCBC
วิทยาลัยพุทธศาสนานานาชาติว.พ.นIBC
วิทยาลัยสันตพลวสพSTC
วิทยาลัยแสงธรรมวสSTC
วิทยาลัยอินเตอร์เทคลำปางว.อ.ทLIT
สถาบันอุดมศึกษาอิสระนานาชาติ
สถาบันเทคโนโลยีแห่งเอเซียAIT
สถาบันอุดมศึกษาที่มีศักยภาพสูงจากต่างประเทศ
มหาวิทยาลัยซีเอ็มเคแอลมซคCMKL U
มหาวิทยาลัยอมตะมอมATU

วิธีแก้ปัญหา Ruby Error เกี่ยวกับ SSL certificate

สำหรับใครที่ใช้คำสั่ง bundle install ใน Ruby แล้วเจอ Error เกี่ยวกับ SSL certificate แบบนี้ จะแก้ยังไงดี มาอ่านบทความนี้แล้วทำตามได้เลยจ้า

ตัวอย่าง error ที่หลายๆคนจะเจอก็เป็นแบบนี้

C:\Bitnami\redmine\apps\redmine\htdocs\plugins>bundle install
Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`.
Fetching source index from https://rubygems.org/
Retrying source fetch due to error (2/3): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying source fetch due to error (3/3): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most
likely your system doesn't have the CA certificates needed for verification. For
information about OpenSSL certificates, see bit.ly/ruby-ssl. To connect without
using SSL, edit your Gemfile sources and change 'https' to 'http'.

ทำไม เนื่องจากเจ้า Ruby ในส่วนของ net/http library นั้นไม่ได้ทำการตรวจสอบ SSL certificate ในระหว่าง TLS handshake

วิธีแก้ไข ก็คือเราจะทำการเอา certificate ที่ตรวจสอบแล้วจากเว็บของ curl มาใช้แทน

โดยก่อนอื่นให้ทำการติดตั้ง RailsInstaller สำหรับใครที่ติดตั้งแล้วก็ข้ามขั้นตอนนี้ไปได้เลย
http://railsinstaller.org/en

หลังจากติดตั้งเสร็จแล้ว เราก็มา Download เจ้า cacert.pem จาก curl website http://curl.haxx.se/ca/ แล้วเราก็เอาไฟล์ cacert.pem ไปวางไว้ที่ C:\RailsInstaller\cacert.pem

เสร็จแล้วก็เรียกคำสั่ง
set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

C:\Bitnami\redmine\apps\redmine\htdocs\plugins>set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

หลังจากนั้นลองใช้คำสั่ง bundle install ดู ก็จะไม่พบปัญหา Error อีกแล้วดังตัวอย่าง ด้านล่าง ก็เป็นอันจบพิธีสำหรับการแก้ไขปัญหา SSL certificate ของ ruby

ตัวอย่าง bundle install หลังจากลง certificate แล้ว ก็จะลงได้ปกติ

C:\Bitnami\redmine\apps\redmine\htdocs\plugins>bundle install
Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`.
Fetching gem metadata from https://rubygems.org/..............
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies.....
Using rake 10.4.2
...
Using thin 1.6.1
Using tzinfo-data 1.2015.1
Updating files in vendor/cache
  * liquid-2.6.3.gem
  * rubyzip-1.1.7.gem
  * redmine_crm-0.0.53.gem
Bundle complete! 32 Gemfile dependencies, 56 gems now installed.
Gems in the groups development, test and RAILS_ENV=production were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

ข้อมูลอ้างอิงจาก
https://gist.github.com/fnichol/867550