准备实验环境:
两台虚拟机:
第一台做DNS服务器解析域名。
第二台做LAMP网站服务平台。
搭建DNS服务:
1、配置IP地址
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:26:05:59
inet addr:1.1.1.1 Bcast:1.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe26:559/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7326 (7.1 KiB) TX bytes:12588 (12.2 KiB)
Interrupt:59 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:900 (900.0 b) TX bytes:900 (900.0 b)
2、安装BIND相关软件包
[root@localhost ~]# mount -o loop /dev/cdrom /media/
[root@localhost ~]# cd /media/Server/
[root@localhost Server]# rpm -ivh bind-9.3.6-4.P1.el5_4.2.i386.rpm
error: failed to stat /media/RHEL_5.5 i386 DVD: 没有那个文件或目录
Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[root@localhost Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm
error: failed to stat /media/RHEL_5.5 i386 DVD: 没有那个文件或目录
Preparing... ########################################### [100%]
1:caching-nameserver ########################################### [100%]
[root@localhost Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm
error: failed to stat /media/RHEL_5.5 i386 DVD: 没有那个文件或目录
Preparing... ########################################### [100%]
1:bind-chroot ########################################### [100%]
[root@localhost Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5_4.2.i386.rpm
error: failed to stat /media/RHEL_5.5 i386 DVD: 没有那个文件或目录
Preparing... ########################################### [100%]
package bind-utils-9.3.6-4.P1.el5_4.2.i386 is already installed
3、通过模板修改主配置文件
[root@localhost Server]# cd /var/named/chroot/etc/
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vim named.conf
options {
listen-on port 53 { any; };
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 { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
4、修改区域文件
[root@localhost etc]# vim named.rfc1912.zones
zone "51cto.com" IN {
type master;
file "51cto.com.zone";
allow-update { none; };
};
zone "csdn.com" IN {
type master;
file "csdn.com.zone";
allow-update { none; };
};
5、通过模板、修改正向解析文件(反向解析不用做。)
[root@localhost etc]# cd /var/named/chroot/var/named/
[root@localhost named]# cp -p localhost.zone 51cto.com.zone
[root@localhost named]# vim 51cto.com.zone
$TTL 86400
@ IN SOA 51cto.com. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1.51cto.com.
IN MX 10 mail.51cto.com.
ns1 IN A 1.1.1.1
mail IN A 1.1.1.1
www IN A 1.1.1.2
[root@localhost named]# cp -p 51cto.com.zone csdn.com.zone
[root@localhost named]# vim csdn.com.zone
$TTL 86400
@ IN SOA csdn.com. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1.csdn.com.
IN MX 10 mail.csdn.com.
ns1 IN A 1.1.1.1
mail IN A 1.1.1.1
www IN A 1.1.1.2
6、重新启动服务
[root@localhost named]# service named restart
停止 named: [确定]
启动 named: [确定]
7、去LAMP服务器上测试效果
[root@localhost /]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:63:9D:6B
inet addr:1.1.1.2 Bcast:1.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe63:9d6b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9188 (8.9 KiB) TX bytes:21947 (21.4 KiB)
Interrupt:59 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3760 (3.6 KiB) TX bytes:3760 (3.6 KiB)
[root@localhost /]# vim /etc/resolv.conf
search 51cto.com
nameserver 1.1.1.1
[root@localhost /]# nslookup
> www.51cto.com
Server: 1.1.1.1
Address: 1.1.1.1#53
Name: www.51cto.com
Address: 1.1.1.2
> www.csdn.com
Server: 1.1.1.1
Address: 1.1.1.1#53
Name: www.csdn.com
Address: 1.1.1.2
8、搭建完成。
搭建LAMP网站服务平台:
一、配置Apache服务:
1、查看IP地址:
2、安装Apache服务
[root@localhost /]# mount -o loop /dev/cdrom /media/
[root@localhost /]# cd /media/
[root@localhost media]# tar -zxf httpd-2.2.16.tar.gz -C /usr/src/
[root@localhost /]# cd /usr/src/httpd-2.2.16/
[root@localhost httpd-2.2.16]# ls
ABOUT_APACHE config.layout httpd.spec Makefile.win ROADMAP
acinclude.m4 config.log include modules server
Apache.dsw config.nice INSTALL NOTICE srclib
build configure InstallBin.dsp NWGNUmakefile support
BuildAll.dsp configure.in LAYOUT os test
BuildBin.dsp docs libhttpd.dsp README VERSIONING
buildconf emacs-style LICENSE README.platforms
CHANGES httpd.dsp Makefile.in README-win32.txt
[root@localhost httpd-2.2.16]# ./configure \
> --prefix=/usr/local/apache2 \
> --enable-so \
> --enable-rewrite \
> --enable-ssl \
> --with-ssl=/usr/lib \
> --enable-auth-digest \
> --enable-cgi \
> --enable-suexec \
> --with-suexec-caller=daemon \
> --with-suexec-docroot=/usr/local/apache2/htdocs
config.status: creating support/dbmmanage
config.status: creating support/envvars-std
config.status: creating support/log_server_status
config.status: creating support/logresolve.pl
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
[root@localhost httpd-2.2.16]# make && make install
Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: Leaving directory `/usr/src/httpd-2.2.16'
3、开启服务、测试网站是否工作
[root@localhost httpd-2.2.16]# vim /usr/local/apache2/conf/httpd.conf
92 # This can often be determined automatically, but we recommend you specify
93 # it explicitly to prevent problems during startup.
94 #
95 # If your host doesn't have a registered DNS name, enter its IP address here .
96 #
97 ServerName www.51cto.com
98
99 #
100 # DocumentRoot: The directory out of which you will serve your
101 # documents. By default, all requests are taken from this directory, but
102 # symbolic links and aliases may be used to point to other locations.
[root@localhost httpd-2.2.16]# /usr/local/apache2/bin/apachectl start
4、网站搭建完成。
二、配置Mysql:
1、rpm安装mysql到指定目录再用源码包安装。
[root@localhost httpd-2.2.16]# mount -o loop /dev/cdrom /media/
[root@localhost httpd-2.2.16]# cd /media/
[root@localhost media]# ls
4discuzx15 mhash-0.9.9.9.tar.bz2
awstats-6.95.tar.gz MySQL-community-5.1.50-1.rhel5.src.rpm
config.txt php-5.3.3.tar.gz
Discuz_X1.5_SC_UTF8.zip phpMyAdmin-3.3.6-all-languages.tar.gz
fish tuzki
httpd-2.2.16.tar.gz wuwangwo_cc_jspvz
libmcrypt-2.5.8.tar.gz 绿色表情
mcrypt-2.6.8.tar.gz
[root@localhost media]# rpm -ivh MySQL-community-5.1.50-1.rhel5.src.rpm
error: cannot create %sourcedir /usr/src/redhat/SOURCES
[root@localhost media]# mkdir -p /usr/src/redhat/SOURCES
[root@localhost media]# cd /usr/src/redhat/
[root@localhost redhat]# chmod 777 SOURCES/
[root@localhost media]# rpm -ivh MySQL-community-5.1.50-1.rhel5.src.rpm
1:MySQL-community warning: user mysqldev does not exist - using root
warning: group mysqldev does not exist - using root
warning: user mysqldev does not exist - using root
warning: group mysqldev does not exist - using root
########################################### [100%]
[root@localhost media]# cd /usr/src/redhat/SOURCES/
[root@localhost SOURCES]# ls
mysql-5.1.50.tar.gz
[root@localhost SOURCES]# tar -zxf mysql-5.1.50.tar.gz -C /usr/src/
2、配置 编译 安装Mysql服务 (编译和安装都需要等待很长时间)
[root@localhost mysql-5.1.50]# ./configure --prefix=/usr/local/mysql && make && make install
Making install in win
make[1]: Entering directory `/usr/src/mysql-5.1.50/win'
make[2]: Entering directory `/usr/src/mysql-5.1.50/win'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/mysql-5.1.50/win'
make[1]: Leaving directory `/usr/src/mysql-5.1.50/win'
编译成功
3、创建运行Mysql的系统用户和组
[root@localhost mysql-5.1.50]# useradd -M -s /sbin/nologin mysql
4、建立配置文件
[root@localhost mysql-5.1.50]# cp support-files/my-medium.cnf /etc/my.cnf
5、初始化数据库
[root@localhost mysql-5.1.50]# /usr/local/mysql/bin/mysql_install_db --user=mysql
[root@localhost mysql-5.1.50]# chown -R root.mysql /usr/local/mysql/
[root@localhost mysql-5.1.50]# chown -R mysql /usr/local/mysql/var/
6、调整lib库路径
[root@localhost mysql-5.1.50]# echo "/usr/local/mysql/lib/mysql/" >> /etc/ld.so.conf
[root@localhost mysql-5.1.50]# ldconfig
7、使用mysql_safe脚本安全启动服务
[root@localhost mysql-5.1.50]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[1] 6797
[root@localhost mysql-5.1.50]# 130314 00:31:55 mysqld_safe Logging to '/usr/local/mysql/var/localhost.localdomain.err'.
130314 00:31:55 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
8、将mysqld添加为系统服务
[root@localhost mysql-5.1.50]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.1.50]# chmod +x /etc/init.d/mysqld
[root@localhost mysql-5.1.50]# chkconfig --add mysqld
[root@localhost mysql-5.1.50]# chkconfig mysqld on
9、设置Mysql的执行路径
[root@localhost mysql-5.1.50]# export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost mysql-5.1.50]# echo "PATH=$PATH:/user/local/mysql/bin" >> /etc/profile
10、安装完成 登陆测试
[root@localhost mysql-5.1.50]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.50-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
三、配置PHP
1、配置PHP源码包
[root@localhost media]# tar -zxf php-5.3.3.tar.gz -C /usr/src/
[root@localhost media]# cd /usr/src/php-5.3.3/
[root@localhost php-5.3.3]# ./configure \
> --prefix=/usr/local/php5 \
> --enable-mbstring \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-mysql=/usr/local/mysql \
> --with-config-file-path=/usr/local/php5
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
2、编译、安装PHP源码包
[root@localhost php-5.3.3]# make && make install
Wrote PEAR system config file at: /usr/local/php5/etc/pear.conf
You may want to add: /usr/local/php5/lib/php to your php.ini include_path
/usr/src/php-5.3.3/build/shtool install -c ext/phar/phar.phar /usr/local/php5/bin
ln -s -f /usr/local/php5/bin/phar.phar /usr/local/php5/bin/phar
Installing PDO headers: /usr/local/php5/include/php/ext/pdo/
3、复制php.ini配置文件
[root@localhost php-5.3.3]# cp php.ini-production /usr/local/php5/php.ini
4、设置httpd.conf文件
[root@localhost php-5.3.3]# vim /usr/local/apache2/conf/httpd.conf
50 #
51 # Example:
52 # LoadModule foo_module modules/mod_foo.so
53 LoadModule php5_module modules/libphp5.so
54 #
55
56 <IfModule !mpm_netware_module>
57 <IfModule !mpm_winnt_module>
58 #
160 </Directory>
161
162 #
163 # DirectoryIndex: sets the file that Apache will serve if a directory
164 # is requested.
165 #
166 <IfModule dir_module>
167 DirectoryIndex index.php index.html
168 </IfModule>
169
170 #
301 #
302 #AddEncoding x-compress .Z
303 #AddEncoding x-gzip .gz .tgz
304 #
305 # If the AddEncoding directives above are commented-out, then you
306 # probably should define those extensions to indicate media types:
307 #
308 AddType application/x-compress .Z
309 AddType application/x-gzip .gz .tgz
310 ADDType application/x-httpd-php .php
311
[root@localhost php-5.3.3]# /usr/local/apache2/bin/apachectl stop
[root@localhost php-5.3.3]# /usr/local/apache2/bin/apachectl start
5、安装完成 测试PHP与Apache的协同工作
[root@localhost php-5.3.3]# vim /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
6、安装完成 测试PHP与Mysql数据库的协同工作
[root@localhost php-5.3.3]# vim /usr/local/apache2/htdocs/tesdb.php
<?php
$link=mysql_connect("localhost","test","");
if(!$link) echo "Fail !!";
else echo "Success !!";
mysql=close();
?>