ข้อมูลจาก: DSpace Tech Support
เมื่อทำการทดสอบใช้งาน DSpace CRIS หลังจากติดตั้งไปสักพัก เมื่อทำการเพิ่ม Item แล้วเลือก DC Type เป็น Theses เราจะพบว่าหน้าแรกที่ใช้สรุปว่ามี Item ประเภทไหนบ้าง เราจะเจอความผิดพลาดที่ว่า All Theses หาข้อความไม่เจอ
วันอาทิตย์ที่ 24 พฤศจิกายน พ.ศ. 2562
วันศุกร์ที่ 22 พฤศจิกายน พ.ศ. 2562
PHP ปรับค่า File Upload และค่า Timeout
ข้อมูลจาก: Sitepoint |
A2Hosting |
Strackoverflow |
Mediatemplate
แก้ไขไฟล์ "php.ini" ใน "etc/php/5.6/apache2/php.ini" เสร็จแล้วให้ Restart Apache2
แก้ไขไฟล์ "php.ini" ใน "etc/php/5.6/apache2/php.ini" เสร็จแล้วให้ Restart Apache2
# รองรับการอัพโหลดไฟล์ที่ 300MB upload_max_filesize = 300M # รองรับการส่งไฟล์ผ่าน POST ที่ 300MB post_max_size = 300M # เพิ่มเวลาในการ Execution และ Input เป็น 600 วินาที max_execution_time = 600 max_input_time = 600 # เพิ่มหน่วยความจำให้ PHP memory_limit = 512M
วันเสาร์ที่ 16 พฤศจิกายน พ.ศ. 2562
[Linux Container] - เปิดใช้ SSH ใน Linux Container
# Install OpenSSH Server apt install openssh-server # adduseradduser sarankon # usermod -aG usermod -aG sudo sarnakon
แก้ไข Config File ที่ "/etc/ssh/ssh_config" โดยเปิด PasswordAuthentication yes
Host * # ForwardAgent no # ForwardX11 no # ForwardX11Trusted yes PasswordAuthentication yes # HostbasedAuthentication no # GSSAPIAuthentication no # GSSAPIDelegateCredentials no # GSSAPIKeyExchange no # GSSAPITrustDNS no # BatchMode no # CheckHostIP yes # AddressFamily any # ConnectTimeout 0
แก้ไข Config File ที่ "/etc/ssh/sshd_config" โดยเปิด PasswordAuthentication yes
# To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes
systemctl restart ssh
วันอาทิตย์ที่ 10 พฤศจิกายน พ.ศ. 2562
การติดตั้ง DSpace CRIS 5 ใน Ubuntu 18.04
การเตรีมเครื่องติดตั้ง DSpace CRIS 5 เราจะทำตามขั้นตอนตามเว็บ โดยปัญหาที่เจอคือ OpenJDK เป็น Version 11 จะไม่สามารถใช้ Maven สั่ง Package ได้ให้เราทำการ ลง OpenJDK เป็น Version 8 ก่อนแล้วทำการติดตั้ง Maven ที่หลัง เพราะหากทำการติดตั้ง Maven ก่อนจะเป็นการเลือกเอา OpenJDK Version ล่าสุดมา
แล้วทำไมต้องใช้ OpenJDK Version 8 ? คือว่า Maven ตอนที่เราสั่ง Package มันจะต้องใช้ไฟล์ tools.jar ในของ Java ที่อยู่ใน Folder /lib/ ใน Java ซึ่งใน OpenJDK Version 9 ขึ้นไปจะไม่มีแล้ว อันนี้เราไม่รู้นะว่าทำไม ?
เสร็จแล้วก็ทำการลง Tomcat8 และ PostgreSQL แล้วทำการตั้งค่าตาม Manual แต่ Command อาจไม่ตรงตามนั้นแต่ก็ได้เหมือนกัน
เมื่อเตรีมเครื่องพร้อมแล้วก็ทำตามขั้นตอนได้
การติดตั้ง PostgreSQL อ่านที่นี้, การติดตั้ง DSpace CRIS
แล้วทำไมต้องใช้ OpenJDK Version 8 ? คือว่า Maven ตอนที่เราสั่ง Package มันจะต้องใช้ไฟล์ tools.jar ในของ Java ที่อยู่ใน Folder /lib/ ใน Java ซึ่งใน OpenJDK Version 9 ขึ้นไปจะไม่มีแล้ว อันนี้เราไม่รู้นะว่าทำไม ?
sudo apt install openjdk-8-jdk sudo apt install ant git maven
เสร็จแล้วก็ทำการลง Tomcat8 และ PostgreSQL แล้วทำการตั้งค่าตาม Manual แต่ Command อาจไม่ตรงตามนั้นแต่ก็ได้เหมือนกัน
sudo apt install tomcat8 postgresql postgresql-contrib
เมื่อเตรีมเครื่องพร้อมแล้วก็ทำตามขั้นตอนได้
การติดตั้ง PostgreSQL อ่านที่นี้, การติดตั้ง DSpace CRIS
วันจันทร์ที่ 4 พฤศจิกายน พ.ศ. 2562
การเพิ่ม Admin และเพิ่ม Printer สำหรับ CUPS (Printer Server)
ข้อมูลจาก https://help.ubuntu.com/lts/serverguide/cups.html
แล้วให้ทำการ Restart CUPS 1 ครั้ง จากนั้นเวลาใช้ให้เข้าผ่าน Protocal "https://" ไปที่ Administrator
เมื่อกดใช้ Function ต่างๆ ก็จะมี Pop-Up ขึ้นมาถาม Username กับ Password
การเพิ่ม Admin
เมื่อต้องการเพิ่ม Admin Account ให้ใช้คำสั่ง "sudo usermod -aG lpadmin [username]"แล้วให้ทำการ Restart CUPS 1 ครั้ง จากนั้นเวลาใช้ให้เข้าผ่าน Protocal "https://" ไปที่ Administrator
เมื่อกดใช้ Function ต่างๆ ก็จะมี Pop-Up ขึ้นมาถาม Username กับ Password
#sudo usermod -aG lpadmin [username] sudo usermod -aG lpadmin sarankon
วันอังคารที่ 1 ตุลาคม พ.ศ. 2562
Python 3 และ Flask พื้นฐาน
เมื่อปีก่อนเราใช้ Raspberry Pi Zero W เป็นเครื่อง Host เพื่อทำระบบ POS (Point of Sell) ใช้เองที่ร้าน โดยตัวระบบเขียนเป็นภาษา Python 3 โดยใช้ Framework Flask ซึ้งใช้งานง่ายมาก แต่ก็มีปัญหาเรื่องการ Deploy เพราะไม่ได้ศึกษาการ Deploy จริง ๆ จัง ๆ ตอนนี้ถึงเวลาที่ต้องมาทำการ Update ตัวระบบ POS ของตัวเอง ก็ลังเลอยู่นานว่าจะย้ายไป Django ดีไหม แต่ก็สรุปคือไม่ย้ายและต้องเอาของที่ทำอยู่แล้วมาแก้ เลยเป็นที่มาของหัวข้อในตอนนี้ Python 3 และ Flask ...
การ Active ให้เราสั่ง source /bin/activate และ การ Deactivate เมื่ออยู่ใน venv แล้วให้พิมพ์ deactivate
การติดตั้ง Python 3 และ Virtual Environment
sudo apt install python3 python3-venv
การอัพเดต PIP 3 version
python3 -m pip install --upgrade pip
การสร้าง Virtual Environment
python3 -m venv [environment-name]
การ Active ให้เราสั่ง source /bin/activate และ การ Deactivate เมื่ออยู่ใน venv แล้วให้พิมพ์ deactivate
source [environment-name]/bin/activate deactivate
การจัดการ Package
pip3 search [package-name] pip3 install [package-name] pip3 install [package-name]==[version=number] pip3 install --upgrade [package-name] pip3 show [package-name] pip3 uninstall [package-name] pip3 list pip3 freeze pip3 freeze > requirement.txt pip3 install -r requirement.txt
วันศุกร์ที่ 30 สิงหาคม พ.ศ. 2562
ตั้งค่า Network โดยใช้ "netplan" บน Ubuntu 18.04
คำสั่งไม่ยุ่งยาก แค่ 3 คำสั่ง ถ้าใครลง Ubuntu 18.04 ก็ข้าม "netplan generate" ได้เลย
ตัวอย่างที่ผมใช้เป็นประจำ
sudo netplan generate # แก้ไขไฟล์ sudo nano /etc/netplan/50-cloud-init.yaml # สั่งให้ใช้ค่าใหม่ sudo netplan apply
ตัวอย่างที่ผมใช้เป็นประจำ
network: ethernets: ens3: addresses: - 10.1.4.137/24 gateway4: 10.1.4.254 nameservers: addresses: - 192.168.1.3 - 8.8.8.8 routes: - to: 10.0.0.0/8 via: 0.0.0.0 ens4: addresses: - 192.168.0.137/24 gateway4: 192.168.0.254 nameservers: addresses: - 192.168.1.3 - 8.8.8.8 version: 2
วันพุธที่ 28 สิงหาคม พ.ศ. 2562
Install PHPMyAdmin Manual
ก่อนที่จะทำการดาวโหลด์ PHPMyAdmin ไฟล์ลงมาติดตั้งเอง ให้เราทำการติดตั้งตัว Unzip ก่อน
ให้เราย้ายไปอยู่ที่โฟลเดอร์ /usr/share ก่อนดาวโหลด์ (ถ้าลง PHPMyAdmin ผ่าน apt ก็จะมาอยู่ที่นี่เหมือนกัน)
จากนั้นทำการดาวโหลด์ไฟล์ phpMyAdmin-4.9.0.1-all-languages.zip จากเว็บไซต์ https://phpmyadmin.net
เสร็จแล้วแตกไฟล์ออกจาก zip และเปลี่ยนชื่อโฟลเดอร์เป็น phpmyadmin เพื่อให้ง่ายต่อการใช้งาน
แล้วทำการเปลี่ยนเจ้าของและสิทธิ์การใช้งาน
เปิดไฟล์ Config และแก้ไขจากไฟล์ตัวอย่างที่มีมาให้
sudo apt install unzip
ให้เราย้ายไปอยู่ที่โฟลเดอร์ /usr/share ก่อนดาวโหลด์ (ถ้าลง PHPMyAdmin ผ่าน apt ก็จะมาอยู่ที่นี่เหมือนกัน)
จากนั้นทำการดาวโหลด์ไฟล์ phpMyAdmin-4.9.0.1-all-languages.zip จากเว็บไซต์ https://phpmyadmin.net
cd /usr/share sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip # If Error Use This ! # sudo wget http://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
เสร็จแล้วแตกไฟล์ออกจาก zip และเปลี่ยนชื่อโฟลเดอร์เป็น phpmyadmin เพื่อให้ง่ายต่อการใช้งาน
แล้วทำการเปลี่ยนเจ้าของและสิทธิ์การใช้งาน
sudo unzip phpMyAdmin-4.9.0.1-all-languages.zip sudo mv phpMyAdmin-4.9.0.1-all-languages.zip phpmyadmin sudo rm phpMyAdmin-4.9.0.1-all-languages.zip sudo chown -R www-data: phpmyadmin sudo chmod -R 744 phpmyadmin
เปิดไฟล์ Config และแก้ไขจากไฟล์ตัวอย่างที่มีมาให้
sudo cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php sudo nano phpmyadmin/config.inc.php
วันจันทร์ที่ 26 สิงหาคม พ.ศ. 2562
Install PHP5 and PHP7 on Ubuntu 18.04
การติดตั้ง PHP5 บน Ubuntu 18.04 นั้นเราไม่สามารถใช้ Package Repository ที่มากับ Ubuntu 18.04 ได้
อย่างตอนที่ผมลง Ubuntu 18.04 เราจะได้ PHP ที่เป็น เวอร์ชั่นค่อนข้างใหม่คือ PHP 7.2
เราเลยจำเป็นต้องเพิ่ม Package Repository อีกตัวเขาไปเพื่อให้เราสามารถติดตั้ง PHP5 ได้
ให้เราทำการเพิ่ม Repository "ppa:ondrej/php"
อย่างตอนที่ผมลง Ubuntu 18.04 เราจะได้ PHP ที่เป็น เวอร์ชั่นค่อนข้างใหม่คือ PHP 7.2
เราเลยจำเป็นต้องเพิ่ม Package Repository อีกตัวเขาไปเพื่อให้เราสามารถติดตั้ง PHP5 ได้
ให้เราทำการเพิ่ม Repository "ppa:ondrej/php"
วันอาทิตย์ที่ 4 สิงหาคม พ.ศ. 2562
[Linux Container] - Container Device / Proxy Device
Proxy Device ! ใช้สำหรับการ Bind Port เพื่อให้เข้าไปยัง Container ได้ โดยเริ่มแรกที่เราใช้ Container นั้น
ตอนนั้นเรายังไม่รู้จัก เราก็ใช้ iptables ไปก่อน ก็ใช้งานได้นะแต่ยังติดที่ว่า Port 21 กับ Port 22 ใช้ไม่ได้
และ iptables ตอนนั้นเราก็ยังไม่ได้ Save Config พอเครื่อง Server Restart ก็เจอปัญหาว่ามันลืมค่า
ตอนนี้เราจะมาดูกันว่า เวลาที่เราจะเปิดให้ข้างนอกเข้ามา Container ได้โดยใช้ Proxy Device นั้นทำยังไง
และจะลองทดสอบ Port ที่ใช้ทำ SSH ด้วยว่าใช้งานผ่าน Proxy Device ได้ไหม ? ปกติ Container เข้าไม่เปิด
การใช้งาน SSH เข้าไปใน Container
ตอนนั้นเรายังไม่รู้จัก เราก็ใช้ iptables ไปก่อน ก็ใช้งานได้นะ
และ iptables ตอนนั้นเราก็ยังไม่ได้ Save Config พอเครื่อง Server Restart ก็เจอปัญหาว่ามันลืมค่า
ตอนนี้เราจะมาดูกันว่า เวลาที่เราจะเปิดให้ข้างนอกเข้ามา Container ได้โดยใช้ Proxy Device นั้นทำยังไง
การใช้งาน SSH เข้าไปใน Container
การเพิ่ม Proxy Device
ข้อมูลอ้างอิงจาก : https://lxd.readthedocs.io/en/latest/containers/# listen ให้รอรับข้อมูลทางไหน ส่วนใหญ่ก็จะเป็น 0.0.0.0:80 # connect ให้ต่อเข้ากับช่องทางไหน ก็จะเป็น 127.0.0.1:80 # type คือ Connection Type ก็พวก TCP, UDP lxc config device add <container-name> <device-name> proxy \ listen=<type>:<address>:<port> connect=<type>:<address>:<port> # listen จะเป็น Port ของ Host # connect จะเป็น Port ของ Container # คำสั่งที่ใช้ในการลบ Config ออก lxc config device remove <container-name> <device-name> # ตัวอย่างการใช้ lxc config device add ubuntu-80 ubuntu-device-80 proxy \ listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
วันศุกร์ที่ 2 สิงหาคม พ.ศ. 2562
[Linux Container] - Storage Pool & LXC Storage
เรื่องของพื้นที่ เราจำได้ว่าครั้งนั้นเราทำพลาดที่ไม่ได้คิดว่า Storage นั้นจะโตขึ้นเรื่อยๆ และยังไม่ได้ศึกษาให้ดีก่อนการใช้งาน
และในที่สุดเราก็เจอปัญหาจากการที่ Container ใช้งาน Storage จนเต็มแล้วเราเองก็ขยายมันไม่เป็นเลยทำให้ต้องไปหาข้อมูลเพิ่ม
แล้วนำมาเขียนเก็บไว้ในตอนนี้ เรื่องของ Storage Pool กับ Linux Container
เราคิดว่า Storage Pool นั้นสำคัญเพราะเป็นพื้นที่ใช้งานหลักของ Container เลย และบางส่วนก็จะต่อออกไปที่ Host เพิ่มด้วย
Storage จะติดอยู่กับ Profile หนึ่งตัวในตอนที่เรา LXD Init ครั้งแรกนั้นเอง จากที่หาข้อมูล จะมีการแนะนำว่าให้ใช้ btrfs และ zsf
"Recommended setup : The two best options for use with LXD are ZFS and btrfs."
อ้างอิงจาก : https://lxd.readthedocs.io/en/latest/storage/
ข้อมูลเพิ่มเติม : https://medium.com/life-at-dek-d/
และในที่สุดเราก็เจอปัญหาจากการที่ Container ใช้งาน Storage จนเต็มแล้วเราเองก็ขยายมันไม่เป็นเลยทำให้ต้องไปหาข้อมูลเพิ่ม
แล้วนำมาเขียนเก็บไว้ในตอนนี้ เรื่องของ Storage Pool กับ Linux Container
เราคิดว่า Storage Pool นั้นสำคัญเพราะเป็นพื้นที่ใช้งานหลักของ Container เลย และบางส่วนก็จะต่อออกไปที่ Host เพิ่มด้วย
Storage จะติดอยู่กับ Profile หนึ่งตัวในตอนที่เรา LXD Init ครั้งแรกนั้นเอง จากที่หาข้อมูล จะมีการแนะนำว่าให้ใช้ btrfs และ zsf
"Recommended setup : The two best options for use with LXD are ZFS and btrfs."
อ้างอิงจาก : https://lxd.readthedocs.io/en/latest/storage/
ข้อมูลเพิ่มเติม : https://medium.com/life-at-dek-d/
วันอาทิตย์ที่ 28 กรกฎาคม พ.ศ. 2562
ลองใช้งาน Jenkins ไว้ Backup ข้อมูลแบบอัตโนมัติ
Jenkins เป็น Automate ที่ช่วยทำเกี่ยวกับ Software เช่นการ Build, Test, Deliver แล้วก็ Deploy
แต่ความคิดที่จะใช้งานครั้งนี้คือเอามา Backup ระบบ ลองดูว่าจะสามารถใช้งานได้ดีไหม และเหมาะสมไหม
ตอนนี้ผมใช้ OpenJDK 8 ในการรัน Jenkins | ข้อมูลจาก Jenkins - Getting Started
จากนั้นเข้าไปที่เครื่องโดยผ่าน Port 8080 ตามที่เรากำหนดไว้เพื่อทำตามขั้นต่อการติดตั้งต่อ
ให้เราใช้รหัสที่ได้จาก Console ตอนที่เราใช้คำสั่ง "java -jar jenkins.war --httpPort=8080"
แต่ความคิดที่จะใช้งานครั้งนี้คือเอามา Backup ระบบ ลองดูว่าจะสามารถใช้งานได้ดีไหม และเหมาะสมไหม
Install Jenkins
เริ่มด้วยการติดตั้งกันก่อน Jenkins ทำงานอยู่บน Java เราจำเป็นต้องติดตั้ง Java กันก่อนตอนนี้ผมใช้ OpenJDK 8 ในการรัน Jenkins | ข้อมูลจาก Jenkins - Getting Started
sudo apt install openjdk-8-jdk wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war java -jar jenkins.war --httpPort=8080 # เราจะเห็นรหัส สำหรับใช้ในการ Login เพื่อเข้าไปทำการติดตั้งในหน้าเว็บต่อ
จากนั้นเข้าไปที่เครื่องโดยผ่าน Port 8080 ตามที่เรากำหนดไว้เพื่อทำตามขั้นต่อการติดตั้งต่อ
ให้เราใช้รหัสที่ได้จาก Console ตอนที่เราใช้คำสั่ง "java -jar jenkins.war --httpPort=8080"
สมัครสมาชิก:
บทความ (Atom)