แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - อั๋น ทรงวุฒิ

หน้า: [1] 2 3 ... 10
1
หากต้องการดู log file อะไรสักอย่างแบบ Real time เราสามารถใช้คำสั่ง

อ้างถึง
tail -f ตามด้วยชื่อไฟล์

มันจะแสดงรายการ log ใหม่ๆ แบบ Real time  ให้เราดู หากต้องการออกจากหน้าจอก็กด Ctrl + c

2
ติดตั้ง PostgreSQL ก่อน แนะนำรุ่น 11


อ้างถึง
apt install libldap2-dev libsasl2-dev python3-pyldap  python3-vobject python3-qrcode python3-pip npm  libpq-dev -y

pip3 install vobject qrcode
pip3 install pyldap
pip3 install num2words

npm install -g rtlcss
npm install -g less

git clone  https://github.com/odoo/odoo.git  -b master  --single-branch --depth 1

pip3 install -r requirements.txt


อ้างถึง
./odoo-bin --addons-path=[addons],../mymodules --db-filter=[mydb]

3
อ้างถึง

//แปลงภาษาไทย แบบ tis-620 เป็น utf-8 ใน array

array_walk_recursive($person, function(&$value, $key) {
    if (is_string($value)) {
        $value = iconv('tis-620', 'utf-8', $value);
    }
});

4
พัฒนาเว็บไซต์ Webbased Developer / yii 1.1 : ยกเลิก main.css
« เมื่อ: 25 กุมภาพันธ์ 2019, 09:01:33 PM »
เนื่องจาก css ใน yii มันมีความเชยพอตัว เราก็เลยอยากใช้ css framework ตัวอื่นแทน มีวิธีปิด main.css ดังนี้

[ views/site/pages/about.php ]

อ้างถึง
Yii::app()->clientScript->scriptMap = array(
    'main.css' => false
);

5
พัฒนาเว็บไซต์ Webbased Developer / yii 1.1 : pretty url
« เมื่อ: 25 กุมภาพันธ์ 2019, 08:49:27 PM »
 [ .htaccess ]

อ้างถึง
Options +FollowSymLinks
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php

RewriteRule . index.php [L]


[ protected/config/main.php ]

อ้างถึง
'urlManager'=>array(
                        'showScriptName'=>false,
                        'urlFormat'=>'path',
                        'rules'=>array(
                                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
                                'gii'=>'gii',
                                'gii/<controller:\w+>'=>'gii/<controller>',
                                'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',
                        ),
                ),


6
ผมได้มีโอกาสไปซ่อมเครื่องที่สำนักงานพัฒนาชุมชน พบว่าการตั้งค่าให้ Boot ผ่าน USB เป็นเรื่องพิศวง ไม่มีภาพขึ้นจอ มีแต่เสียงตี๊ด 2 ครั้งแล้ว Reboot ตัวเองวนไป

ผมเสียเวลากับมันหลายชั่วโมง กว่าจะปิดงานได้ แล้วก็ลืมวิธีการจัดการมันไป

ผ่านไปประมาณ 2 ปี ได้กลับมาเจอมันอีกครั้ง เพื่อลง Windows ใหม่ ปัญหาเดิมกลับมาหลอน ไล่ search ข้อมูลอยู่นาน ไม่เป็นผล กดปุ่ม reset bios หลายรอบ ก็ไม่ดีขึ้น

จนต้องรื้อเครื่องมาจัดการอย่างละเอียด ถอดการ์ดจอ เสียบสายจอกับช่อง VGA Onboard จึงได้เห็นภาพขึ้นจอให้ใจชื้น

เครื่องแบรนด์ที่ต่อการ์ดจอ มักจะไม่แสดงภาพในขั้นตอน POST กว่าจะเห็นภาพอีกที ก็ตอนที่เครื่องมัน Boot เข้า Windows แล้ว

7
อ้างถึง
VBoxmanage modifyhd MyLinux.vdi --resize 100000

100,000 => 100GB

จากนั้นใช้โปรแกรมประเภท Paritiion Magic หรือ Gparted ทำการขยายขนาด Partition  ได้โดยข้อมูลไม่หาย

8
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / DOCKER : PostgreSQL and pgAdmin
« เมื่อ: 07 กุมภาพันธ์ 2019, 10:31:39 AM »
20 นาทีพร้อมใช้ : การเตรียม Postgresql และ pgAdmin ใน Ubuntu

1 ) ลง Ubuntu จาก ไฟล์ .iso แนะนำให้ลงแบบ Textmode จากนั้นใช้สิทธิ์ root ในข้อถัดไปทุกขั้นตอน

2 ) อัพเกรดระบบเป็นตัวล่าสุด
อ้างถึง
apt update && apt upgrade -y

3 ) ติดตั้ง Docker ซึ่งจะมีหน้าที่เหมือนตู้ Container ให้ระบบฐานข้อมูลอยู่ในนั้น
อ้างถึง
apt install -y  docker.io 

4 ) ติดตั้ง docker-compose เป็นตัวจัดการโปรแกรม ให้ทำงานแบบเป็นไฟล์สคริปต์

อ้างถึง
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

5 ) เปิดโหมดไฟล์สคริปต์ที่โหลดมาจากข้อ 4 ให้สามารถ execute ได้

อ้างถึง
chmod +x /usr/local/bin/docker-compose

6 ) เตรียมพื้นที่สำหรับเก็บข้อมูลระบบของเรา

อ้างถึง
mkdir /var/docker/pg10 && cd /var/docker/pg10


7 ) สร้างไฟล์ docker-compose.yml ด้วยคำสั่ง

อ้างถึง
nano docker-compose.yml

โปรดระวังเรื่องการจัดย่อหน้าให้ตรงกัน

โค๊ด: [Select]
version : '2'
services :
pgsql:
  container_name: pgsql
  image: postgres:10.6-alpine
  ports:
    - "5432:5432"
  environment:
    - POSTGRES_PASSWORD=hosxp
    - POSTGRES_USER=hosxp
    - POSTGRES_DB=hosxp
  volumes:
    - ./data:/var/lib/postgresql
  restart: always
 

pgadmin:
  container_name: pgadmin
  image: fenglc/pgadmin4:python3.6-alpine
#   user : [email protected], passwd : admin

  ports:
    - "5050:5050"

8 ) ดำเนินการขึ้นระบบค้วยคำสั่งเดียว ซึ่งมันจะ Download โปรแกรมทั้งหมด และ config ให้เราพร้อมใช้งาน

อ้างถึง
docker-compose up -d

9 ) ทดสอบใช้ Navicat เชื่อมต่อ หรือ เข้า Browser => http://(ip เครื่อง):5050


ข้อมูลจะอยู่ใน /var/docker/pg10/data ปิดเครื่องแล้วไม่หาย

9
ในบางครั้งเปิดไฟล์งานเก่าที่ใช้รหัสภาษาไทยแบบ Windows 874 หรือ Tis-620 ใน MS Visual Studio Code (vscode)
ซึ่งปัจจุบันนิยมใช้รหัสแบบ UTF-8 ที่รองรับหลายภาษา ทำให้มองเห็นตัวอักษรภาษาไทยเพี้ยน อ่านไม่รู้เรื่อง

วิธ๊แก้ไข ให้ดูมุมขวาล่างของจอ มันจะแสดง Codepage ล่าสุดที่ใช้อยู่
ให้กด Reopen with Encoding แล้วเลือกรหัสภาษาให้ถูก

10
อ้างถึง
hostnamectl set-hostname (ชื่อใหม่)

[ /etc/cloud/cloud.cfg ]

อ้างถึง
preserve_hostname: true

[/etc/hosts]
อ้างถึง
127.0.0.1       localhost
127.0.1.1       ชื่อใหม่

11
ถ้าพื้นที่ใน server กำลังจะเต็ม จะทำอย่างไร ?

ทางแก้คือสร้าง NFS share พื้นที่ข้ามเครื่อง จากนั้นก็จะมี folder โล่งๆ ให้รับข้อมูล

ปกติการใช้ mysqldump จะมีข้อเสียคือ ระหว่าง backup ฐานข้อมูลจะถูกล็อคการบันทึก ซึ่งถ้าเป็นหลัก 10GB ขึ้นไป ต้องรอกันนาน

ทางออกคือใช้โปรแกรม Percona XtraBackup (https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html)

อ้างถึง
xtrabackup --backup  --target-dir=/data/backups --datadir=/var/lib/mysql

ฐานข้อมูลขนาด 250GB ใช้เวลาประมาณ 1 ชั่วโมง 30 นาที

จากนั้นต้องทำการ prepare ก่อนนำข้อมูลไป restore

อ้างถึง
xtrabackup --prepare --target-dir=/data/backups/

แล้วทำการ สำเนา /data/backup ไปเครื่องปลายทาง


12
mysql-bin.000001 จะบันทึกร่องรอยของการแก้ไขเพิ่มเติมในฐานข้อมูล ซึ่งเครื่อง slave ก็จะอ่านไป update เครื่องตัวเองให้ตรงกับ Master
นอกจากนี้เครื่อง Master ก็ควรตั้งเวลาให้ Log ถูกลบอัตโนมัติภายในกี่วัน ซึ่งถ้าไม่ทำ อาจจะทำให้ Harddisk เต็มได้

[my.cnf]

อ้างถึง
[mysqld]
log-bin=mysql-bin
server-id=1
expire_logs_days=3

การลบ Log แบบ Manual ทำได้ด้วยคำสั่ง PURGE BINARY LOGS TO 'mysql-bin.03';
มันจะไล่ลบข้อมูลก่อนหน้าจนถึงไฟล์ที่เราระบุไว้ หรืออาจจะระบุเป็นวันก็ได้
PURGE BINARY LOGS BEFORE '2008-12-15 10:06:06';
ประโยชน์อีกอย่างของ bin log คือ ใช้แกะรอยความเปลี่ยนแปลงใน database ได้
mysqlbinlog binlog_files > newer_transaction.sql

13
เหมือนว่าคำสั่ง sysv-rc-conf ใน ubuntu 18.04 จะถูกถอดออกไปแล้ว คำสั่งที่น่าจะใช้การแทนได้คือ
อ้างถึง

systemctl status
systemctl stop some-service
systemctl disable some-service



14
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / Network config : Ubuntu 18.04
« เมื่อ: 20 กันยายน 2018, 01:25:57 PM »
[ /etc/netplan/01-network-manager-all.yaml ]

อ้างถึง
network:
 version: 2
 renderer: networkd
 ethernets:
   enp3s0: (เปลี่ยนเอง)
     dhcp4: no
     dhcp6: no
     addresses: [192.168.1.100/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]


netplan apply  แล้วทำการ Restart ก็ควรจะใช้การได้

15
ปกติ ถ้าผู้ใช้งานเรียกหน้าเว็บที่ไม่มีอยู่จริง มันจะขึ้นข้อความว่า

อ้างถึง
Oops! That page can’t be found.

It looks like nothing was found at this location. Maybe try one of the links below or a search?

นั่นหมายความว่า คะแนน SEO ในเว็บก็จะตก ทางแก้คือ หาไม่เจอก็ให้มันโผล่ไปที่หน้าแรก

การแก้ไขคือ ให้สร้างไฟล์ 404.php ใน theme ของเรา

อ้างถึง
<?php
// Permanent redirection
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.".$_SERVER["SERVER_NAME"]);
exit();
?>

หน้า: [1] 2 3 ... 10