1. นายชวาล แข็งแรง
การติดตั้งและตั้งค่า DHCP , DNS , Http , Mysql , phpMyAdmin & Joomla
เพื่อทา Web Server บนระบบปฏิบัติการ ContOS 6.4
เมื่อติดตั้ง CentOS 6.4 เสร็จแล้ว สิ่งที่ควรทาหลังติดตั้ง CentOS 6.4 ให้ปิดการทางานของ SELinux
ตามขั้นตอนดังนี้ (การติดตั้ง CentOS 6.4 ตามนี้ >> http://linux.sothorn.org/download/CentOS6.pdf )
1. ปิดการทางานของ SELinux โดยการแก้ไขไฟล์ /etc/selinux/config ด้วยโปรแกรม vi
# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled (ตัวที่ต้องแก้ไข)
# SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected,
# mls - Multi Level Security protection. SELINUXTYPE=targeted
กดปุ่ม ESC และพิมพ์คาสั่ง :wq เพื่อบันทึกและออกจากโปรแกรม
หลังจากแก้ไขไฟล์เรียบร้อยแล้วให้รีสตาร์ทเครื่อง ด้วยคาสั่ง # reboot
2. ปิด Firewall
ปิดการทางานของ Firewall ด้วยคาสั่ง # setup เลือก Firewall Configuration กด spacebar เอา
เครื่องหมายดอกจันออก
2. นายชวาล แข็งแรง
หรือ พิมพ์คาสั่ง
# service iptables stop
# chkonfig iptables off
เรื่องของการรักษาความปลอดภัยในการเริ่มคอนฟิกให้ปิดไปก่อนเพราะจะสร้างปัญหาให้กับลีนุกส์
มือใหม่ เป็นอย่างมาก คอนฟิกเสร็จแล้วค่อยมาจัดการเรื่องการรักษาความปลอดภัยทีหลังก็ได้
3. การติดตั้ง DHCP Server
3.1 เข้าไปแก้ไข ไฟล์ /etc/dhcp/dhcpd.conf ด้วยโปรแกรม vi ตามข้างล่างนี้
# vi /etc/dhcp/dhcpd.conf
กด ENTER แล้ว config ตามข้างล่างนี้
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.254;
option domain-name-servers 192.168.1.2;
option domain-name "itutc2.com";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 62100;
max-lease-time 43200;
}
คาอธิบาย คร่าวๆ (เน้นนะครับ คร่าวๆ)
(subnet คือ ค่า IP Address แรกของ Network)
(netmask คือ ซับเน็ตมาสก์ที่เรากาหนดไว้ใน Network เช่น Class C = 255.255.255.0)
3. นายชวาล แข็งแรง
(range คือ การกาหนดช่วง IP Address ที่ Server จะแจกให้ Client)
(option domain-name-servers คือ กาหนด IP Address ที่ใช้สาหรับทา DNS)
(option domain-name คือ กาหนดชื่อ domain-name เช่น "it2.com”)
(option routers คือ กาหนด IP Address ที่เป็น Gateway )
(option broadcast-address คือ กาหนด IP Address ที่เป็น broadcast )
(default-lease-time คือ ระยะเวลาปกติที่ Client ถือครอง IP Address )
(max-lease-time คือ ระยะเวลามากที่สุดที่ Client ถือครอง IP Address )
เมื่อเสร็จแล้ว กดปุ่ม ESC พิมพ์ :wq กดปุ่ม [Enter] เพื่อบันทึกและออกจากโปรแกรม vi
3.2 กาหนด Interface ที่ใช้แจก DHCP โดยเข้าไปแก้ไขที่ไฟล์ตามนี้
# vi /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth0
คาอธิบาย eth0 คือ Card network ที่เราจะใช้ทา DHCP แจก IP Address
เมื่อเสร็จแล้ว กดปุ่ม ESC พิมพ์ :wq กดปุ่ม [Enter] เพื่อบันทึกและออกจาก
โปรแกรม vi
เชื่อมต่อสาย LAN ระหว่าง Client กับ Server
3.3 เปิดการทางานของ DHCP ด้วยคาสั่ง
# chkconfig dhcpd on
3.4 เริ่มการทางานของ DHCP ด้วยคาสั่ง
# service dhcpd start
ถ้าขึ้นว่า [OK] เป็นอันว่าเสร็จสิ้นการติดตั้ง DHCP เพื่อแจก IP Address
4. นายชวาล แข็งแรง
4. การติดตั้ง DNS Server
4.1 ไปแก้ไขไฟล์ named.conf ด้วยคาสั่ง # vi /etc/named.conf และแก้ไขตามนี้
# vi /etc/named.conf
// named.conf
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
// See /usr/share/doc/bind*/sample/ for example named configuration files.
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// allow-query { localhost; };
recursion yes;
// dnssec-enable yes;
// dnssec-validation yes;
// dnssec-lookaside auto;
/* Path to ISC DLV key */
// bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
5. นายชวาล แข็งแรง
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file “named.ca”;
};
Include “/etc/named.rfc1912.zones”;
zone “it2.com” IN {
type master;
file “db.it2.com”;
allow-update {none;};
allow-transfer {none;};
};
zone “1.168.192.in-addr.arpa” IN {
type master;
file “db.192.168.1”;
allow-update {none;};
allow-transfer {none;};
};
เมื่อเสร็จแล้ว กดปุ่ม ESC และพิมพ์:wq เพื่อออกจากโปรแกรม vi
กาหนด forword DNS domain “……….”
กาหนด ชนิดของ Server
กาหนด Zone file “……………”
เพิ่มความปลอดภัยให้ DNS
เพิ่มความปลอดภัยให้ DNS
กาหนด reverse DNS domain “……….”
กาหนด Zone fine “……….”
6. นายชวาล แข็งแรง
4.2 สร้าง zone file ของ Domain “…………” เข้าไปที่ Directory /var/named แล้วสร้าง File ใหม่
ขึ้นมาด้วยคาสั่งตามข้างล่างนี้
# cd /var/named
# touch db.it2.com
# chown root:named db.it2.com
# chmod 640 db.it2.com
# vi db.it2.com
แล้วพิมพ์ข้อมูลดังนี้
$TTL 8h
@ IN SOA it2.com. root.it2.com. (
2012032501 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
28800 ) ; Minimum
IN NS ns
IN MX 10 mail
ns IN A 192.168.1.2
www IN A 192.168.1.2
mail IN A 192.168.1.3
server IN CNAME www
เสร็จแล้ว บันทึกและออกจากโปรแกรม
4.3 เข้าไปที่ Directory /var/named แล้วสร้าง File ใหม่ขึ้นมาด้วยคาสั่งตามนี้
# cd /var/named
# touch db.192.168.1
# chown root:named db.192.168.1
# chmod 640 db.192.168.1
# vi db.192.168.1
ตั้ง Chown เป็น root ที่ไฟล์ ………..
เข้าไปที่ Directory var/named
สร้างไฟล์เปล่าตั้งชื่อ …………………
กาหนดสิทธิ์ เป็น 640 ที่ไฟล์……………
แก้ไฟล์ …………..ด้วยโปรแกรม vi
TTL ของ Domain นี้กาหนดเอาไว้ 8 ชั่วโมง
SOA เรคคอร์ดของโดเมนนี้
Serial ของโดเมนนี้ต้องมีค่าเพิ่มขึ้นเสมอ
ชื่อเครื่องที่รับผิดชอบโดเมน หรือ NS เรคคอร์ด
ชื่อเครื่องที่รับผิดชอบอีเมลของโดเมนนี้
IP address ของเครื่องที่ชื่อ NS
IP address ของ Host ชื่อ www
IP address ของ Host ชื่อ mail
กาหนดชื่อสมมติของ Host
7. นายชวาล แข็งแรง
แล้วพิมพ์ข้อมูลดังนี้
$TTL 8h
@ IN SOA it2.com. root.it2.com. (
2012032601 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.it2.com.
1 IN PTR ns.it2.com.
2 IN PTR mail.it2.com.
เสร็จแล้ว บันทึกและออกจากโปรแกรม
4.4 ทดสอบ config file bind ด้วยคาสั่ง
# named-checkconf /etc/named.conf
ถ้า config ถูกต้อง จะไม่มีข้อความแสดงออกมาข้างล่าง เป็นอันว่าเสร็จ
4.5 ตรวจสอบโซนไฟล์ it2.com ด้วยคาสั่ง
# named-checkzone it2.com /var/named /it2.com
ถ้ามีข้อความข้างล่างขึ้นว่า OK ถือว่าถูกต้อง
4.6 ตรวจสอบโซนไฟล์ 1.168.192.in……. ด้วยคาสั่ง
# named-checkzone 1.168.192.in-addr.arpa /var/named / db.192.168.1
ถ้ามีข้อความข้างล่างขึ้นว่า OK ถือว่าถูกต้อง
4.7 สั่ง Start service named และ เปิดการใช้งานทุกครั้งที่ Boot ด้วยคาสั่ง
# service named start
# chkconfig named on
ชื่อเครื่อง Server เมื่อถามแบบ Reverse DNS
8. นายชวาล แข็งแรง
5. ติดตั้ง Web Server
5.1 เปิดการใช้งาน Service httpd ด้วยคาสั่ง
# service httpd start
กด Enter ถ้าขึ้น OK เป็นว่าใช้งานได้
5.2 ทดสอบการทางานของ Apache ดังนี้
- เชื่อมต่อสาย LAN ที่เครื่อง Server กับ Client
- เปิดโปรแกรม Web Browser แล้วใส่หมายเลข IP Address ของ Server หรือ พิมพ์
Domain ของ Server ที่ได้สร้างไว้ในหัวข้อที่ 4. ในที่นี้คือ www.it2.com ที่ช่อง URL
และกด ENTER
- จะปรากฏหน้าเว็บดังภาพข้างล่างนี้ เป็นว่าใช้งาน Apache Web Server ได้
5.3 ปรับแต่งคุณสมบัติของ Web Server ที่ File /etc/httpd/conf/httpd.conf ตามนี้
# vi /etc/httpd/conf/httpd.conf
5.3.1 กาหนดช่วงเวลาที่ sever รอการติดต่อจาก client ปรับค่าจากเดิม 60 ให้เป็น 120 (ประ
มานบรรทัดที่ 68)
9. นายชวาล แข็งแรง
5.3.2 กาหนดให้ server รับคาร้องกับ client มากกว่า หนึ่งชุด ภายในคอนเน็กชั่นเดียวกัน จาก
ค่าเดิม off เปลี่ยนเป็น on (ประมานบรรทัดที่ 74)
5.3.3 ไดเรกทีฟที่กาหนดอีเมลล์ของผู้ดูแล server (ประมานบรรทัดที่ 251)
5.3.4 ใช้กาหนด Domain name ของ Web server ในที่นี้คือ www.it2.com:80 (ประมาณบรรทัด
ที่ 265)
12. นายชวาล แข็งแรง
6. ทดสอบการทางานจากเครื่อง Client ผ่าน Port FTP ด้วยโปรแกรม SSH Secure File Transfer
Client ดังนี้
6.1 ติดตั้งโปรแกรม SSH Secure File Transfer Client
6.2 ทดสอบการเชื่อมต่อโดยเปิดโปรแกรม SSH Secure File Transfer Client และ Connect โดยใส่
หมายเลข IP Address : User : Password ของ Server ให้ถูกต้อง
6.3 ถ้าเข้าไปใช้งานได้จะมีลักษณะดังภาพข้างล่างนี้
6.4 ทดสอบสร้างเว็บไซต์แรก ด้วยโปรแกรมตามความถนัดของนักศึกษา ในที่นี้จะใช้ Notepad
สร้างดังนี้
<html>
<head>
<title>Test Apache</title>
</head>
<body> Test Apache </body>
</html>
Save File ที่สร้างขึ้นและตั้งชื่อว่า index.html
6.5 จากนั้นอัพโหลดไฟล์ index.html ด้วยโปรแกรม SSH Secure File Transfer Client ไปไว้ที่
เครื่อง server >> /var/www/html ตามภาพข้างล่าง
13. นายชวาล แข็งแรง
6.6 เปิดโปรแกรมเว็บเบราเซอร์ที่เครื่อง Client และพิมพ์domain name หรือ IP Address ของ
เครื่อง server ลงไปที่ช่อง URL กด ENTER จะได้ดังภาพ เป็นว่าติดตั้ง DNS สาเร็จ
7. ติดตั้ง Mysql และ phpMyAdmin
7.1 ใช้คาสั่ง rpm -q mysql เพื่อทดสอบดูว่าได้ติดตั้ง Packet mysql แล้วหรือยัง
ถ้าได้ดังภาพข้างล่างแสดงว่าติดตั้งแล้ว
7.2 ปิดการทางานของ mysql ด้วยคาสั่ง service mysqld stop ดังภาพข้างล่าง
14. นายชวาล แข็งแรง
7.3 Start MySQL in safe mode ด้วยคาสั่ง
# mysqld_safe --skip-grant-tables &
7.4 แก้ไข MySQL root ด้วยคาสั่ง
mysql -u root
7.5 แก้ไข password mysql โดยพิมพ์ตามข้างล่างนี้
mysql> update mysql.user set password=PASSWORD("YourNewPassW0RD") where
User='root'; กด ENTER
พิมพ์ flush privileges; exit;
mysql> flush privileges; exit;
7.6 สั่ง Log out of MySQL and stop the Safe Mode: ด้วยคาสั่ง service mysqld stop
# service mysqld stop
7.7 สั่ง Start MySQL in the normal mode: ด้วยคาสั่ง service mysqld start
# service mysqld start
สั่ง MySQL on ด้วยคาสั่ง chkconfig mysqld on
# chkconfig mysqld on
*** เสร็จสิ้นการตั้งรหัสผ่าน Mysql root ***
8. ติดตั้ง phpMyAdmin
8.1 ดาวน์โหลด phpMyAdmin จาก http://www.phpmyadmin.net
8.2 แยกไฟล์ ออกมาจากการบีบอัด และเปลี่ยนชื่อ directory ของ phpMyAdmin เป็น phpmyadmin
(ให้เป็นตัวเล็กทั้งหมดเพื่อความสะดวกเมื่อเรียกใช้งาน)
ใส่ Password ที่เราต้องการ
15. นายชวาล แข็งแรง
8.3 จะได้ดังภาพ
8.4 เปิดโปรแกรม SSH Secure File Transfer Client และ Connect ไปที่ Server จะได้ดังภาพ
8.5 ที่ช่องด้านขวามือ คือไฟล์ทั้งหมดของ Server แล้วให้คลิก ปุ่ม Up เพื่อกลับไป directory ราก
ของ Server
24. นายชวาล แข็งแรง
9.4.2 เปิดไฟล์ configuration.php
แก้ไขตามนี้
<?php
class JConfig {
public $offline = '0';
public $offline_message = '???????????????????????<br /> ???????????????????';
public $display_offline_message = '1';
public $offline_image = '';
public $sitename = 'it2';
public $editor = 'tinymce';
public $captcha = '0';
public $list_limit = '20';
public $access = '1';
public $debug = '0';
public $debug_lang = '0';
public $dbtype = 'mysqli';
public $host = 'localhost';
public $user = 'root';
public $password = '123456';
public $db = 'chawan';
ใส่ Password ที่เรากาหนดใน Mysql Server
ใส่ชื่อฐานข้อมูลที่สร้างขึ้นบน Mysql Server ให้ถูกต้อง
ใส่ชื่อเจ้าของฐานข้อมูล ที่เรากาหนดใน Mysql
Server
25. นายชวาล แข็งแรง
public $dbprefix = 'cm3g8_';
public $live_site = '';
public $secret = 'YCEfadKoG68ijEfr';
public $gzip = '0';
public $error_reporting = 'default';
public $helpurl =
'http://help.joomla.org/proxy/index.php?option=com_help&keyref=Help{major}{minor}:{keyref}';
public $ftp_host = '127.0.0.1';
public $ftp_port = '21';
public $ftp_user = '';
public $ftp_pass = '';
public $ftp_root = '';
public $ftp_enable = '0';
public $offset = 'UTC';
public $mailer = 'mail';
public $mailfrom = 'chawah@hotmail.com';
public $fromname = 'it2';
public $sendmail = '/usr/sbin/sendmail';
public $smtpauth = '0';
public $smtpuser = '';
26. นายชวาล แข็งแรง
public $smtppass = '';
public $smtphost = 'localhost';
public $smtpsecure = 'none';
public $smtpport = '25';
public $caching = '0';
public $cache_handler = 'file';
public $cachetime = '15';
public $MetaDesc = '';
public $MetaKeys = '';
public $MetaTitle = '1';
public $MetaAuthor = '1';
public $MetaVersion = '0';
public $robots = '';
public $sef = '1';
public $sef_rewrite = '0';
public $sef_suffix = '0';
public $unicodeslugs = '0';
public $feed_limit = '10';
public $log_path = '/var/www/html/uu/logs';
27. นายชวาล แข็งแรง
public $tmp_path = '/var/www/html/uu/tmp';
public $lifetime = '15';
public $session_handler = 'database';
}
เมื่อแก้ไขเสร็จแล้วให้บันทึกและปิด
9.4.3 จากนั้นเปิดโปรแกรม SSH และ Connect เข้าไปที่ เครื่อง Server โดยเข้าไปที่
/var/www/html ที่ฝั่ง Client ให้นาไฟล์ configuration.php ที่แก้ไขไว้ข้างต้น Upload ขึ้นไป ฝั่ง Server
ใน /var/www/html/Directory joomla ทับไฟล์เก่าลงไป
9.4.4 สร้างไฟล์ redirect เพื่อย้ายที่อยู่ของ Webpage ไปที่ Directory ที่เราต้องการโดย สร้างไฟล์
ด้วยโปรแกรมสร้างไฟล์ ตามความถนัด ในที่นี้ผมจะสร้างด้วยโปรแกรม Notepad และใส่ Code ดังนี้
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.it2.com/oop">
</head>
</html>
Save File ชื่อ Index.html
คือที่อยู่ของเว็บไซต์ที่เรากาหนดจะให้ redirect ไป
ที่ Domain Name ไหน และ Directory อะไร ใน Server
28. นายชวาล แข็งแรง
9.4.5 นาไฟล์ Index.html ที่สร้างไว้ข้างต้น Upload ขึ้นไป ฝั่ง Server ใน /var/www/html/
9.4.5 ทดสอบจากเครื่อง Client ให้เปิดโปรแกรม Web Browser และพิมพ์Domain name หรือ IP
Address Server ที่ช่อง URL ในที่นี้คือ www.it2.com กด ENTER จะได้ดังภาพข้างล่าง
*** เสร็จสิ้นขั้นตอนการทา Web Server with CentOS 6.4 เบื้องต้นแล้วครับ ***
หมายเหตุ :: ถ้าพิมพ์ตัวอักษรตกหล่นและใช้คาผิดไวยากรณ์ก็ขออภัย ณ ที่นี้ด้วยนะครับ
เพราะไม่ค่อยมีเวลาตรวจคา แต่การ Config Packet เพื่อทา Web Server with CentOS 6.4 นั้น ถูกต้องทุก
ประการครับ เพราะผมคัดลอกจากการทางานจริงและสามารถใช้งานได้จริง
ในการทดสอบนี้ ผมใช้ Card Network ใบเดียว เป็นแบบ LAN หรือ Local ภายใน
องค์กรเฉยๆ นะครับ ไม่ได้เป็นแบบ WAN หรือ Internet ถ้าจะทาแบบ WAN ต้องเพิ่ม Card Network อีกใบ
และศึกษาการ config เพิ่มเติมอีกเล็กน้อยครับ และ Packet ทุกตัวที่ใช้ทา Server ในครั้งนี้ ผมติดตั้งจากตอน
Install CentOS 6.4 (หรือจากแผ่น DVD CentOS 6.4 อย่างเดียวนั่นเอง)