ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

Topic List

โดย Little Bear on 17 ก.ค. 54 15:16

เปลี่ยน permission ของโฟลเดอร์เป็น 711 และ ไฟล์เป็น 644

สำหรับเว็บไซท์ที่ใช้ suPHP ส่วน code บรรทัดแรกยังไม่รู้เหมือนกันว่าทำอะไร ส่วนบรรทัดสุดท้ายนั้นจะเปลี่ยน owner/group ให้เป็นของแต่ละคน ซึ่งอาจจะไม่จำเป็น

cd /usr/local/directadmin/scripts && ./set_permissions.sh user_homes
find /home/*/domains/*/public_html -type d -print0 | xargs -0 chmod 711
find /home/*/domains/*/public_html -type f -print0 | xargs -0 chmod 644
cd /usr/local/directadmin/data/users && for i in `ls`; do { chown -R $i:$i /home/$i/domains/*/public_html;}; done;

หาคำในไฟล์

ในที่นี้จะเป็นการหาคำว่า iframe แล้วบันทึกเก็บไว้ในไฟล์ iframe.txt

find /home/*/domains/*/public_html/ -maxdepth 100 -name *index* -exec grep -H "iframe" {} ";" > iframe.txt
โดย Little Bear on 21 มิ.ย. 54 12:33

ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)

ผ่านไป 2 ปี ก็ถึงเวลาต้องติดตั้ง Ubuntu ใหม่เสียที คราวนี้เลยถือโอกาสเปลี่ยนเป็น Ubuntu 11.04 64 bit ไปเลย ก็เลยลองมารีวิวการติดตั้ง LAMP บน Ubuntu ใหม่ว่ามีอะไรที่เปลี่ยนแปลงไปบ้าง

หมายเหตุ : การติดตั้งต่อไปนี้ใช้สิทธิ์ของ root ขอให้เข้าสู่สิทธิ์ของ root โดยการเปิด terminal แล้วพิมพ์ sudo su

Install L.A.M.P Stack (Apache, Mysql, PHP) ทีเดียวซะเลย

root@god:/# apt-get install lamp-server^

แล้วก็ลง phpMyAdmin

root@god:/# apt-get install phpmyadmin

เลือก Apache แล้ว YES สำหรับ dbconfig-common.

ติดตั้งเพิ่มเติม

php5-curl

root@god# apt-get install php5-curl

หรือชอบที่จะลงทีละตัว ก็

Install Apache

root@god:/# apt-get install apache2

Enable mod_rewrite

root@god:/# a2enmod rewrite

เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url

root@god:/# nano /etc/apache2/sites-available/default
  • เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
  • แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All

Install PHP

root@god:/# apt-get install php5 libapache2-mod-php5 php5-gd
root@god:/# /etc/init.d/apache2 restart

Install MySQL

root@god:/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
root@god:/# /etc/init.d/apache2 restart

หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง

root@god:/# cp /media/disk/var/lib/mysql/* /var/lib/mysql/
root@god:/# chown -hR mysql /var/lib/mysql/*
root@god:/# chgrp -hR mysql /var/lib/mysql/*

ย้ายข้อมูล mysql ไปไว้ที่อื่น

root@god:/# /etc/init.d/mysql stop
root@god:/# mkdir /home/mysql
root@god:/# chown -R mysql:mysql /home/mysql
root@god:/# cp -r /var/lib/mysql/mysql /home/mysql/
root@god:/# chown -R mysql:mysql /home/mysql/*

แล้วแก้ my.cnf

root@god:/# nano /etc/mysql/my.cnf

หาคำนี้ให้เจอ :

datadir = /var/lib/mysql

แล้วเปลี่ยนเป็นตำแหน่งใหม่ :

datadir = /home/mysql

เสร็จแล้วก็ restart mysql service

root@god:/# /etc/init.d/mysql start
Starting MySQL database server mysqld [ OK ]

แล้ว mysql จะทำการสร้างไฟล์ ibdata1, ib_logfile0, อื่น ๆ ขึ้นมาใหม่

ทุกอย่างน่าจะเรียบร้อย แต่ผมไม่สามารถ start mysql ได้ มันค้างอยู่ เลยต้องไปแก้ค่าในไฟล์ /etc/apparmor.d/usr.sbin.mysqld โดยเปลี่ยนค่า /var/lib/mysql ให้เป็น /home/mysql ด้วย

แล้วคราวนี้ก็ทำการ copy ฐานข้อมูลเก่า ๆ มาได้เลย อย่าลืมเปลี่ยน owner/group เป็น mysql ด้วยนะ

ที่มา

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
โดย Little Bear on 23 มี.ค. 54 21:47

Web Server ที่ใช้งานอยู่ปัจจุบัน กำลังจะถูกโยกย้ายไปไว้ที่ศูนย์คอมพิวเตอร์ ม.อ. เลยต้องหา Server ตัวใหม่มาทดแทน ที่เล็ง ๆ ไว้ คือ Dell R210 ด้วยความที่ราคาไม่แพงเกิน คุณภาพน่าจะ OK (จากที่ใช้ Dell R200 มาเกือบ 3 ปี ไม่เคยมีปัญหาเลย)

สรุปคร่าว ๆ ได้ดังนี้

  1. ชุดมาตรฐานจาก Dell R210 Intel Xeon X3440 2.53GHz 2GB(2x1GB) Memory , 500GB Harddisk , DVD Combo = 31,042.- จาก thaihosttalk.com , tws.co.th , rackserverthai.com , pantiponline.com

  2. แต่ที่อยากได้ คือ Dell R210 Intel Xeon X3440 2.53GHz 4GB(2x2GB) Memory , 500GBx2 Harddisk , DVD Combo ราคาประมาณ 40k

  3. Dell Specification

โดย Little Bear on 28 ก.ค. 53 16:54

กำลังศึกษาการเขียน Apache rewrite rule จะทำ subdomain redirect ไปสู่โปรแกรม

เช่น http://bear.softganz.com ไป http://www.softganz.com/index.php?u=bear

เขียนยากจริง ๆ พยายามทำความเข้าใจอยู่ หากพอจะเข้าใจ จะมาเขียนอธิบายรายละเอียดอีกที

แหล่งเรียนรู้

โดย Little Bear on 17 พ.ค. 53 21:25

ติดตั้ง Ubuntu Server ให้เรียบร้อย พร้อมอัพเดตให้เป็นล่าสุด

sudo apt-get update

หากต้องการใช้งาน Ubuntu desktop ให้ติดตั้ง

sudo apt-get install ubuntu-desktop

ขั้นตอนการติดตั้ง Samba

1.ติดตั้ง Ubuntu Server โดยไม่ต้องติดตั้ง package ใด ๆ เราจะมาติดตั้ง Samba กันตอนหลัง

2.ติดตั้ง Samba

sudo apt-get install samba

3.แก้ไขคอนฟิกของ Samba

sudo nano /etc/samba/smb.conf

4.เปลี่ยนค่าใน global ของคอนฟิก อย่าลืมสร้าง share directory ด้วยนะ ส่วนกลุ่ม Sharing หากยังไม่มีก็ป้อนเข้าไปใหม่ทั้งหมด

[global]
workgroup = YOUR_WORK_GROUP
netbios name = YOUR_COMPUTER_NAME
security = SHARE
auth methods = guest
domain master = No
wins support = Yes

[Sharing]
comment=My Ubuntu
path = /home/your_home_directory/Sharing
read only = No
guest ok = Yes

5.บันทึกให้เรียบร้อย แล้วสั่ง restart Samba

smbd restart

ติดตั้ง VirtualBox สำหรับลง Windows

เพิ่มบรรทัดด้านล่างไว้ใน /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian lucid non-free

The Sun public key for apt-secure can be downloaded here. You can add this key with

wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

The key fingerprint is

AF45 1228 01DA D613 29EF  9570 DCF9 F87B 6DFB CBAE Sun Microsystems, Inc. (xVM VirtualBox archive signing key) info@virtualbox.org

To install VirtualBox, do

sudo apt-get update
sudo apt-get install virtualbox-3.1

Replace virtualbox-3.1 by

  • virtualbox-3.0 to install VirtualBox 3.0.14
  • virtualbox-2.2 to install VirtualBox 2.2.4
  • virtualbox-2.1 to install VirtualBox 2.1.4
  • virtualbox-2.0 to install VirtualBox 2.0.12
  • virtualbox to install VirtualBox 1.6.6

สร้าง GuestOS โดยกำหนด Network ให้เป็น Bridge และลง OS ให้เรียบร้อย

Mount share folder ให้กับ GuestOS ได้มาจาก HOWTO: Use Shared Folders

sudo mount -t vboxsf share ~/host

หรือ Mount ให้กับผู้ใช้งานปัจจุบัน

sudo mount -t vboxsf -o uid=1000,gid=1000 share ~/host



ทำให้ GuestOS เปิดอัตโนมัตเมื่อเปิดเครื่อง

อ้างอิง

โดย Little Bear on 29 พ.ย. 52 19:58

เครื่องมือสำหรับตรวจสอบการทำงานของ server ที่ SysAdmin ควรมีและควรรู้

ตามไปดูได้ที่ http://www.cyberciti.biz นะครับ

โดย Little Bear on 3 ก.ย. 52 18:29

อาจจะต้องเขียน bash scripting มากขึ้น หลังจากต้องดูแล server เอง เลยขอเก็บคู่มือ - reference ของการเขียน bash scripting มาเก็บไว้เพื่อศึกษาในภายหลัง

อยู่ที่ Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting

โดย Little Bear on 25 ส.ค. 52 13:55

พรบ.คอมพิวเตอร์บังคับให้เก็บ log ไว้อย่างน้อย 90 วัน

ขอเก็บรายละเอียดการทำไว้ก่อน ได้มาจาก แนะนำเก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน แบบง่าย ๆ

โดย Little Bear on 23 ส.ค. 52 21:04

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้ เพราะว่าถ้าเกิดหลุดขึ้นมา จะอันตรายมาก ๆ วิธีการป้องกันก็คือ ไปกำหนดเพิ่ม ใน httpd.conf ดังต่อไปนี้ สมมติว่า /home/webmaster/public_html/webboard/file เป็นส่วนที่ใช้เก็บรูปของบอร์ดเวลา post ขึ้นไป ผมก็จะกำหนดเพิ่มดังนี้

<Directory "/home/webmaster/public_html/webboard/file">
Options Indexes MultiViews -ExecCGI
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off
</Directory>

เท่านี้ก็ปลอดภัยอีกระดับนึงครับ ถ้าเกิด script เราหลุด hacker สามารถ upload file ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..

โดย Little Bear on 3 ส.ค. 52 18:32

Step 1: Securing /tmp

Step 1.1: Backup your fstab file

cp /etc/fstab /etc/fstab.bak

Step 1.2: Creating tmpmnt partition file (Around 1Gb in size)

cd /var
dd if=/dev/zero of=tmpMnt bs=1024 count=1048576

Step 1.3: Format the new partition

mkfs.ext3 -j /var/tmpMnt

Press Y when asked

Step 1.4: Making backup of old /tmp

cp -Rp /tmp /tmp_backup

Step 1.5: Mount the tmp filesystem

mount -o loop,noexec,nosuid,rw /var/tmpMnt /tmp

Step 1.6: Set the right permissions

chmod 0777 /tmp

Step 1.7: Copy the files back to new tmp folder

cp -Rp /tmp_backup/* /tmp/

Step 1.8: Adding new /tmp filesystem to fstab

echo "/var/tmpMnt /tmp ext3 loop,rw,noexec,nosuid,nodev 0 0" >> /etc/fstab

Step 2: No need for 2 tmp filesystems, so we symlink /var/tmp to /tmp

rm -rf /var/tmp/
ln -s /tmp/ /var/tmp

ปล.ลองทำแล้ว แต่ติดอยู่ที่ step 1.5 มีแจ้งว่า "mount: no permission to look at /dev/loop#" พอทำต่อ เหมือนกับไม่สำเร็จ