Category: CMS (Joomla!, Moodle, Wordpress)

  • How to list linux file permissions in Octal Notation

    วันนี้เนื่องจากทีมผู้ดูแล  Web Hosting ต้องการดูว่ามีไฟล์ไหนบ้างที่มี permission เป็น 777 ก็เลยนั่งหาดูพบว่า สามารถใช้คำสั่ง stat ในการดูได้ เช่น

    $stat -c "%a %n" /var/www

    ผลลัพธ์
    Screenshot from 2013-05-01 11:47:06

    หรือ

    $stat -c "%A (%a) %8s %.19y %n" /var/www

    ผลลัพธ์
    Screenshot from 2013-05-01 11:49:19

    ทั้งนี้เนื่องจากไม่สามารถทำให้มัน recursive ได้ ก็ต้องหาไปทีละโฟลเดอร์ …. จนกระทั่งเจออีกคำสั่ง คือ สร้าง alias ชื่อ lso ดังนี้

    $alias lso="ls -alG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

    เมื่อจะใช้งาน ก็เพียงสั่ง lso ที่คอมมานด์ไลน์ ผลลัพธ์
    Screenshot from 2013-05-01 11:54:27

    สามารถปรับ option ของ ls ใน alias ให้ recursive ได้โดยเพิ่ม R ตัวใหญ่ลงไป ดังนี้

    $alias lso="ls -alGR | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

    เมื่อเรียกใช้จะได้ผลลัพธ์
    Screenshot from 2013-05-01 11:57:21

    สามารถใช้ร่วมกับ grep เพื่อค้นหาเฉพาะค่าที่ต้องการ เช่น

    $lso|grep " ^777"

    ผลลัพธ์
    Screenshot from 2013-05-01 13:11:12

    ก็พอจะช่วยได้บ้างครับ Big Smile ขอให้สนุกครับ

    ที่มา

    http://thenubbyadmin.com/2012/02/16/how-to-list-linux-file-permissions-in-octal-notation/

    http://askubuntu.com/questions/152001/how-can-i-get-octal-file-permissions-from-command-line

  • WordPress file owner and permission

    ตอนนี้เราควรให้ความสำคัญกับความปลอดภัยของเว็บไซต์ wordpress โดยการตั้งค่าสิทธิของไดเรกทอรีและไฟล์มากขึ้นเพราะมีข่าวที่เว็บไซต์มีช่องโหว่แล้วถูกฝังโค้ด

    เช่น แต่เดิมเราติดตั้ง wordpress ไว้ในไดเรกทอรี /var/www/wordpress แล้วเพื่อให้ทำงานติดตั้ง plugins เพิ่ม ปรับแต่งหน้าเว็บด้วย themes ใหม่ๆ หรือการอัปโหลดรูปภาพและสื่อ รวมทั้งการ upgrade เวอร์ชั่นของ wordpress ทำได้สะดวกง่ายๆ ด้วยการกำหนดสิทธิอย่างง่ายคือ

    sudo chown -R www-data.www-data /var/www/wordpress

    ก็ใช้งานได้แล้ว แต่ดูเหมือนว่าสักวันหนึ่งเราอาจจะเป็นเหยื่อได้ ผมได้คุยกับน้องใหญ่ แล้วก็ลงความเห็นกันว่า เราควรตั้งค่า file owner และ file permission ให้มันเข้มขึ้นแต่ยังสะดวกในการทำงานติดตั้งอะไรๆได้ด้วย ก็เป็นที่มาของคำสั่งข้างล่างนี้

    อันดับแรกก็จะต้องกำหนด file owner กันก่อน ถ้า ubuntu server ของเรา ใช้ username คือ mama และมี group ชื่อ adm ซึ่งเป็นชื่อ group ที่มีสิทธิทำอะไรได้มากกว่า user ธรรมดา ก็ใช้ mama:adm นี้ได้ หรือจะใช้ mama:mama ก็ได้ครับ (ที่เป็น adm ก็เผื่อไว้ว่าวันหนึ่งเราอาจจะเพิ่ม username สักคนเข้าใน groupname adm นี้ก็เท่านั้นเอง) ดังนี้

    sudo chown -R mama:adm /var/www/wordpress
    sudo chown -R mama:adm /var/www/wordpress/wp-content/

    ถัดมาก็กำหนด file owner ที่ให้สิทธิ apache web server ซึ่งใช้ username คือ www-data และ groupname คือ www-data เพียงแค่ไดเรกทอรีที่จำเป็น ดังนี้

    sudo chown -R mama:www-data /var/www/wordpress/wp-content/plugins
    sudo chown -R mama:www-data /var/www/wordpress/wp-content/themes
    sudo chown -R mama:www-data /var/www/wordpress/wp-content/upgrade
    sudo chown -R mama:www-data /var/www/wordpress/wp-content/uploads

    ถัดไปก็กำหนด file permission ให้กับไดเรกทอรีเหล่านี้ด้วย (ผมเพิ่ม -R ลงไปในคำสั่งด้านล่างนี้ด้วยแล้ว) ดังนี้

    chmod -R 775 /var/www/wordpress/wp-content/plugins
    chmod -R 775 /var/www/wordpress/wp-content/themes
    chmod -R 775 /var/www/wordpress/wp-content/upgrade
    chmod -R 775 /var/www/wordpress/wp-content/uploads

    สุดท้าย เราต้องแก้ไขไฟล์ชื่อ wp-config.php ด้วยนะ เหตุผลตรงนี้คือ เราไม่ต้องการติดตั้งแบบที่มันจะถาม ftp user แต่ต้องการให้ติดตั้งได้อัตโนมัติ ให้แก้ไขดังนี้

    sudo vi /var/www/wordpress/wp-config.php

    โดยให้แทรกบรรทัด

    define('FS_METHOD', 'direct');

    ไว้ก่อนบรรทัดนี้ อยู่ประมาณ 10 บรรทัดนับจากท้ายไฟล์ครับ

    /* That’s all, stop editing! Happy blogging. */

    ผมคิดว่าหากเป็น CMS ตัวอื่นๆ ก็คงใช้แนวทางเดียวกันนี้ได้

    ขอจบเพียงเท่านี้ และขอขอบคุณข้อมูลจากคุณเกรียงไกร หนูทองคำ ครับ

  • อัปเดต wordpress เปลี่ยน theme และเพิ่ม plugins

    ผมได้รับความช่วยเหลือจากเพื่อนร่วมงาน น้องใหญ่ เพื่อที่จะปรับปรุงให้หน้าแรกไม่ยืดยาวจนเกินไปในลักษณะแสดงข้อความส่วนต้นๆของเรื่องเท่านั้น  ก็ได้ theme ชื่อ toothpaste ดังรูปtheme-toothpaste

    และได้เพิ่ม plugin ชื่อ Authors Widget เพื่อแสดงรายชื่อผู้ที่เขียนบล็อก เพื่อความสะดวก ดังรูป

    plugin-authors-widget

    และได้เพิ่ม plugin ช่ื่อ List Category Posts เพื่อแสดงเฉพาะรายการชื่อเรื่องเท่านั้นดูได้ในเมนู หมวดหมู่ ดังรูป

    plugin-list-category-posts

    และได้ตั้งค่าให้แสดง Categories, Authors และ Archives เป็นแบบ Drop Down List รวมทั้งตั้งให้แสดงหน้าแรกเพียง 3 เรื่องล่าสุด เพื่อให้หน้าจอสั้นลง

    หวังว่าเพื่อนๆคงถูกใจครับ

  • ตั้งค่าการเผยแพร่บทความให้อ่านได้เฉพาะสมาชิกที่ login

    ใน wordpress เราสามารถตั้งค่าการเผยแพร่บทความให้อ่านได้เฉพาะสมาชิกที่ login ทำได้โดยการติดตั้ง plugin เพิ่ม ผมได้ติดตั้ง plugin ชื่อ member access (member-access.1.1.6.zip) เพิ่มตามคำแนะนำของทีมงาน (ใหญ่และน้อง ศูนย์คอมฯ ขอบคุณครับ)

    วิธีใช้งานคือ เมื่อท่านเขียนบทความเสร็จ ตัดสินใจแล้วว่าจะเผยแพร่แบบให้สมาชิกที่ login เข้าสู่ระบบแล้วจะดูได้เท่านั้น (เพราะจำเป็นจริงๆ อาจมีความลับบางอย่างไม่อยากให้พี่ google ไปบอกต่อ)

    ให้ท่านดูที่ด้านขวามือ จะเห็นเป็น
    Status: Published Edit
    Visibility: Public Edit ซึ่งถูกต้องแล้ว

    จากนั้นให้เลือกตัวเลือกของ Member Access ด้านล่าง
    ตั้งค่าตัวเลือก Ignore the default settings and make this post visible only to members

    ผลลัพธ์จากการตั้งค่าครั้งนี้ ทำให้บทความไม่แสดงในหน้าเว็บไซต์ ถ้าไม่ login เข้าสู่ระบบก็จะไม่เห็นบทความ เมื่อคัดลอก link ส่งไปให้ ผู้ที่ได้รับ link ก็จะถูก redirect มายังหน้า login

  • วิธีการแก้ปัญหา JAuthentication::__construct: Could not load authentication libraries ใน joomla 2.5

    สวัสดีครับวันนี้มาเขียนเรื่องการแก้ปัญหา joomla version 2.5 ที่ผู้ใช้ไม่สามารถ login เข้า back end ได้ ดัง error ที่ปรากฏดังนี้ JAuthentication: :__construct: Could not load authentication libraries ซึ่งวิธีการแก้ไขนั้นหากเป็น joomla version 1.5.xx  เก่าๆ ก็ไป jos_login  ซึ่งหาเจอง่ายมาก แต่นี่เวอร์ชั่นใหม่มันไปหลบซ่อนอยู่ที่   rwyai_extensions > plg_authentication_joomla (อยู่หน้าที่3)>เลือก edit ปรับ enable จาก 0 ให้เป็น 1 และก็ save จากนั้นท่านก็จะสามารถเข้าไปใช้งานฝั่ง back end ของ joomla 2.5 ได้เหมือนเดิมแล้วครับ

  • วิธีย้ายบล็อก wordpress ไปเครื่องใหม่ชื่อโดเมนเนมใหม่

    บันทึกขั้นตอน (ตัวอย่าง) ในการย้ายบล็อก wordpress จากเครื่องเดิม sysadmin.in.psu.ac.th ไปยังเครื่องใหม่ โดเมนเนมใหม่ sysadmin.psu.ac.th เนื่องจากเครื่องเดิมจะมี resources ไม่เพียงพอ และต้องการเปลี่ยนชื่อโดเมนเนมอันใหม่ที่หลายคนว่าดูเหมาะสมและชื่อสั้นกว่า งานนี้บอกได้เลยว่าเล่นเอาเหงื่อตกเลย เพราะคิดว่าย้ายแบบ Joomla! ก็น่าจะได้ ซึ่งเป็นวิธีที่ใช้ไม่ได้ครับ สุดท้ายสำเร็จกับการติดตั้ง Duplicator Plugin ไว้ที่เครื่องเดิมก่อน แล้วสร้าง backup ไว้นำมา restore ลงในเครื่องใหม่

    เนื้อหาค่อนข้างยาวสักนิด ผมมีเจตนาอยากให้เห็นว่าการทำเว็บไซต์ขึ้นมาหนึ่งอัน เราต้องใช้ความรู้พอสมควร และที่ทำส่วนใหญ่ก็อ่านจากเว็บไซต์ของพี่วิภัทร นั่นคือ opensource.psu.ac.th นี่แหล่ะครับ

    1. เริ่มต้นจากกำหนดจำนวน resources ที่จำเป็นใช้ เพราะว่าจะไปขอใช้ Virtual Machine ของศูนย์คอมพิวเตอร์ ที่ขอไว้คือ RAM 2 GB, Hard disk 40 GB, OS Ubuntu 12.04.1, TCP Port 80,443
      แล้วกรอกในแบบฟอร์ม
    2. งานบริการเซิร์ฟเวอร์ก็สร้าง VM ให้ที่ทำการอัปเดต OS ให้แล้ว แจ้ง username ให้เข้าใช้งานผ่าน ssh
    3. เมื่อ ssh เข้าได้แล้ว เข้าทำงานในสิทธิ root ด้วยคำสั่ง
      sudo su –
    4. ทำการติดตั้ง Apps ที่จำเป็น ผมเลือก LAMP คือชุดรวมของ Linux, Apache, MySQL และ PHP ที่จำเป็นต้องใช้กับ wordpress ด้วยคำสั่ง
      tasksel
      เลือก LAMP
      จะมีคำถาม รหัสผ่านของ MySQL root ให้ตั้งที่จะจำได้
    5. ติดตั้งส่วนเพิ่มเติมของ php เพิ่มด้วยคำสั่ง
      apt-get install php5-gd php5-imap php5-ldap php5-radius
    6. ติดตั้ง unzip เพิ่มด้วยคำสั่ง
      apt-get install unzip
    7. ปรับแต่ง apache2 ให้ใช้งานแบบ module rewrite
      sudo a2enmod rewrite
    8. ต่อไปก็มาถึงเรื่องการปรับแต่ง apache2 ให้มี Virtual host แบบเปิด port สำหรับ http และ redirect http โดยแก้ไขไฟล์ /etc/apache2/sites-available/default
      <VirtualHost *:80>
      ServerAdmin webmaster@localhost
      ServerName sysadmin.psu.ac.th           <==== เพิ่มบรรทัดนี้
      DocumentRoot /var/www/wordpress
      …
      <Directory /var/www/wordpress>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All             <==== แก้ไขบรรทัดนี้จาก None เป็น All
      Order allow,deny
      allow from all
      </Directory>
      …     ที่เหลือเหมือนเดิม
      </VirtualHost>
      เพิ่มบรรทัดข้างล่างนี้ เพื่อให้ยังคงมีการ redirect ไปยังที่ใหม่หากใช้ชื่อเก่า
      <VirtualHost *:80>
      ServerName sysadmin.in.psu.ac.th
      Redirect / http://sysadmin.psu.ac.th/
      </VirtualHost>
    9. ต่อไปมาถึงเรื่องการปรับแต่ง apache2 ให้มี Virtual host แบบเปิด port สำหรับ https
      สั่งเปิด module ssl ด้วยคำสั่ง
      a2enmod ssl
      คัดลอกแฟ้ม PSU SSL certificates (file_a.crt, file_b.key และ file_c.ca-bundle) มาเก็บไว้ในไดเรกทอรีที่สร้างนี้
      mkdir -p /etc/apache2/ssl
      mv /home/username/file_* /etc/apache2/ssl/
      แล้วปรับเปลี่ยนสิทธิของแฟ้มด้วยคำสั่ง
      chown -R root:root /etc/apache2/ssl/file_*.*
      chmod 600 /etc/apache2/ssl/file_*.*
      แล้วแก้ไขไฟล์ /etc/apache2/sites-available/default เพื่อจัดการเกี่ยวกับ https และ Certificates
      เพิ่มบรรทัดต่อท้ายไฟล์
      NameVirtualHost *:443
      <VirtualHost *:443>
      DocumentRoot /var/www/wordpress
      ServerName sysadmin.psu.ac.th
      SSLEngine on
      SSLCertificateFile /etc/apache2/ssl/file_a.crt
      SSLCertificateKeyFile /etc/apache2/ssl/file_b.key
      SSLCertificateChainFile /etc/apache2/ssl/file_c.ca-bundle
      </VirtualHost>
    10. ต้องสั่งรีสตาร์ท apache2 ดังนี้
      service apache2 restart
      (more…)
  • KM เรื่อง การใช้งานสำหรับผู้เขียน wordpress

    KM เรื่อง การใช้งานสำหรับผู้เขียน wordpress ในวันนี้จะเล่าให้ฟังถึงเรื่องต่างๆดังนี้

    การเขียนเนื้อเรื่อง

    1. หลังจากมีเรื่องที่จะเขียน ให้ login เข้า โดยไปที่เมนูด้านบน “เขียนเล่าเรื่อง”
      คลิก Add New
      ที่ช่องตั้งชื่อเรื่อง ให้ตั้งเป็นภาษาอังกฤษก่อน แล้วค่อยเปลี่ยนเป็นภาษาไทย เช่น เรื่องที่เขียนนี้คือ
      “KM เรื่อง การใช้งานสำหรับผู้เขียน wordpress”
      ผมก็ตั้งเป็นว่า
      “KM How to authoring in wordpress”
      แล้วสังเกตที่บรรทัด Permalink มันตั้งให้เสร็จ สวยด้วย
      แล้วกลับไปแก้ไขเป็นชื่อภาษาไทย
    2. ตัวเอดิเตอร์ที่ใช้งานสามารถทำฟังก์ชันนี้ได้ คือ หากข้อความที่เขียนยาวมากๆ แนะนำให้ใช้เครื่องมือ Insert More Tag เพื่อแทรกแบ่งไปหน้าถัดไป
    3. อย่าลืมเพิ่ม Categories ของเรื่อง อยู่ทางด้านขวามือนะครับ
      รวมถึงเพิ่ม Tags ด้วยเพื่อใช้เป็นคำค้นนั่นเอง แล้วคลิก Add ด้วย
    4. โปรแกรม WordPress สามารถเก็บข้อความรอให้เขียนครบถ้วนก่อน เรียกว่า Save Draft ทำให้ได้ผลงานมากขึ้น
    5. คลิก View Post เพื่อดูว่าหากเผยแพร่โดยคลิก Publish แล้วผู้ใช้ทั่วไปจะเห็นอย่างไร
    การปรับแต่ง
    1. สำหรับ Profile ของผู้เขียน ถ้าใส่รายละเอียดในช่อง Biographical Info (อยู่ด้านล่าง) ไว้ เมื่อเผยแพร่ Post ไปแล้ว ผู้อ่านทั่วไปจะเห็นว่าผู้เขียนคือใคร มีอะไรที่ผู้เขียนอยากให้รู้เกี่ยวกับผู้เขียน และ
      อย่าลืมใส่รูปภาพที่คลิก Update Picture ด้วย หรือหากเคยสมัคร GRvatar ไว้แล้วก็ไม่ต้อง wordpress จะไปเอารูปภาพมาใส่ให้เอง
  • Joomla Folder 777

    • ก่อน เปลี่ยนต้องเปลี่ยน Site Offline เป็น yes ก่อนทุกครั้ง โดยการแก้ configuration.php แก้ไขบรรทัดที่เขียนว่า public $offline = ‘0’; เปลี่ยนเป็น public $offline = ‘1’;
    • โฟลเดอร์ที่ต้องเปลี่ยน permission เป็น 777 หรือเปลี่ยนให้ apache (www-data สำหรับ ubuntu) เป็นเจ้าของในระหว่างติดตั้ง component, module, language ได้แก่ (more…)
  • แล้วจะ Login เข้ามาเขียน Blog ได้ยังไง ??

    วิธีการคือ คลิกที่ “เขียนเรื่องเล่า” แล้วจึงพบปุ่ม Login