วิธีการติดตั้ง WebServer บน CentOS
โดยจะทำการติดตั้ง CentOS แบบ Minimal ซึ่งเป็นแบบที่ติดตั้งองค์ประกอบต่างๆน้อยที่สุด ไม่มี GUI ให้ใช้ เหมาะกับการเอาไปทำ Server เป็นอย่างยิ่ง และโปรแกรมอื่นๆที่จำเป็น เราจะมาทำการติดตั้งเพิ่มเติมเองในภายหลัง
อย่างแรกเราต้องทำการ Download ตัวติดตั้งมาก่อน ซึ่งจะมีให้เลือก Download อยู่ 2 แบบหลักๆ ตามชนิดของ CPU ของเราคือ i386 จะใช้สำหรับ CPU 32 บิท และ x86_64 จะใช้สำหรับ CPU แบบ 64 บิท
# i386 สำหรับ CPU 32 บิท
http://mirror.centos.org/centos/6.2/isos/i386/
http://mirror.centos.org/centos/6.2/isos/i386/
# x86_64 สำหรับ CPU 64 บิท
http://mirror.centos.org/centos/6.2/isos/x86_64/
http://mirror.centos.org/centos/6.2/isos/x86_64/
จากนั้นทำการ Download CentOS-6.2-i386-minimal.iso หรือ CentOS-6.2-x86_64-minimal.iso ตามชนิดของ CPU ของเรา
-ขั้นตอนแรกเลือก Install or upgrade an existing system
-Skip ไปเลยเพราะว่าเราไม่ต้องการทำการตรวจสอบแผ่น
-เข้าสู่หน้าจอการติดตั้งแบบกราฟฟิกอันสวยงาม กด Next
-ทำการเลือกภาษา
-จากนั้นเลือก Keyboard Layout
-ทำการเลือก Basic Storage Device เพราะว่าเราใช้ Hard Disk ธรรมดา
-กด Yes, discard any data เพื่อยืนยันว่าถ้ามีข้อมูลอยู่ใน Hard Disk ตัวนี้เราไม่เอามันแล้วนะให้ลบเลย
-ทำการตั้งชื่อเครื่อง จากนั้นคลิกที่ Configure Network เพื่อทำการกำหนด IP Address โดยเลือกไปที่ Wired และคลิก Edit ที่ eth0 ซึ่งเป็นการ์ดแลนของเราเอง (Network Configure หลังจากติดตั้งเสร็จก็ได้)
-ต่อไปทำการเลือกประเทศ
-กำหนดรหัสผ่านสำหรับ root
-เลือก Create Custom Layout เพราะว่าเราต้องการติดตั้งโดยแบ่ง partition เอง
-จะเห็นว่า Server จะมี ฮาร์ดดิส 1 ลูก ขนาด 50 G ที่ยังไม่ได้แบ่ง partition เราต้องทำการแบ่ง partition เอง
-เลือกสร้าง partition แบบ Standard partition
-สร้าง partition /boot พื้นที่เก็บ Kernel และไฟล์ที่เกี่ยวข้องกับการบูท
-พาร์ติชัน /boot ต้องเป็นพาร์ติชันแรกของฮาร์ดดิสก์
- กำหนดให้เป็น primary partition
-ขนาดโดยประมาณไม่ต่ำกว่า 100 MB
-แนะนำให้ กำหนด System Type เป็น ext2 เพราะ ext2 เป็น System Type แบบเก่า ข้อดีคือ ทำงานได้เร็ว ส่วน partition ที่เหลือให้กำหนด System Type เป็น ext4 เพราะเป็น System Type ตัวใหม่สุด ข้อดีคือ มีประสิทธิภาพมากขึ้นรวมทั้งความน่าเชื่อถือและคุณสมบัติที่ดีขึ้นอีกด้วย
-พาร์ติชัน /boot ต้องเป็นพาร์ติชันแรกของฮาร์ดดิสก์
- กำหนดให้เป็น primary partition
-ขนาดโดยประมาณไม่ต่ำกว่า 100 MB
-แนะนำให้ กำหนด System Type เป็น ext2 เพราะ ext2 เป็น System Type แบบเก่า ข้อดีคือ ทำงานได้เร็ว ส่วน partition ที่เหลือให้กำหนด System Type เป็น ext4 เพราะเป็น System Type ตัวใหม่สุด ข้อดีคือ มีประสิทธิภาพมากขึ้นรวมทั้งความน่าเชื่อถือและคุณสมบัติที่ดีขึ้นอีกด้วย
-สร้าง partition / (รูทไดเรกทอรี) พื้นที่เก็บไฟล์ซิสเต็ม กำหนดให้เป็น primary partition
-/ รูทไดเรคทอรี่ ขนาดไม่ต่ำกว่า 3-5 GB
-สร้าง partition swap พื้นที่ ที่ใช้เป็นหน่วยความจำาสำารอง เวลา RAM ไม่พอ
- กำหนดให้เป็น primary partition
- swap 2 เท่าของ RAM แต่ไม่เกิน 2 GB อันนี้เป็นหลักการทั่วไป สำาหรับ Red Hat Enterprise และ CentOS มีหลักการคำานวณอยู่ว่า ถ้า RAM ไม่เกิน 2 GB ให้คูณ 2 ถ้า RAM มากกว่า 2 GB ให้บวก 2 เช่น มี RAM 1
GB ก็ให้สร้าง swap 2 GB มี RAM 3 GB ให้สร้าง swap 5 GB
GB ก็ให้สร้าง swap 2 GB มี RAM 3 GB ให้สร้าง swap 5 GB
-สร้าง partition /home พื้นที่ใช้งานของ user
-สร้าง partition /var พื่นที่สำหรับติดตั้ง web
-สร้าง partition /usr พื่นที่สำหรับ เก็บ Package Install
-สร้าง partition /usr/local พื่นที่ Default Compile Package
-สร้าง partition /opt พื่นที่สำหรับ Backup Data
-สร้าง partition /tmp พื้นที่เก็บไฟล์ชั่วคราว
- เเป็นพาร์ติชันที่แยกออกมาเพื่อความปลอดภัยของเซิร์ฟเวอร์ถ้าพาร์ติชัน / ข้อมูลเต็มก็จะไม่มีผลกระทบกับระบบ
-ขนาดพาร์ติชันทั้งหมด ซึ่งจะเห็นว่า / (รูทไดเรกทอรี), /boot, swap ตั้งค่าเป็น Primary Partition ส่วนที่เหลือเป็นจะเป็น Extended Partition
-เมื่อติดตั้งเรียบร้อยแล้วคลิก Reboot
เมื่อ Reboot เรียบร้อยแล้วเราจะเห็นหน้าจอให้ใส่ Username และ Password (ไม่มีหน้าจอแบบ GUI ให้นะครับ เพราะว่าเราจะเอามาทำ Server หน้าจอกราฟฟิกแบบ GUI คงไม่จำเป็น)
-จากนั้นทำการ Disable SELinux โดยเข้าไปแก้ไขไฟล์คอนฟิกที่ /etc/selinux/config โดยแก้ไขให้SELINUX=disabled
-ต่อไปทำการ Disable Firewall
#chkconfig iptables off
-ต่อไปทำการ Reboot เครื่อง
#reboot
- Configuration Network เป็น DHCP เนื่องจากลง Install Server ใน VM
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
แก้ไข ONBOOT=”yes”
-Restart Network
#service network restart
เมื่อ Network ใช้งานได้ เราสามารถทำการ SSH เพื่อเข้าใช้งานได้แล้ว
-เนื่องจากเราลง CentOS บนเครื่อง Server แบบ Minimal แต่มักจะพลาด ตรงที่ว่า ถ้าจะมา Configuration บางที ต้องใช้ Command แบบดิบ ๆ ถ้าใครไม่ถนัดแนะนำให้ลง Setup Tool เพิ่ม
#yum install setuptool |
เมื่อเสร็จแล้ว เราลองเรียก tool โดยใช้คำสั่ง setup ดู ซึ่งปกติมันจะไม่มีอะไรอย่างอื่นติดมาให้ นอกจากเมนู Authentication Configuration
ดังนั้น เราจึงต้องมาลง Package อย่างอื่นเพิ่มเติม ดังนี้ครับ
#yum install system-config-network-tui system-config-firewall-base system-config-firewall-tuintsysv
คราวนี้ก็จะได้เมนู Configuration หลัก ๆ ตามที่เราต้องการแล้ว
ขั้นตอนการติดตั้ง Web Server
1. ตรวจสอบแพ็กเกจเว็บเซิร์ฟเวอร์
# rpm -qa httpd
# rpm -qa httpd
2. กรณียังไม่ได้ติดตั้งให้ทำการติดตั้งใหม่ดังนี้
# yum -y install httpd
# yum -y install httpd
3. ตรวจสอบพาทไฟล์คอนฟิก httpd.conf
# rpm -ql httpd | less
# rpm -ql httpd | less
4. ทำการแก้ไขไฟล์คอนฟิก
# cd /etc/httpd/conf
# ls
# vi httpd.conf
# cd /etc/httpd/conf
# ls
# vi httpd.conf
จุดที่แก้ไขและควรรู้จักมีดังนี้
# Timeout: The number of seconds before receives and sends time out. ช่วงเวลาที่ให้ผู้ใช้เรียกใช้งานเว็บไซต์
Timeout 120
# Timeout: The number of seconds before receives and sends time out. ช่วงเวลาที่ให้ผู้ใช้เรียกใช้งานเว็บไซต์
Timeout 120
#Listen 12.34.56.78:80 หมายเลขพอร์ตของเว็บเซิร์ฟเวอร์
Listen 80
Listen 80
# Load config files from the config directory "/etc/httpd/conf.d". โหลดโมดูลเสริม
Include conf.d/*.conf
Include conf.d/*.conf
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. กำหนดอีเมล์ผู้ดูแลระบบ
# ServerAdmin root@localhost เปลี่ยนเป็น
ServerAdmin admin@testwebserver.com
# e-mailed. กำหนดอีเมล์ผู้ดูแลระบบ
# ServerAdmin root@localhost เปลี่ยนเป็น
ServerAdmin admin@testwebserver.com
# DocumentRoot: พื้นที่เก็บเว็บไซต์หลัก
DocumentRoot "/var/www/html"
DocumentRoot "/var/www/html"
# UserDir: ต้องการให้ผู้ใช้ในระบบสร้างเว็บไซต์ได้ไหม
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#UserDir disable
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
# เปิดให้ผู้ใช้ในระบบมีเว็บไซต์ได้
UserDir public_html
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
# เปิดให้ผู้ใช้ในระบบมีเว็บไซต์ได้
UserDir public_html
# DirectoryIndex:ไฟล์หลักที่เรียกใช้งาน
DirectoryIndex index.html index.html.var index.php index.cgi index.shtml
DirectoryIndex index.html index.html.var index.php index.cgi index.shtml
# AccessFileName: เปิดใช้การป้องกันการเข้าถึงไดเร็กทอรี
AccessFileName .htaccess
AccessFileName .htaccess
# ScriptAlias: พื้นที่เก็บสคริปต์ CGI ที่สร้างจากภาษา PERL และ PYTHON
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# Specify a default charset for all content served; ฟอนต์หลักที่เรียกใช้งาน
AddDefaultCharset UTF-8
# To use CGI scripts outside of ScriptAliased directories: เพิ่มนามสกุลไฟล์ CGI
# (You will also need to add "ExecCGI" to the "Options" directive.)
AddHandler cgi-script .cgi .pl .py
AddDefaultCharset UTF-8
# To use CGI scripts outside of ScriptAliased directories: เพิ่มนามสกุลไฟล์ CGI
# (You will also need to add "ExecCGI" to the "Options" directive.)
AddHandler cgi-script .cgi .pl .py
# To parse .shtml files for server-side includes (SSI):เปิดใช้งาน SSI
# (You will also need to add "Includes" to the "Options" directive.)
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
5. หลังจากแก้ไขเสร็จแล้วให้ทำการ Start Apache
# service httpd start
# (You will also need to add "Includes" to the "Options" directive.)
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
5. หลังจากแก้ไขเสร็จแล้วให้ทำการ Start Apache
# service httpd start
7. ทดสอบดูผลทางโปรแกรมเว็บบราวเซอร์http://IP_Address
Install PHP
1.ติดตั้ง PHP สำหรับ ฐานข้อมูล MySQL
1.ติดตั้ง PHP สำหรับ ฐานข้อมูล MySQL
# yum -y install php php-mysql
2. Restart Apache
# service httpd restart
# service httpd restart
Install phpMyAdmin
1.ติดตั้ง extension
1.ติดตั้ง extension
# yum -y install php-mbstring
2. Restart Apache
# service httpd restart
# service httpd restart
3.Download .gz from http://www.phpmyadmin.net
4.ขยายไฟล์ที่ Download
# tar xvfz phpMyAdmin-3.5.2.2-all-languages.tar.gz
# tar xvfz phpMyAdmin-3.5.2.2-all-languages.tar.gz
5.ย้ายไฟล์ที่ได้จากการขยายไฟล์ ไปที่ตำแหน่ง /var/www/html/phpMyAdmin
# mv phpMyAdmin-3.5.2.2-all-languages /var/www/html/phpMyAdmin
6.เป็นตำแหน่งไปที่ /var/www/html/phpMyAdmin
# mv phpMyAdmin-3.5.2.2-all-languages /var/www/html/phpMyAdmin
6.เป็นตำแหน่งไปที่ /var/www/html/phpMyAdmin
# cd /var/www/html/phpMyAdmin
7.copy ไฟล์ config.sample.inc.php ไปที่ config.inc.php
# cp config.sample.inc.php config.inc.php
8.แก้ไขไฟล์ config.inc.php เพื่อให้การเข้าสู่ phpMyadmin จะมีหน้าต่างแบบ Authentication ให้ทำการ login
# vi config.inc.php
กำหนด $cfg['Servers'][$i]['auth_type'] = 'http';
9.Restart Apache
# service httpd restart
Install Database MySQL Server on CentOS
1. ติดตั้งฐานข้อมูล mysql-server
# yum install mysql-server
2. Restart ฐานข้อมูล
# service mysqld start
3. กำหนดให้ ฐานข้อมูล mysql ทำงานตอนบูตเครื่อง
# service mysqld start
3. กำหนดให้ ฐานข้อมูล mysql ทำงานตอนบูตเครื่อง
# chkconfig mysqld on
4. Create password for root
# mysqladmin -u root password mypassword
# mysqladmin -u root password mypassword
Install WordPress on CentOS
ดาวน์โหลด http://wordpress.org/
1. ขยาย Zip File มาเก็บไว้ใน directory เปล่า ๆ ในเครื่องคอมพิวเตอร์ของเราครับ
2. เปิดไฟล์ที่ชื่อ wp-config-sample.php ด้วยโปรแกรม Text Editor เช่น NotePad ก็ได้ เพื่อใส่ค่าต่าง ๆ ของ Database เมื่อแก้ไขแล้วก็ Save ไฟล์เป็นชื่อ wp-config.php
สำหรับข้อมูล database ที่ต้องกรอก ก็จะต้องไปสร้าง database ไว้ก่อน
/** MySQL database username */
define('DB_USER', 'username_here');
/** MySQL database password */
define('DB_PASSWORD', 'password_here');
/** MySQL hostname */
define('DB_HOST', 'localhost');
3. Upload ทุก ๆ ไฟล์ ขึ้นไปที่เว็บ server เอาไว้ที่พาท /var/www/html
4. เปิดหน้า /wp-admin/install.php ใน browser ดูนะครับ จะเป็นขั้นตอนในการตั้งค่าขั้นแรก หากเปิดเว็บแล้วเข้าไม่ได้หรือว่าพบ error ให้ลองตรวจเช็คไฟล์ wp-config.php ดูว่าใส่ค่า database ถูกหรือเปล่า ถ้าไม่มีอะไรผิดพลาด ก็คลิกเข้าสู่ขั้นตอนการติดตั้งได้เลย
5. เมื่อติดตั้งเสร็จ ระบบจะให้เราเข้าไป Login ได้ครับ โดยใช้ username ว่า admin โดย password ก็จะเป็น password ที่ระบบเพิ่งจะสร้างให้ เมื่อ login เข้าไปได้แล้ว ก็ให้รีบเปลี่ยน password นะครับ