Topic List
เปลี่ยน 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
ติดตั้ง 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 ด้วยนะ
ที่มา
- Installing LAMP On Ubuntu For Newbies
- How to move mysql database to another drive or partition
- howtoforge.com
#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
Web Server ที่ใช้งานอยู่ปัจจุบัน กำลังจะถูกโยกย้ายไปไว้ที่ศูนย์คอมพิวเตอร์ ม.อ. เลยต้องหา Server ตัวใหม่มาทดแทน ที่เล็ง ๆ ไว้ คือ Dell R210 ด้วยความที่ราคาไม่แพงเกิน คุณภาพน่าจะ OK (จากที่ใช้ Dell R200 มาเกือบ 3 ปี ไม่เคยมีปัญหาเลย)
สรุปคร่าว ๆ ได้ดังนี้
ชุดมาตรฐานจาก 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
แต่ที่อยากได้ คือ Dell R210 Intel Xeon X3440 2.53GHz 4GB(2x2GB) Memory , 500GBx2 Harddisk , DVD Combo ราคาประมาณ 40k
กำลังศึกษาการเขียน Apache rewrite rule จะทำ subdomain redirect ไปสู่โปรแกรม
เช่น http://bear.softganz.com ไป http://www.softganz.com/index.php?u=bear
เขียนยากจริง ๆ พยายามทำความเข้าใจอยู่ หากพอจะเข้าใจ จะมาเขียนอธิบายรายละเอียดอีกที
แหล่งเรียนรู้
ติดตั้ง 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 เปิดอัตโนมัตเมื่อเปิดเครื่อง
อ้างอิง
เครื่องมือสำหรับตรวจสอบการทำงานของ server ที่ SysAdmin ควรมีและควรรู้
ตามไปดูได้ที่ http://www.cyberciti.biz นะครับ
อาจจะต้องเขียน bash scripting มากขึ้น หลังจากต้องดูแล server เอง เลยขอเก็บคู่มือ - reference ของการเขียน bash scripting มาเก็บไว้เพื่อศึกษาในภายหลัง
อยู่ที่ Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting
พรบ.คอมพิวเตอร์บังคับให้เก็บ log ไว้อย่างน้อย 90 วัน
ขอเก็บรายละเอียดการทำไว้ก่อน ได้มาจาก แนะนำเก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน แบบง่าย ๆ
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 ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..
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#" พอทำต่อ เหมือนกับไม่สำเร็จ