Category Archive network

Linux: ติดตั้งฟอนต์ภาษาไทย

วิธีติดตั้งฟอนต์ภาษาไทยหลังจากที่ลง Linux ทำแค่ขั้นตอนที่ 1 จริงๆ ก็ทำให้อ่านเว็บภาษาไทยได้แล้ว แต่ถ้าอยากให้เห็นเหมือนที่ดูใน windows อาจจะทำขั้นตอนอื่น ๆ เพิ่ม

  1. ติดตั้ง Fonts-TLWG
    sudo apt install fonts-thai-tlwg
  2. ติดตั้ง SiPA thai fonts
    sudo wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai
  3. ติดตั้ง xfonts-thai
    sudo apt install xfonts-thai
  4. ติดตั้งหลาย ๆ ตัวพร้อมกัน
    sudo apt-get install fonts-thai-tlwg xfonts-thai xfonts-thai-etl xfonts-thai-manop xfonts-thai-nectec xfonts-thai-poonlap xfonts-thai-vor
  5. ติดตั้งของ MicroSoft ( มีลิขสิทธ์นะ )
    sudo apt-get install msttcorefonts

มีหลายท่านที่ได้ช่วยเขียนคู่มือแบบละเอียดไว้ให้

Linux: reinstall Ubuntu

อยู่ ๆ อูบุนตูมันเป็นตู่อะไรก็ไม่รู้ รวน ๆ แปลกอยากจะลงใหม่แต่ว่าไม่อยากที่จะทำอะไรมาก ขี้เกียจจะลงอะไรใหม่ ไปเจอวิธีที่ซ่อมให้กลับมาใช้ได้

  1. sudo apt-get clean
  2. สร้างไฟล์ reinstall_all.sh เช่น nano reinstall_all.sh แล้วใส่เนื้อหา
    #!/bin/bash
    for pkg in dpkg --get-selections | awk '{print $1}' | egrep -v '(dpkg|apt|mysql|mythtv)' ; do apt-get -y –force-yes install –reinstall $pkg ; done
  3. sudo chown root:root reinstall_all.sh
  4. sudo chmod 755 reinstall_all.sh
  5. sudo ./reinstall_all.sh
  6. รอตอบคำถามบางอย่าง

ดูจากเวลาแล้วใช้เวลาเยอะอยู่เหมือน แต่ก็ดีกว่ามาไล่เซ็ตหลาย ๆ อย่างใหม่ตั้งแต่ต้น ขอบคุณ
Force reinstall of all Ubuntu packages

windows: ลงโปรแกรมหลายเครื่อง

ถ้าต้องลงโปรแกรมเหมือน ๆ กันหลาย ๆ เครื่อง หรือตามไปอัพเดตโปรแกรมทุกเครื่องให้เป็นตัวล่าสุด จะดีมั๋ยถ้าจะลดเวลาที่ต้องใช้ลงไป ใช้สคริปท์ง่าย ๆ หมือนฝั่่ง Linux ที่ใช้ไฟล์เดียวก็ลงโปรแกรมที่ต้องใช้ได้ครบ

ก่อนอื่นโปรแกรมตัวนี้ชื่อ Chocolatey ไม่ต้องไปดาวน์โหลดมาก่อน วิธีติดตั้งมีทั้งแบบใช้คนเดียวและแบบองค์กรขนาดใหญ่ เพื่ออธิบายง่าย ๆ และที่ใช้ตอนนี้ไม่ได้มีเครื่องที่ต้องลงโปรแกรมมาก ขอใช้แบบลงส่วนตัวละกัน

  1. เปิด PowerShell ขึ้นมาโดนสิทธิ administrator copy
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))
    ไปวางแล้ว enter ก็ลงโปรแกรมติดตั้งเสร็จแล้ว
  2. ต่อไปคือสร้างลิสต์โปรแกรมที่จะติดตั้งลงเครื่องอื่น ๆ ขึ้นมาเพื่อความสดวกจะติดตัว Chocolatey Gui ( ทำแค่เครื่องของเราเครื่องเดียวก็พอ ) พิมพ์ choco install chocolateygui ใน PowerShell แลัว enter
    1. เปิดโปรแกรม Chocolatey GUI จากเมนูของ windows โดยสิทธิ administrator จะเห็นว่าซ้ายมือจะมีอยู่ 2 เมนูคือ
      • This PC คือรายชื่อโปรแกรมที่ติดตั้งในเครื่องเรา
      • chocolatey จะเป็นหน้าที่ไว้ค้นหาโปรแกรมที่จะติดตั้ง ต้องการจะติดตั้งโปรแกรมอะไรก็ค้นหาเอาจากหน้านี้ คลิกขวา install มันจะดาวน์โหลดโปรแกรมและติดตั้งให้เอง
    2. เมื่อลง program ที่ต้องการครบแล้วไปที่ This PC มุมขวาบนจะมีปุ่ม Export ให้เซฟไฟล์ไว้ใน flash drive จะเป็นไฟล์ Chocolatey.config
  3. ไปที่เครื่องที่จะติดตั้งโปรแกรมเพิ่มเปิด PowerShell ขึ้นมาโดนสิทธิ administrator และลง Chocolatey เหมือนขั้นตอนที่ 1
  4. ติดตั้งโปรแกรมในลิสต์โดยใช้ choco install <path-to-exported-file> เช่น choco install “E:\Chocolatey.config” โปรแกรมจะถูกติดตั้งเพิ่มตามที่มีอยู่ในลิสต์ที่ได้ทำไว้
  5. เวลาผ่านไปโปรแกรมที่ลงไว้เริ่มเก่าแล้วก็สั่งอัพเดตโดยใช้ choco upgrade all -y ถ้าจะ upgrade บางโปรแกรมหรือจะยกเว้นบางโปรแกรมก็ทำตามคู่มือ https://docs.chocolatey.org/en-us/choco/commands/upgrade

ถ้าไม่เข้าใจลองดูวิธีได้จากคู่มือ https://docs.chocolatey.org/en-us/chocolatey-gui/user-interface/main-window/actions/export ตัวสคริปต์ที่มันใช้เป็นไฟล์ง่าย ๆ อย่างที่ผมใช้คือ

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="avastfreeantivirus" version="21.6.6446.0" />
  <package id="chocolatey-core.extension" version="1.3.5.1" />
  <package id="chocolatey-dotnetfx.extension" version="1.0.1" />
  <package id="chocolatey-visualstudio.extension" version="1.9.0" />
  <package id="chocolatey-windowsupdate.extension" version="1.0.4" />
  <package id="chocolatey" version="0.10.15" />
  <package id="chocolateygui" version="0.18.1" />
  <package id="dotnetfx" version="4.8.0.20190930" />
  <package id="filezilla" version="3.55.1" />
  <package id="Firefox" version="91.0" />
  <package id="gimp" version="2.10.24.3" />
  <package id="GoogleChrome" version="92.0.4515.131" />
  <package id="googledrive" version="2.34.5075.1619" />
  <package id="greenshot" version="1.2.10.6" />
  <package id="keepass.install" version="2.48.1" />
  <package id="microsoft-teams" version="1.4.00.19572" />
  <package id="microsoft-windows-terminal" version="1.9.1942.0" />
  <package id="notepadplusplus.install" version="8.1.2" />
  <package id="postman" version="8.9.1" />
  <package id="sourcetree" version="3.4.1" />
  <package id="visualstudio-installer" version="2.0.1" />
  <package id="vlc" version="3.0.16" />
  <package id="winmerge" version="2.16.12" />
</packages>

จะลองแก้เองเพื่อที่จะใช้กับ user หลาย ๆ กลุ่มก็ได้ครับ กลุ่มนี้เพิ่มบรรทัดนี้ อีกกลุ่มลงอีกโปรแกรมก็แค่ copy ไปอีกไฟล์ แล้วเพิ่มลดรายชื่อโปรแกรมเอา

Windows: install error 0x800f0954

ถ้าลงโปรแกรมเก่า ๆ บางครั้งขะเจอ error 0x800f0954 ซึ่งสาเหตุคือ เราไปลงโปรแกรมที่เก่ากว่า version ปัจจุบัน อย่าง Poor Man’s T-SQL Formatter จะใช้ .net2 ที่เก่ามากหลายปีแล้ว ทำให้เจอ error code 0x800f0954

ก่อนอื่นโหลดตัวติดตั้ง .net 2 มาก่อน แต่เพราะว่ามันเก่ามากจนไม่สามารถหาตัวติดตั้งจาก microsoft ได้ ดังนั้นจะโหลดตัวติดตั้ง .Net 3.5 จาก Microsoft .NET Framework 3.5 ที่จะมี .NET Framework 2.0 และ .NET Framework 3.0 service pack ในตัวแทน

การเตรียมการติดตั้ง

  1. เปิดโปรแกรม regedit โดยไปที่เมนูของ windows พิมพ์ regedit.exe ในช่อง run หรือ search แล้ว enter
  2. เปิดคีย์ตามลำดับ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
  3. ดูที่ด้านขวาจะมี value ชื่อ UseWUServer เซ็ตค่าเป็น 0
  4. ปิด regedit
  5. restart windows หรือ restart service Windows Update

Cr. Error Code 0x800F0954 on Windows 10

windows: เอาพยากรณ์อากาศออกไป

หลัง update windows มันมีอะไรแปลกๆ เพิ่มขึ้นมาอย่างหนึ่ง คือพยากรณ์อากาศตรง task bar คิดว่าคนที่ต้องการจะดูมันตลอดทั้งวันนี้คงมีน้อยมากๆ เอาออกไปเหอะ

  1. คลิก task bar
  2. ไปที่ News and interests
  3. คลิก turn off

แก้เข้า linux / windows แล้วเวลาเปลี่ยน

ถ้าเครื่องลง dual boot หลังไปใช้ linux แล้วกลับมาบูทเข้า windows จะพบว่าเวลามันจะเปลี่ยนไปหลายชั่วโมง โดยที่ไม่ได้ตั้งเวลาใหม่แต่อย่างใด ทั้ง ๆ ที่ตอนใช้ลินุกซ์เวลาก็ถูกต้องนะ

ปัญหาแบบนี้สามารถแก้ได้ง่าย ๆ โดยพิมพ์ใน terminal ด้วยสิทธิ์ root

timedatectl set-local-rtc 1

จากนั้นปัญหานี้จะหมดไปละ

สาเหตุ ในคอมพิวเตอร์มีนาฬิกาอยู่ 2 ตัว คือ 1 นาฬิกาบนแมนบอร์ด ( bios / cmos / uefi ) 2 นาฬิกาบนระบบปฏิบัติการ โดยค่าตั้งต้น linux จะคิดว่านาฬิกาบนเมนบอร์จะเป็นเวลาตาม UTC ไม่ใช่เวลาท้องถิ่น แต่วินโดวน์จะคิดว่าเป็นเวลาท้องถิ่น เวลาที่เราใช้ linux หรือ windows ต่างก็ sync เวลาใหม่ลงไปที่นาฬิกาบนแมนบอร์ด แต่เพราะว่าทั้งสองตัวเข้าใจว่าเป็นจึงเห็นเวลาเปลี่ยนไป เปลี่ยนมา

ขอบคุณวิธีและคำอธิบายจาก Wrong Time Displayed in Windows-Linux Dual Boot Setup? Here’s How to Fix it

Remote Desktop: สองจอ

วิธี remote desktop ไปที่เครื่องอื่นให้ใช้ได้พร้อมกัน 2 จอจะได้ทำงาน work from home ได้สะดวกๆ

  1. เปิดโปรแกรม remote desktop
  2. คลิก Show Options
  3. คลิกเท็ป Display
  4. ติ๊ก use all my monitors for the remote session
  5. ลอง remote ตามปกติ

จะเห็นว่าสามารถใช้งานได้พร้อมกันทั้งสองจอแล้ว

Apache: redirect

บางครั้งเว็บก็ทำเรื่องเฉพาะกิจอย่างมีกิจกรรมพิเศษช่วงปีใหม่ ก็ใช้วิธี redirct ไป subdomain ก่อนชั่วคราว หรือเปลี่ยนเพิ่มลด URL ทำได้โดยแก้ config

  1. sudo nano /etc/apache2/sites-available/example.com.conf
  2. พิมพ์เพิ่มเติมตามตัวอย่าง โดย
    • 301 Moved permanently : การย้าย URL ไปอยู่ที่ตำแหน่งใหม่อย่างถาวร ให้ GOOGLE จำไว้ว่าทุกลิงค์ที่เคยใช้อยู่เดิม ให้เปลี่ยนเป็นตัวใหม่
    • 302 Found : ใช้ชั่วคราว
    • 307 – Temporary redirect : ใช้ชั่วคราวชั่วคราวตอนนี้  คล้ายกับ 302 แต่จะกลับไปใช้ URL เก่านะ
    • 410 – Content deleted : ลิงค์นี้ ลบออกไปแล้วนะ
    • 451 – Content unavailable for legal reasons :URL นี้ไม่แสดงภายใต้เหตุผลทางกฎหมาย

ดูความหมายประเภทของ Redirect เพิ่มเติมได้ที่ http://Which redirect should I use?

<VirtualHost *:80>
    Redirect 302 / "http://newyear.example.com/"
    ServerName www.pexample.com
</VirtualHost>
  1. รีสตาร์ apache
    sudo systemctl restart apache2
  2. เรียก url ดูถ้าไม่ทำงานให้เช็ดดูตรง ServerAlias และ ServerName ใน config ทั้งหมด เพราะว่าอาจจะทำให้ apache สับสนไปทำงานผิดที่ได้ ให้ใส่ # ไปหน้าบรรทัดเดิมที่คิดว่าเป็นสาเหตุเพื่อ comment ออกไปชั่วคราว restart apache แล้วดูผลอีกครั้ง

Apache: VirtualHost

ถ้าต้องการเพิ่มเว็บเข้าไปใน host โดยที่แยกคนละ site คนละโดแมนออกจากกันเพื่อความสะดวกในการดูแล

  1. เพิ่ม directory สำหรับเก็บข้อมูลก่อน
    sudo mkdir -p /var/www/example.com/public_html
  2. ตั้งสิทธิให้ apache เข้าไปวิ่งเล่นเขียนอ่านได้
    sudo chown -R $USER:$USER /var/www/example.com/public_html
    sudo chmod -R 755 /var/www
  3. สร้างไฟล์ configuration แยกออกมาจากตัวเดิม
    sudo nano /etc/apache2/sites-available/example.com.conf
  4. พิมพ์ตามตัวอย่าง
<VirtualHost *:80>
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    ServerAdmin [email protected]
    ServerAlias www.example.com
    ServerName example.com
    <Directory "/var/www/example.com/public_html">
        Allow from all
        AllowOverride All
        Options FollowSymLinks
        Order Allow,Deny
    </Directory>
</VirtualHost>
  1. เปิดใช้งาน configuration
    sudo a2ensite example.com.conf
  2. รีสตาร์ apache
    sudo systemctl restart apache2

ทดลองใส่ไฟล์เข้าไปใน /var/www/example.com/public_html แล้วเรียก url ที่ใส่เพิ่มเข้าไปดูว่าสามารถเรียกได้รึเปล่า