Author: grianggrai.n

  • PSU One Passport (Authentik)

    PSU One Passport (Authentik)

    • PSU One Passport (Authentik) เป็นระบบล็อคอิน แบบใหม่ที่ ระบบเงินเดือน มหาวิทยาลัยสงขลานครินทร์ “ต้องใช้” เพื่อเพิ่มความปลอดภัย ซึ่งระบบล็อคอินนี้ได้ประกาศใช้งานมาเป็นระยะเวลาหนึ่งแล้ว ตั้งแต่ 2 พฤศจิกายน 2567
    • หน้าตาเป็นดังภาพ

    คลิก “ลงชื่อเข้าใช้ด้วย PSU PASSPORT” จะได้หน้าดังภาพ

    เมื่อได้หน้านี้มี 2 ทางเลือกคือ

    1. กรอก Username ของ PSU Passport ลงไปแล้วคลิก Log in
    1. กรอกรหัสผ่านของ PSU Passport ลงไปคลิก Continue
    1. !!สำคัญมาก ให้คลิกเลือกคำว่า “TOTP Device” จะได้ QR Code ดังภาพ
    1. ให้ใช้โปรแกรมจำพวก Authenticator มาสแกน QR Code ดังกล่าวซึ่งโปรแกรมที่เรามีทุกคนอยู่แล้วคือ Microsoft Authenticator นั่นเอง!!!
    1. ในโทรศัพท์จิ้มเครื่องหมาย + (บวก) เลือก Other (Google, Facebook, etc.)
    1. ทำการสแกน QR Code ในข้อ 3. จะได้ PSU One Passport เพิ่มเข้ามาดังภาพ
    1. กลับมาที่ Browser ในคอมพิวเตอร์ให้เลื่อนจอลงมาล่างสุดในหน้าที่มี QR Code จะมีช่องให้ใส่ Code *
    1. ให้นำ Code จาก PSU One Passport ใน App Microsoft Authenticator มาใส่ โดยคลิกที่ คำว่า PSU One Passport จะปรากฎเลข 6 หลัก
    1. นำเลขมาใส่ในช่อง Code * แล้วกด Continue
    1. จะสามารถเข้าระบบที่ใช้งาน Authentik ในการเข้าระบบได้ ในที่นี้คือ https://payroll.urmo.psu.ac.th
    1. จะได้หน้าล็อคอินเข้าระบบอีเมล ของมหาวิทยาลัย

    1. กรอกชื่อบัญชีอีเมลมหาวิทยลัยลงไปแล้วคลิก Next
    1. บางคนจะได้หน้า Approve sign in ที่ปรากฎเลขสองหลัก ให้นำเลขสองหลักไปใส่ใน App Microsoft Authenticator แล้วกดอนุมัติ
    1. หรือบางคนจะได้หน้ากรอกรหัสผ่าน ก็ให้ใส่รหัสผ่านของอีเมลลงไปแล้วจะได้หน้าในข้อที่ 3 เช่นเดียวกัน
    2. นำเลขที่ได้มาใส่ในมือถือ แล้วกด Yes แล้วใส่รหัสปลดล็อคมือถือ (หรือ สแกนนิ้วมือ สแกนหน้า)
    1. จะได้ดังภาพ
    1. ตอบ Yes ได้ถ้าเป็นเครื่องส่วนตัว ถ้าไม่ใช่เครื่องส่วนตัวให้ตอบ No
    2. เข้าระบบได้เรียบร้อย
    3. ถ้าไม่เคยตั้งค่าไมโครซอฟท์ออเทนติเคเตอร์ ให้ทำการตั้งค่าก่อน ตามคู่มือที่ https://sysadmin.psu.ac.th/microsoft-authenticator/
    • ซึ่งแนะนำให้ใช้วิธีที่ 2 ดีกว่า เนื่องจากไม่ต้องตั้งค่าอะไรเพิ่มเติมอีก
  • ทำความรู้จักกับ Outlook บนเว็บ

    ทำความรู้จักกับ Outlook บนเว็บ

    Outlook เป็นเครื่องมือจัดการอีเมลและปฏิทินที่ทรงพลัง ซึ่งช่วยให้คุณมีระเบียบและเพิ่มความสามารถในการทำงาน ด้วยอินเทอร์เฟซที่ใช้งานง่าย คุณสามารถจัดการกล่องขาเข้าของคุณ นัดหมาย และทำงานร่วมกับเพื่อนร่วมงานได้อย่างง่ายดาย ฟีเจอร์ที่แข็งแกร่งของ Outlook รวมถึงแม่แบบอีเมลที่ปรับแต่งได้ ความสามารถในการค้นหาขั้นสูง และการผสานรวมที่ไร้รอยต่อกับแอปพลิเคชัน Microsoft Office อื่นๆ ไม่ว่าคุณจะเป็นมืออาชีพที่ยุ่งอยู่หรือเป็นนักเรียนที่ต้องจัดการกับภารกิจหลายอย่าง Outlook ให้เครื่องมือที่คุณต้องการในการปรับปรุงการทำงานและควบคุมงานต่างๆ ของคุณได้อย่างมีประสิทธิภาพ (ChatGPT)

    1. เริ่มใช้งาน
    https://email.psu.ac.th
    https://outlook.office.com
    https://outlook.com/email.psu.ac.th
    1. การล็อคอินเข้าใช้งานต้องมีการยืนยันตัวตนหลายปัจจัย สามารถทำตามคู่มือได้ที่ https://sysadmin.psu.ac.th/2022/11/04/microsoft-authenticator/
    2. หากไม่สามารถยืนยันตัวตนหลายปัจจัยได้ ติดต่อ หมายเลขโทรศัพท์ภายใน 2082 หรือ 074-282082
    3. เมื่อล็อคอินเข้ามาได้แล้วจะได้หน้าตาแบบนี้
    1. ข้อจํากัดสําหรับสมาชิก Microsoft 365 คือ:
      • ส่งอีเมลออกได้: 5,000 ฉบับต่อวัน
      • ผู้รับสูงสุดต่อข้อความ: 500
      • ผู้รับที่ไม่ใช่ความสัมพันธ์รายวัน: 1,000
      • แนบไฟล์ ขนาด 25 MB
      • แนบไฟล์ผ่าน OneDrive 2GB
    2. ตรวจสอบโควต้าอีเมล์
      • เปิด Settings โดยการคลิกรูปเฟือง ที่มุมบนขวาจะได้หน้าต่าง Settings
    1. เลือก Account ต่อด้วย Storage ดังภาพ

    ก็จะเห็นขนาดพื้นที่ ที่ใช้งานอยู่

    อ้างอิง

    ขีดจำกัดใน Outlook

    ทำความรู้จักกับ outlook บนเว็บ

    เริ่มต้นใช้งานที่ microsoft365 com

    เรียนรู้เพิ่มเติมเกี่ยวกับ outlook บนเว็บ

  • Firewalld, firewall management tool for RedHat-based distributions

    แบบด่วนๆ เลยนะ

    1. ล็อคอินเข้าระบบด้วยบัญชีผู้ใช้ root
    2. ปกติติดตั้งมาให้ตั้งแต่เริ่มต้น
    3. หากยังไม่ได้ติดตั้ง สามารถติดตั้งด้วยคำสั่ง
      • yum install firewalld firewall-config
    4. สั่งให้ firewalld ทำงานด้วยคำสั่ง
      • systemctl enable firewalld.service
      • systemctl start firewalld.service
    5. ดูสถานะการทำงานของ firewalld ด้วยคำสั่ง
      • systemctl status firewalld.service
    6. ต้องได้ประมาณว่า
    1. สถานะต้องเป็น active หากเป็นอย่างอื่นให้ reboot เครื่องดูก่อน
    2. เพิ่มกฎการเข้าถึงตัวอย่างเช่น
    firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.26.0.1" port protocol="tcp" port="631" accept' --permanent

    อธิบายได้ว่า ยอมรับการเข้าถึงจากไอพี 192.26.0.1 มายัง tcp port 631 ไปที่ zone public แบบถาวร zone public เป็น zone ที่ถูกเลือกไว้โดย default

    1. เมื่อเพิ่มกฎการทำงานต้องให้ firewalld โหลดกฎใหม่ทุกครั้งด้วยคำสั่ง
    firewall-cmd --reload
    1. ยากพิมพ์เยอะมีเครื่องมือให้ใช้งาน คือ firewall-config แต่ต้องมี xwindows นะครับ เรียกใช้งานด้วยคำสั่ง
    firewall-config &
    1. จะได้ดังภาพ
    1. ให้เลือก zone ชื่อ public แล้วเลือก Rich Rules ทางขวามือ ได้ดังภาพ (จริง ๆ หน้าต่างเริ่มต้นมันแคบนะครับต้องขยายออกไปทางขวาจึงจะเห็นทั้งหมด)
    1. สามารถคลิกปุ่ม Add จะได้ดังภาพ
    1. ก็เลือก ๆ ตามที่ต้องการได้เลยตัวอย่างเช่น

    แปลว่าอนุญาต ไอพี 192.100.33.12 ให้เข้ามาที่บริการ ssh ได้ คลิก Ok เพิ่มเพิ่มกฎ จะได้

    1. สามารถเพิ่มกฎได้ตามต้องการ และให้สังเกตตรง Configuration ด้านบนจะเห็นว่าเลือกไว้ว่า Runtime ถ้าลองคลิกเลือกจะมี Permanent จะได้ดังภาพ
    1. ถ้ารีสตาร์ท firewalld กฎที่อยู่ที่ Runtime จะหายไปดังนั้นหากต้องการให้กฎยังอยู่ต้องย้ายกฎที่ Runtime มาที่ Permanent ด้วยการคลิกที่ Options แล้วเลือก Runtime To Permanent
    1. กฎจะถูกก็อปปี้ไปยัง Permanent เมื่อรีบูตหรือรีสตาร์ท firewalld กฎก็ยังอยู่ หรือหากต้องการทำครั้งเดียวก็เพิ่มกฎใน Permanent ได้เลยเช่นกันแต่กฎเหล่านั้นจะยังไม่ทำงานจนกว่าจะ Reload Firewalld
    2. เมื่อเพิ่มกฎเป็นที่พอใจและ copy จาก runtime มา permanent แล้วสามารถปิด firewall-config ได้เลยแต่เพื่อความแน่ใจ ให้ Reload Firewalld ใน Options อีกครั้งแล้วค่อยปิด จะได้ไม่ลืมครับ
    3. หรือหากไม่ชอบแก้ไขใน Windows สามารถแก้ไขแฟ้ม /etc/firewalld/zone/public.xml ได้เช่นกัน เมื่อเปิดไฟล์เข้าไปจะได้ว่า
    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>Public</short>
      <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
      <rule family="ipv4">
        <source address="192.26.0.1"/>
        <port protocol="tcp" port="631"/>
        <accept/>
      </rule>
      <rule family="ipv4">
        <source address="192.100.33.12"/>
        <service name="ssh"/>
        <accept/>
      </rule>
    </zone>
    1. สามารถก็อปปี้ 5 บรรทัดเริ่มตั้งแต่ <rule family=”ipv4″> ไปจนถึง </rule> นี้จะเป็น 1 กฎหากมีซ้ำๆ กันเยอะๆ ก็สามารถก็อปปี้แล้ววางแล้วแก้เฉพาะเลขไอพีได้เลย
    2. เมื่อแก้ไขแฟ้มเสร็จ save แล้วออกมาสั่งด้วยคำสั่ง
    firewall-cmd --reload
    1. แก้ไขแฟ้ม /etc/firewalld/firewalld.conf
      • เปลี่ยน AllowZoneDrifting จากเดิม yes เป็น no
      • restart firewalld ด้วยคำสั่ง systemctl restart firewalld
    2. ยังมีอีกมากที่ยังใช้ไม่เป็น ด่วนๆ เอาเท่านี้ก่อน
    3. จบขอให้สนุก

  • How to InPrivate/Incognito Edge and Chrome by default

    • เหมาะสำหรับเครื่องในห้องปฎิบัติการ จะได้ไม่ต้องลบค่าบางอย่าง เช่น MS Teams ล็อคอินค้าง, อีเมลล็อคอินค้างไว้
    • เริ่ม
    • คลิกขวา properties ที่ shortcut ของ edge หรือ chrome
    • คลิกที่แท็บ shortcut ในช่อง target สำหรับ Microsoft Edge เพิ่ม -inprivate ต่อท้ายสุด แล้วคลิก Ok ดังภาพ
    • สำหรับ Google Chrome เพิ่ม -incognito ต่อท้ายสุด ดังภาพ
    • ทดสอบเปิด
    • สำหรับ Firefox จะสร้าง shortcut สำหรับเข้า Private browsing ไว้อยู่แล้วไม่ต้องดัดแปลงอะไร
    • ต้องแก้ shortcut ทุกที่หากอยากให้เป็นเหมือนกันทุก shortcut
    • จบขอให้สนุก
  • Mail merge ด้วย Excel Online และ Power Automate

    สิ่งที่ต้องมี

    1. เมล์มหาวิทยาลัยที่ใช้งานที่ http://email.psu.ac.th
    2. Browser เช่น Edge, Firefox ฯลฯ

    Optional

    1. Office 365 Desktop แต่บทความนี้จะไม่ใช้นะครับ

    เริ่มได้

    1. ล็อคอินเข้าระบบที่ http://email.psu.ac.th
    2. คลิกปุ่ม 9 จุดมุมบนซ้าย เลือก Excel คลิก Blank workbook
    1. คลิกที่คำว่า Book1 เพื่อเปลี่ยนชื่อไฟล์ และเลือกโฟลเดอร์บน Onedrive สำหรับเก็บไฟล์นี้ให้เรียบร้อย
    1. กรอกข้อมูลที่จะใช้ส่งอีเมล เช่น
    1. เลือกข้อมูลทั้งหมดตั้งแต่ A1 ถึง B3 แล้วคลิกที่ Insert เลือก Table และคลิกที่ My table has headers แล้วคลิก OK
    1. ได้ดังภาพ
    1. จากนั้นคลิกที่ Automate แล้วคลิกที่ Automate Work
    1. ได้ดังภาพ
    1. ให้เลื่อนช่องด้านขวาลงมาล่างสุดจนเห็นคำว่า See all templates
    1. คลิก See all templates จะได้หน้าต่างใหม่ดังภาพ
    1. พิมพ์ต่อท้ายคำว่า Excel ว่า send แล้วกดปุ่ม enter บนคีย์บอร์ดจะเจอ Send an email for a selected row ให้คลิกที่ช่องนั้นได้เลย
    1. จะได้หน้าตาประมาณนี้
    1. คลิก Continue จะได้
    1. ในส่วนของ For a selected row เลือกข้อมูลให้ถูกต้องดังนี้ ซึ่งในบทความนี้จะเซฟไฟล์ไว้ใน OneDrive เลยดังนั้นเลือกเป็นดังภาพ ช่อง Table สำคัญมากคือ Table1
    1. ในส่วนของ Send an email ในช่อง To ให้ลบของเก่าออกแล้วเลือกชื่อฟิลด์ email ของเราที่กรอกเตรียมไว้แล้วใน excel
    1. Subject พิมพ์ตามต้องการ และ Body ก็จะเป็นเนื้อหาที่ต้องการส่งให้ผู้รับอ่านสามารถกรอกได้เลย สามารถเลือกฟิลด์ต่าง ๆ ใน excel มาใช้งานได้
    1. เมื่อเสร็จสิ้นแล้วกด Save
    2. กลับมาที่ excel กดปุ่ม Automate Work อีกครั้ง จะเห็นว่าหัวข้อเพิ่มขึ้นมาคือ Flows in this workbook
    1. ให้เลือกแถวที่ต้องการส่งอีเมล (A2-A3) แล้วไปคลิกที่จุดสามจุดหลังชื่อ Flows ดังภาพ
    1. คลิก Run
    1. คลิก Run flow จะได้ดังภาพ เมล์จะถูกส่งไปเรียบร้อย คลิก Done เพื่อจบการทำงาน
    1. เมื่ออีเมลถูกส่งไปค่าต่างๆ ในไฟล์ excel และเราได้ใส่ในเนื้อเมล์จะถูกแทนที่ให้อัตโนมัติ
    1. จบขอให้สนุก
  • Hard links and junctions

    ntfs file system

    • NTFS สนับสนุนการ file links 3 แบบ
      • Hard links
      • Junctions
      • Symbolic
    • เราจะพูดถึง Hard links และ Junctions

    Hard links

    • ใช้แสดงถึงไฟล์เดียวกัน ในไดรฟ์เดียวกัน (same volume) ที่อยู่หลายโฟลเดอร์ (path)
    • แก้ไขไฟล์เดียวกันนี้ที่ใดที่หนึ่งก็จะเปลี่ยนแปลงทุกที่
    • ตัวอย่างที่ทำได้
    C:\dira\ethel.txt ชี้ไปที่ C:\dirb\dirc\lucy.txt
    
    D:\dir1\tinker.txt ชี้ไปที่ D:\dir2\dirx\bell.txt
    C:\diry\bob.bak ชี้ไปที่ to C:\dir2\mina.txt
    C:\a\1.txt ชี้ไปที่ C:\a\11.txt
    • ตัวอย่างที่ทำไม่ได้
    C:\dira ชี้ไปที่ to C:\dirb #โฟลเดอร์ทำ Hard link ไม่ได้
    C:\dira\ethel.txt ชี้ไปที่ to D:\dirb\lucy.txt #ชี้ไฟล์ที่อยู่คนละไดรฟ์ไม่ได้
    • สามารถลบไฟล์ใดไฟล์หนึ่งที่ชี้ไปก็ได้ โดยที่เนื้อหาข้างในจะยังคงอยู่ในไฟล์ที่เหลืออยู่

    วิธีสร้าง Hard links

    • ต้องใช้ cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
    mklink /H ปลายทาง ต้นทาง
    • ตัวอย่างเช่น ต้องการทำ Hard link ชื่อ cadabra.txt ในโฟลเดอร์ dirb ชี้ไปที่ไฟล์ adabra.tx ในโฟลเดอร์ dira
    mklink /H c:\dirb\cadabra.txt c:\dira\adabra.txt
    • ดังภาพ

    Junction

    • เรียกอีกอย่างว่า Soft links ต่างจาก Hard links ตรงที่ใช้เชื่อมโยงโฟลเดอร์ ภายในเครื่องคอมพิวเตอร์เครื่องเดียวกัน
    • ตัวอย่างที่เป็นไปได้
    C:\dira ชี้ไปที่ C:\dirb\dirc
    
    C:\dirx ชี้ไปที่ D:\diry
    • ตัวอย่างที่เป็นไม่ได้
    C:\dira\one.txt ชี้ไปที่ C:\dirb\two.txt #ใช้ Junction กับไฟล์ไม่ได้
    
    C:\dir1 ชี้ไปที่ Z:\dir2 
    #ไดรฟ์ Z โดยทั่วไปหมายถึงเน็ตเวิร์คไดรฟ์ ต้องเป็นโฟลเดอร์ในเครื่องคอมพิวเตอร์เครื่องเดียวกัน

    วิธีสร้าง Junction

    • เหมือนที่ผ่านมาต้องทำใน cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
    mklink /J ปลายทาง ต้นทาง
    • ตัวอย่างต้องการสร้าง c:\dirx ชี้ไปที่ c:\dira\dirc
    • ดังภาพ สังเกตว่าตรง dirx จะเห็นเป็น <JUNCTION>
    • การลบ junction สามารถลบได้เลยโดยที่ต้นทางจะไม่ถูกลบด้วย
  • Debian Oval

    https://wiki.debian.org/DebianOval

    1. ระบบปฏิบัติการ Debian 12.4
    2. ล็อคอินด้วย root หรือ user ที่สามารถเรียกใช้ sudo ได้
    3. ติดตั้ง openscap-scanner ด้วยคำสั่ง
     apt install -y openscap-scanner
    1. ดาวน์โหลดไฟล์ Definition จาก https://www.debian.org/security/oval/ เลือกไฟล์ให้ตรงกับรุ่น ของ Debian ที่ใช้งาน ตัวอย่างนี้ใช้ Bookworm (รุ่น 12.4) โหลดไฟล์ชื่อ oval-definitions-bookworm.xml.bz2
    2. ขยายไฟล์ที่ดาวน์โหลดมาด้วยคำสั่ง
    bunzip2  oval-definitions-bookworm.xml.bz2
    1. ต่อด้วยคำสั่ง
    oscap oval eval --report report.html oval-definitions-bookworm.xml
    1. นำไฟล์ report.html มาเปิดใน web browser
    1. ช่อง Result ต้องเป็น false ถึงจะ Ok ?
    2. จบขอให้สนุก
  • Install from scratch – licensing (2)

    ใช้ plugin ชื่อว่า WPO365 วิธีการตั้งค่าเพื่อใช้งาน single sign on ของ Microsoft365 ในการล็อคอินเข้าระบบของ WordPress

    Authentication
    1. ต้องเซ็ต HTTPS ที่เว็บให้เสร็จเรียบร้อย
    2. สำคัญ!!! จำเป็นต้องมีสิทธิ์ Global Administrator บน Azure
    3. Login เข้าเว็บ https://portal.azure.com มองหา Azure Active Directory
    4. ซ้ายมือเลื่อนหาคำว่า App registrations
    5. คลิก + New registration แล้วกรอกชื่อที่ต้องการในช่อง Name ในส่วนของ Supported account types เลือก Accounts in this organizational directory only (Prince of Songkla University only – Single tenant)
    1. เลื่อนลงมาจนเจอคำว่า Redirect URI (Optional) เลือก Web ในช่อง select platform และกรอกชื่อเว็บ https://licensing.psu.ac.th/wp-admin/ ลงไปในช่องถัดมา แล้วคลิก Register
    1. หน้าถัดไป คลิก Token configuration บนเมนูซ้ายมือ จากนั้นคลิก + Add optional claim เลือก Token Type เป็น ID และเลือกหัวข้อด้านล่าง ดังนี้ email, family_name, given_name และ upn แล้วคลิกปุ่ม Add จะมีให้ Add optional claim เพิ่ม ให้ติ๊กถูกแล้วกด Turn on the Microsoft Graph email, profile permission (required for claims to appear in token). แล้ว Add จะได้
    1. คลิก API permissions ที่เมนูซ้ายมือ แล้วคลิก + Add permission คลิก Microsoft Graph แล้วคลิก Delegated และเลือกหัวข้อดังต่อไปนี้ (พิมพ์ในช่อง Search ได้เลย) email, offline_access, openid และ profile แล้วคลิก Add permissions

    จากนั้นคลิก Grant admin consent for Prince of Songkla University แล้วคลิก Yes

    1. คลิก Certificates & Secrets ที่เมนูซ้ายมือ คลิก  + New client secret ตั้งชื่อในช่อง Description และเลือกวันหมดอายุ คลิก Add จากนั้นให้ copy ค่าของช่อง Value เก็บไว้
    1. กลับมาที่ https://licensing.psu.ac.th หลังจากติดตั้งปลักอินชื่อ WPO365 | LOGIN และเปิดใช้งาน (activate) เรียบร้อยแล้ว
    2. คลิก WPO365 ที่ด้านซ้ายมือล่างสุด เปิดใช้งาน SINGLE SIGN-ON (SSO) แล้วคลิก configure
    3. กรอกข้อมูลดังนี้
      1. Select Identity Provider (IdP) เลือก Azure AD (default)
      2. Select SSO-protocol เลือก OpenID Connect (default)
      3. Select OpenID Connect flow เลือก Auth.-code flow (recommended)
      4. Application (Client) Secret นำค่าที่ copy เก็บไว้ในข้อ 9 มาใส่ช่องนี้
      5. Directory (tenant) ID นำค่าที่ได้จากหน้า Overview ของ lsc ชื่อฟิลด์ Directory (tenant) ID
      6. Application (Client) ID นำค่าที่ได้จากหน้า Overview ของ lsc ชื่อฟิลด์ Application (client) ID
      7. Redirect URI View in Azure Portal ใส่ว่า https://licensing.psu.ac.th/
      8. Domain hint View Custom domain names ใส่ว่า psu.ac.th, email.psu.ac.th
      9. Add prompt=select_account parameter ติ๊กถูก
      10. กด Save configuration ด้านล่าง แล้วจะมีหน้า Important ขึ้นมากด Confirm
    4. คลิกแท็บ User Registeration ด้านล่างกรอกดังนี้
      1. Custom domains View Custom domain names กรอก psu.ac.th และคลิก + เพิ่มอีกช่องพิมพ์ email.psu.ac.th
      2. เลื่อนลงมาล่างสุดกด Save configuration
    5. คลิกแท็บ Plugin self-test เลื่อนลงมาด้านล่าง กด Start self-test จะถูก redirect ไปหน้า log in ของ mail ให้ Log in ตามปกติ แล้วจะเด้งกลับมาหน้าของ https://licensing.psu.ac.th หากล็อคอินไม่ผ่านให้กลับไปหน้า https://portal.azure.com คลิก App registrations แล้วเลือก lsc แล้วคลิก Authentication คลิก Add URI เพิ่ม https://licensing.psu.ac.th เข้าไปอีก 1 url กด save กลับไปล็อคอินอีกครั้งน่าจะได้แล้ว
  • Install from scratch – licensing (1)

    ติดตั้งปรับแต่ง Ubuntu 22.04 เพื่อเตรียมสำหรับติดตั้ง WordPress บน apache2 และติดตั้ง WordPress

    Host setting
    1. เครื่อง Server มี 2 ชื่อ A record เป็น server-name1.psu.ac.th Cname เป็น server-name.psu.ac.th
    2. ติดตั้ง Ubuntu 22.04 ข้ามเรื่องการติดตั้ง Ubuntu ไปนะครับ
    3. จะได้ username: group ที่สามารถเรียกใช้ sudo ได้ตั้งแต่เริ่มต้นตามที่ติดตั้ง
    4. sudo apt update && sudo apt dist-upgrade -y && sudo apt autopurge -y เพื่อปรับปรุง software ต่าง ๆ ให้เป็นรุ่นปัจจุบัน
    5. sudo reboot ในกรณีที่มี kernel ใหม่ต้องรีบูตเพื่อเปลี่ยน kernel
    6. sudo apt install mysql-server apache2 php libapache2-mod-php php-mysql php-gd php-imagick php-xml php-curl php-mbstring php-intl php-zip unzip php-apcu
    7. sudo a2enmod ssl rewrite headers
    8. เปลี่ยนเป็น user root ด้วยคำสั่ง sudo -i
    9. cd /etc/ssl/private
    10. cp /home/username/certificate/* . (ต้องได้รับไฟล์ certificate มาเรียบร้อยแล้วนะครับ ขอข้ามไปเรื่องการจัดเตรียมไฟล์ certificate) ในตัวอย่างนี้จะมีไฟล์เดียวคือ star.psu.ac.th-combined.crt
    11. openssl dhparam -out /etc/ssl/private/dhparams_4096.pem
    12. /etc/apache2/sites-available
    13. vi default-ssl.conf
    <IfModule mod_ssl.c>
    SSLUseStapling On
    SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
    <VirtualHost _default_:443>
    ServerAdmin someone@somedomain.com
    ServerName server-name1.psu.ac.th

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on

    SSLCertificateFile /etc/ssl/private/star.psu.ac.th-combined.crt

    SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparam.pem"
    SSLOpenSSLConfCmd ECDHParameters brainpoolP512r1
    SSLOpenSSLConfCmd Curves brainpoolP512r1:sect571r1:secp521r1:secp384r1

    #A+
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLHonorCipherOrder on
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    SSLCompression off
    #Header add Strict-Transport-Security "max-age=15768000;includeSubDomains"
    Header always set Strict-Transport-Security "max-age=63072000"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
    </Directory>

    </VirtualHost>
    </IfModule>
    1. vi licensing.conf
    <virtualHost *:80>
        Documentroot /var/www/html/lsc
        ServerName server-name.psu.ac.th
        ErrorLog ${APACHE_LOG_DIR}/licensing_error_log
        CustomLog ${APACHE_LOG_DIR}/licensing_access_log common
        Options -Indexes
        RewriteEngine On
        RewriteRule (.*) https://server-name.psu.ac.th
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [NC]
        RewriteRule ^.* - [F]
    </virtualhost>
    1. vi licensing-ssl.conf
    <IfModule mod_ssl.c>
    SSLUseStapling On
    SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
            <VirtualHost *:443>
                    ServerAdmin someone@somedomain.com
                    ServerName server-name.psu.ac.th
                    DocumentRoot /var/www/html/lsc

                    LogLevel info
                    ErrorLog ${APACHE_LOG_DIR}/lsc-ssl-error.log
                    CustomLog ${APACHE_LOG_DIR}/lsc-ssl-access.log combined

                   SSLEngine on

                    SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparams_4096.pem"
                    SSLOpenSSLConfCmd ECDHParameters brainpoolP512r1
    SSLOpenSSLConfCmd Curves brainpoolP512r1:sect571r1:secp521r1:secp384r1

                    SSLCertificateFile /etc/ssl/private/star.psu.ac.th-combined.crt

    #A+
    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite TLSv1.3 TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    SSLCompression off
    Header always set Strict-Transport-Security "max-age=63072000"

                    RewriteEngine on
                    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [NC]
                    RewriteRule ^.* - [F]

                    Options -Indexes

                    <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                    SSLOptions +StdEnvVars
                    </FilesMatch>

                    <Directory /var/www/html/lsc>
                            Options FollowSymLinks
                            AllowOverride All
                    </Directory>

                    <Directory /usr/lib/cgi-bin>
                                    SSLOptions +StdEnvVars
                    </Directory>
            </VirtualHost>
    </IfModule>
    1. a2ensite licensing.conf licensing-ssl.conf default-ssl.conf
    2. a2enmod headers
    3. systemctl restart apache2
    4. mysql
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    create database licensing;
    GRANT ALL PRIVILEGES ON licensing.* TO 'username'@'localhost' WITH GRANT OPTION;
    quit
    1. cd /var/www/html
    2. wget https://wordpress.org/latest.zip
    3. unzip latest.zip
    4. rm latest.zip
    5. mv wordpress lsc
    6. chmod -R username:www-data .
    7. cd lsc
    8. chmod g+w .
    9. logout
    10. จบส่วนการตั้งค่า Host เพื่อเตรียมติดตั้ง WordPress
    11. เปิด browser ไปที่เว็บ http://licensing.psu.ac.th ซึ่งจะถูก redirect ไปที่ https://licensing.psu.ac.th โดยอัตโนมัติ
    12. กรอกข้อมูลสำหรับเชื่อมต่อให้เรียบร้อย และติดตั้ง wordpress ให้เรียบร้อย
    13. กลับมาที่ console หรือ terminal
    14. cd /var/www/html/lsc
    15. chmod og-w .
    16. sudo chown username:www-data .htaccess wp-config.php
    17. chmod og-w .htacess wp-config.php
    18. vi wp-config.php เพิ่มข้อความว่า
    /** Direct install plugin **/
    define('FS_METHOD', 'direct');
    1. cd /var/www/html/lsc/wp-content
    2. mkdir uploads upgrade languages
    3. sudo chown -R username:www-data uploads upgrade languages themes plugins
    4. chmod -R g+w uploads upgrade languages themes plugins เพื่อให้สามารถติดตั้ง plugin theme และ upload ไฟล์ขึ้นเว็บได้ เมื่อติดตั้ง themes และ plugins ได้จนพอใจแล้วสั่งคำสั่งต่อไปนี้ chmod -R g-w upgrades languages themes plugins
    5. จบส่วนติดตั้ง WordPress