Linux网络服务练习题
l 安装操作系统(略)
² 安装rhel 6.3系统,安装要求如下
(1)物理内存1G,虚拟内存4G
(2)硬盘 100GB,建立分区如下:
/boot 200M
swap 4G
以下分区采用lvm方式创建
/var 20G
/var/log 20G
/opt 20G
/tmp 5G
/ 剩余所有空间
(3)不安装桌面环境;安装中文语言支持
² 在Linux上配置DHCP服务,为windows xp自动分配IP信息,分配的DNS服务器地址为202.16.53.17
1.关闭iptables,selinux,配置yum源
2.配置Linux SRV的TCP/IP参数并重启network服务
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:B4:39:71"
NM_CONTROLLED="yes"
IPADDR=10.1.1.1
NETMASK=255.255.255.0
GATEWAY=10.1.1.254
DNS1=127.0.0.1
TYPE="Ethernet"
# /etc/init.d/network restart
3.安装dhcpd服务
# yum install dhcp -y
3备份并修改dhcpd配置文件
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
# vim /etc/dhcp/dhcpd.conf
subnet 10.1.1.0 netmask 255.255.255.0 {
}
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.10 172.16.1.100;
option domain-name-servers 202.16.53.17;
option routers 172.16.1.254;
default-lease-time 600;
max-lease-time 7200;
}
4在GNS3上给路由器配置dhcp中继以及ip等
5启动dhcpd并添加到系统自启动
# /etc/init.d/dhcpd start
正在启动 dhcpd: [确定]
#chkconfig dhcpd on
6查看winxp地址测试
² 在Linux中添加20GB硬盘,将硬盘创建逻辑卷,名称为/dev/digital/caiwu;并将其自动挂载到/caiwu文件夹下
1添加20g硬盘重启系统
# fdisk -l /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
2创建逻辑卷
# pvcreate /dev/sdb
Writing physical volume data to disk "/dev/sdb"
Physical volume "/dev/sdb" successfully created
3创建卷组
[root@localhost.localdomain ~]
# vgcreate /dev/digital /dev/sdb
Volume group "digital" successfully created
4创建逻辑卷
# lvcreate -L 10G -n /dev/digital/caiwu
Logical volume "caiwu" created
5格式化lv
# mkfs.ext4 /dev/digital/caiwu
6创建挂载点/caiwu
# mkdir /caiwu
7自动挂在到/caiwu下
# vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
/dev/digital/caiwu /caiwu ext4 defaults 0 0
8检测caiwu文件夹是否挂载
[root@localhost.localdomain /]
# cd /caiwu/
[root@localhost.localdomain /caiwu]
# ls
lost+found
² 将/caiwu文件夹共享
(1)要求只有tom和jerry用户可以访问共享
(2)只允许tom用户下载文件,允许jerry用户下载、上传文件
(3)将tom和jerry用户分别以别名yg和jl的方式告诉给员工使用
(4)设置jerry用户最多只允许上传15GB内容
一samba服务
1安装samba服务
# yum install samba* -y
2修改smb配置文件
# vim /etc/samba/smb.conf
workgroup = WORKGROUP
server string = Samba Server Version
security = user
[caiwu]
path=/caiwu
comment=this is a directory for jerry and tom
valid user=tom,jerry //只有tom和jerry用户可以访问共享
writeable=yes
write list=jerry //允许jerry用户上传文件
browseable=yes
readonly=no
public=no
3修改别名文件写入tom,jerry
# vim /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
jerry=jl
tom=yg
4将别名文件写入到smb配置文件中
# vim /etc/samba/smbusers
username map=/etc/samba/smbusers
5创建系统用户并将系统用户转变为samba用户
[root@localhost.localdomain /caiwu]
# useradd tom
# useradd jerry
# pdbedit -a -u tom
new password:
retype new password:
# pdbedit -a -u jerry
new password:
retype new password:
# pdbedit -L
tom:501:
jerry:502:
6修改caiwu文件夹权限
[root@localhost.localdomain /caiwu]
# chown jerry:tom /caiwu/
[root@localhost.localdomain /caiwu]
# chmod 750 /caiwu/
[root@localhost.localdomain /caiwu]
# ls -ldh
drwxr-x--- 3 jerry tom 4.0K 3月 15 20:25 .
7启动smb服务并添加到系统自启动
# testparm
[caiwu]
comment = this is a directory for jerry and tom
path = /caiwu
write list = jerry
read only = No
[root@localhost.localdomain /caiwu]
# /etc/init.d/smb start
启动 SMB 服务:
# chkconfig smb on
8测试yg是否能登录以及下载(先在创建测试文件)
[root@localhost.localdomain /caiwu]
# touch 1.mp3 2.mp3
# touch /tmp/test.mp3
# smbclient //127.0.0.1/caiwu -U yg
Enter yg's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ls
. D 0 Sun Mar 15 21:19:06 2015
.. DR 0 Sun Mar 15 20:20:54 2015
1.mp3 0 Sun Mar 15 21:19:06 2015
2.mp3 0 Sun Mar 15 21:19:06 2015
lost+found D 0 Sun Mar 15 20:25:55 2015
40317 blocks of size 262144. 37667 blocks available
smb: \> get 1.mp3 /tmp/1.mp3 //下载成功
getting file \1.mp3 of size 0 as /tmp/1.mp3 (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \> put /tmp/test.mp3 test.mp3 //上传失败
NT_STATUS_ACCESS_DENIED opening remote file \test.mp3
9测试jl是否能登录以及上传下载
# smbclient //127.0.0.1/caiwu -U jl
Enter jl's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ls
. D 0 Sun Mar 15 21:19:06 2015
.. DR 0 Sun Mar 15 20:20:54 2015
1.mp3 0 Sun Mar 15 21:19:06 2015
2.mp3 0 Sun Mar 15 21:19:06 2015
lost+found D 0 Sun Mar 15 20:25:55 2015
40317 blocks of size 262144. 37667 blocks available
smb: \> get 2.mp3 /tmp/2.mp3
getting file \2.mp3 of size 0 as /tmp/2.mp3 (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \> put /tmp/test.mp3 test.mp3
putting file /tmp/test.mp3 as \test.mp3 (0.0 kb/s) (average 0.0 kb/s)
二磁盘配额(给jerry做磁盘配额来限制其只能上传15M内容)
1安装磁盘配额软件包
# yum provides */quotacheck
# yum install quota -y
2开启磁盘配额功能
# mount -o remount,usrquota,grpquota /dev/digital/caiwu /caiwu/
# mount | grep caiwu
/dev/mapper/digital-caiwu on /caiwu type ext4 (rw,usrquota,grpquota)
3生成磁盘配额文件
# quotacheck -cugv /caiwu/
4编辑jerry的磁盘配额
# edquota -u jerry
Disk quotas for user jerry (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/digital-caiwu 4 0 150000 2 0 0
4启用磁盘配额配置
# quotaon -ugv /caiwu/
/dev/mapper/digital-caiwu [/caiwu]: group quotas turned on
/dev/mapper/digital-caiwu [/caiwu]: user quotas turned on
5测试
[root@localhost.localdomain /caiwu]
# su - jerry
[jerry@localhost.localdomain ~]
$ touch /caiwu/test
[jerry@localhost.localdomain /caiwu]
$ dd if=/dev/zero of=/caiwu/test bs=150M count=1
dm-3: write failed, user block limit reached.
dd: 正在写入"/caiwu/test": 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
153595904字节(154 MB)已复制,0.6859 秒,224 MB/秒
$ du -ah test
147M test
$ dd if=/dev/zero of=/caiwu/test bs=140M count=1
记录了1+0 的读入
记录了1+0 的写出
146800640字节(147 MB)已复制,0.806138 秒,182 MB/秒
[jerry@localhost.localdomain /caiwu]
$ du -ah test
141M test
[jerry@localhost.localdomain /caiwu]
$ dd if=/dev/zero of=/caiwu/test bs=160M count=1
dm-3: write failed, user block limit reached.
dd: 正在写入"/caiwu/test": 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
153595904字节(154 MB)已复制,0.833291 秒,184 MB/秒
[jerry@localhost.localdomain /caiwu]
$ du -ah test
147M test
6查看磁盘配额情况
# quota -u jerry
Disk quotas for user jerry (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/digital-caiwu
150000* 0 150000 3 0 0
[root@localhost.localdomain ~]
# repquota /caiwu/
*** Report for user quotas on device /dev/mapper/digital-caiwu
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 16 0 0 3 0 0
jerry -- 150000 0 150000 3 0 0
² 安装apache软件,分别搭建两个网站
(1)网站名称分别为www.bj.com和www.sh.com
(2)bj网站的所有网页存储到/usr/local/apache/htdocs/bj文件夹下(或者/var/www/html/bj)
(3)sh网站的所有网页存储到/usr/local/apache/htdocs/sh文件夹下(或者/var/www/html/sh)
(4)bj网站的测试网页中显示“it is bj”,sh网站的测试网页中显示“it is shanghai
(5)实现windows xp分别可以通过域名访问两个网站
(6)部署aws日志分析软件,分别分析两个网站的正常日志文件;
(7)为保证日志显示页面的安全性,为该页面添加用户名、密码进行认证
一dns服务
1安装named服务
# yum install bind bind-chroot -y
2修改系统dns地址
# vim /etc/resolv.conf
nameserver 127.0.0.1
3创建bj.com sh.com两个区域
# vim /var/named/chroot/etc/named.conf
options{
directory"/var/named";
};
zone"bj.com"{
type master;
file "bj.com.zone";
};
zone"sh.com"{
type master;
file "sh.com.zone";
};
4创建两个区域的记录文件并修改
# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.localhost /var/
named/chroot/var/named/bj.com.zone
#cp/usr/share/doc/bind-9.8.2/sample/var/named/named.localhost /var/named/chroot/var/named/sh.com.zone
# vim /var/named/chroot/var/named/bj.com.zone
$TTL 1D
@ IN SOA bj.com. mymail.163.com.
www A 127.0.0.1
# vim /var/named/chroot/var/named/sh.com.zone
$TTL 1D
@ IN SOA sh.com. mymail.163.com. (
www A 127.0.0.1
5启动named服务并添加系统自启动
# rndc-confgen -r /dev/urandom -a
wrote key file "/etc/rndc.key"
# /etc/init.d/named start
# chkconfig named on
6测试
# nslookup
> server
Default server: 10.1.1.1
Address: 10.1.1.1#53
> www.bj.com
Server: 10.1.1.1
Address: 10.1.1.1#53
Name: www.bj.com
Address: 10.1.1.1
> www.sh.com
Server: 10.1.1.1
Address: 10.1.1.1#53
Name: www.sh.com
Address: 10.1.1.1
二安装httpd**rpm
# yum install httpd* -y
2 修改httpd配置文件
ServerAdmin mymail@163.com
ServerName www.bj.com
DocumentRoot "/var/www/html"
ServerRoot "/etc/httpd"
DirectoryIndex index.html index.html.var
3在网站跟路径下创建两个文件夹bj,sh
# mkdir /var/www/html/bj
# mkdir /var/www/html/sh
4分别在bj,sh两个文件夹下创建index文件
# vim /var/www/html/sh/index.html
it is sh
# vim /var/www/html/bj/index.html
it is bj
5配置基于域名的虚拟主机
# vim /etc/httpd/conf/httpd.conf
NameVirtualHost 10.1.1.1
<VirtualHost 10.1.1.1>
ServerAdmin mymail@163.com
DocumentRoot /var/www/html/bj/
ServerName www.bj.com
ErrorLog /etc/httpd/logs/bj/error_log
CustomLog /etc/httpd/logs/bj/access_log common
</VirtualHost>
<VirtualHost 10.1.1.1>
ServerAdmin mymail@163.com
DocumentRoot /var/www/html/sh/
ServerName www.sh.com
ErrorLog /etc/httpd/logs/sh/error_log
CustomLog /etc/httpd/logs/sh/access_log common
</VirtualHost>
# mkdir /etc/httpd/logs/bj
# mkdir /etc/httpd/logs/sh
6启动httpd服务并加入系统自启动
# /etc/init.d/httpd start
正在启动 httpd:
# chkconfig httpd on
7测试
三部署AWS日志分析软件
1解压缩
2讲aws软件包移动并改名
[root@localhost.localdomain /caiwu]
# mv awstats-7.0 /usr/local/awstats
3为www.bj.com生成aws文件
# cd /usr/local/awstats/
# cd tools/
# ./awstats_configure.pl
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf
。。。
Your web site, virtual server or profile name:
同理为www.sh.com生成aws文件
4为bj配置asw配置文件
# vim /etc/awstats/awstats.www.bj.com.conf
LogFile="/var/log/httpd/bj/access_log"
DirData="/var/lib/awstats"
# mkdir /var/lib/awstats
5重启httpd
# /etc/init.d/httpd restart
6编写任务计划每10分钟更新一次
# crontab -e
*/10 * * * * /usr/local/awstats/tools/awstats_update.pl now
crontab: installing new crontab
7访问测试
www.bj.com/awstats/awstats.pl?config=www.bj.com
www.bj.com/awstats/awstats.pl?config=www.sh.com
四apache访问控制(基于用户的访问控制)
1创建存放用户认证文件的文件夹
# mkdir /etc/httpd/httpdusers
2创建认证用户到htpasswd中
# find / -name htpasswd
/usr/bin/htpasswd
# /usr/bin/htpasswd -c /etc/httpd/httpdusers/.aws mike
New password:
Re-type new password:
Adding password for user mike
2修改httpd的配置文件
# vim /etc/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "please input your username and password"
AuthType Basic
AuthUserFile "/etc/httpd/httpdusers/.aws"
require valid-user
</Directory>
3重启httpd服务
# /etc/init.d/httpd restart
² mysql数据操作练习
(1)创建一个名称为bj的数据库
(2)在bj数据库分别创建两个表,表结构如下:
表1名:stuInfo,并向表中添加数据
Id int primary key | Name varchar(30) not null | Age int not null | Sex char(2) |
1 | tom | 20 | M |
2 | jerry | 50 | W |
3 | mike | 15 | W |
4 | john | 25 |
|
表2名:gradeInfo,并向表中添加数据:
Id int primary key | Name varchar(30) | Grade varchar(10) |
1 | tom | S1 |
2 | jerry | S2 |
3 | mike | S3 |
4 | john | S1 |
(3)删除表中姓名为mike的数据
(4)将姓名为tom的年龄改为18
(5)查询表stuInfo所有的内容
(6)为bj数据库添加授权用户,允许该用户对bj数据库拥有查询权限、添加权限,用户名为cisco
(7)查看新授权用户cisco对bj数据库的操作权限
(8)为bj数据库的gradeInfo表添加授权用户,名称为h3c,并为该用户授予查询权限;只允许用户从10.1.1.1这台机器上登录
(9)撤销cisco用户对bj数据库的查询权限;
(10)分别使用cisco用户和h3c用户登录mysql数据库,测试用户的权限
(11)备份mysql中的所有数据库,将数据库备份到单独硬盘分区上,分区名称为/bak
(12)将bj库删除,从备份文件中恢复该数据库
1安装mysqld服务
# yum install mysql* -y
2生成mysql配置文件
# cp my.cnf my.cnf.bak
# cp /usr/share/doc/mysql-server-5.1.61/my-medium.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
3启动mysqld服务
# /etc/init.d/mysqld start
初始化 MySQL 数据库: Installing MySQL system tables...
正在启动 mysqld: [确定]
4登录mysql
# mysql
5创建一个名称为bj的数据库
mysql> create database bj;
Query OK, 1 row affected (0.01 sec)
6在bj数据库分别创建两个表stuInfo gradeInfo
mysql> use bj
Database changed
mysql> create table stuInfo(
-> Id int primary key,
-> Name varchar(30) not null,
-> Age int not null,
-> Sex char(2));
Query OK, 0 rows affected (0.09 sec)
mysql> create table gradeInfo(
-> Id int primary key,
-> Name varchar(30),
-> Grade varchar(10));
Query OK, 0 rows affected (0.05 sec)
mysql> show tables;
+--------------+
| Tables_in_bj |
+--------------+
| gradeInfo |
| stuInfo |
+--------------+
2 rows in set (0.00 sec)
7给stuInfo 添加数据
mysql> insert into stuInfo (Id,Name,Age,Sex) values(1,'tom',20,'M');
Query OK, 1 row affected (0.01 sec)
mysql> insert into stuInfo values(2,'jerry',50,'W');
Query OK, 1 row affected (0.00 sec)
mysql> insert into stuInfo values(3,'mike',15,'W');
Query OK, 1 row affected (0.00 sec)
mysql> insert into stuInfo values(4,'john',25,'');
Query OK, 1 row affected (0.00 sec)
mysql> select * from stuInfo;
+----+-------+-----+------+
| Id | Name | Age | Sex |
+----+-------+-----+------+
| 1 | tom | 20 | M |
| 2 | jerry | 50 | W |
| 3 | mike | 15 | W |
| 4 | john | 25 | |
+----+-------+-----+------+
4 rows in set (0.00 sec)
8给gradeInfo添加数据
mysql> insert into gradeInfo(Id,Name,Grade) values(1,'tom','s1');
mysql> insert into gradeInfo(Id,Name,Grade) values(2,'jerry','s2');
mysql> insert into gradeInfo(Id,Name,Grade) values(3,'mike','s3');
mysql> insert into gradeInfo(Id,Name,Grade) values(4,'john','s1');
mysql> select * from gradeInfo
-> ;
+----+-------+-------+
| Id | Name | Grade |
+----+-------+-------+
| 1 | tom | s1 |
| 2 | jerry | s2 |
| 3 | mike | s3 |
| 4 | john | s1 |
+----+-------+-------+
4 rows in set (0.00 sec)
9删除表中姓名为mike的数据
mysql> delete from stuInfo where Name='mike';
Query OK, 1 row affected (0.08 sec)
mysql> delete from gradeInfo where Name='mike';
Query OK, 1 row affected (0.00 sec)
mysql> select * from stuInfo;
+----+-------+-----+------+
| Id | Name | Age | Sex |
+----+-------+-----+------+
| 1 | tom | 20 | M |
| 2 | jerry | 50 | W |
| 4 | john | 25 | |
+----+-------+-----+------+
3 rows in set (0.00 sec)
mysql> select * from gradeInfo;
+----+-------+-------+
| Id | Name | Grade |
+----+-------+-------+
| 1 | tom | s1 |
| 2 | jerry | s2 |
| 4 | john | s1 |
+----+-------+-------+
3 rows in set (0.00 sec)
10将姓名为tom的年龄改为18
mysql> update stuInfo set Age=18 where Name='tom';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
11查询表stuInfo所有的内容
mysql> select * from stuInfo
-> ;
+----+-------+-----+------+
| Id | Name | Age | Sex |
+----+-------+-----+------+
| 1 | tom | 18 | M |
| 2 | jerry | 50 | W |
| 4 | john | 25 | |
+----+-------+-----+------+
3 rows in set (0.00 sec)
12为bj数据库添加授权用户,允许该用户对bj数据库拥有查询权限、添加权限,用户名为cisco
mysql> grant select,insert on bj.* to 'cisco'@'localhost' identified by "redhat";
Query OK, 0 rows affected (0.01 sec)
13查看新授权用户cisco对bj数据库的操作权限
mysql> show grants for 'cisco'@'localhost';
+--------------------------------------------------------------------------------------------------------------+
| Grants for cisco@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'cisco'@'localhost' IDENTIFIED BY PASSWORD '*84BB5DF4823DA319BBF86C99624479A198E6EEE9' |
| GRANT SELECT, INSERT ON `bj`.* TO 'cisco'@'localhost' |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
14为bj数据库的gradeInfo表添加授权用户,名称为h3c,并为该用户授予查询权限;只允许用户从10.1.1.1这台机器上登录
mysql> grant select on bj.gradeInfo to 'h3c'@'10.1.1.1';
Query OK, 0 rows affected (0.00 sec)
15撤销cisco用户对bj数据库的查询权限
mysql> revoke select on bj.* from 'cisco'@'localhost';
Query OK, 0 rows affected (0.00 sec)
16分别使用cisco用户和h3c用户登录mysql数据库,测试用户的权限
# mysql -u cisco -p
Enter password:
mysql> select * from bj.stuInfo;
ERROR 1142 (42000): SELECT command denied to user 'cisco'@'localhost' for table 'stuInfo'
mysql> insert into bj.stuInfo values(3,'mike',15,'W');
Query OK, 1 row affected (0.00 sec)
# mysql -u h3c
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
//不创建密码只能看到module
mysql> grant select on bj.* to 'h3c'@'10.1.1.1' identified by "redhat";
Query OK, 0 rows affected (0.00 sec)
17备份mysql中的所有数据库,将数据库备份到单独硬盘分区上,分区名称为/bak
# mkdir /bak(没单独加硬盘,暂时备份在新文件夹中)
# mysqladmin -u root -p password "redhat"
Enter password:
# mysqldump -u root -p --all-databases >/bak/DB_all.bk
Enter password:
# cd /bak/
# ls
DB_all.bk
18将bj库删除,从备份文件中恢复该数据库
mysql> drop database bj;
Query OK, 2 rows affected (0.01 sec)
mysql> create database bj; //不要忘了创建出bj库才能恢复
Query OK, 1 row affected (0.01 sec)
[root@localhost.localdomain /bak]
# mysql -u root -p bj < /bak/DB_all.bk
Enter password:
mysql> show tables;
+--------------+
| Tables_in_bj |
+--------------+
| gradeInfo |
| stuInfo |
+--------------+
2 rows in set (0.00 sec)
² 搭建LAMP
一使用rpm包搭建
1安装httpd,mysql,php
# yum install httpd* mysql* php* -y
2修改httpd的配置文件
ServerName www.bj.com
DirectoryIndex index.html index.html.var index.php
2启动httpd,mysqld
# /etc/init.d/httpd start
# /etc/init.d/mysqld start
3在httpd的网页根目录下创建测试文件testsql.php,测试httpd,mysql,php协同工作
# vim /var/www/html/testsql.php
<?php
$link=mysql_connect('localhost','root','redhat');
if($link) echo "successfully";
mysql_close();
?>
二使用开源包搭建LAMP
1卸载原来安装的httpd包,并查看程序用户daemon是否存在
# rpm -qa | grep httpd
httpd-tools-2.2.15-15.el6_2.1.i686
httpd-2.2.15-15.el6_2.1.i686
# rpm -e --nodeps httpd-tools httpd
# cat /etc/passwd | grep daemon
daemon:x:2:2:daemon:/sbin:/sbin/nologin
2解压缩开源httpd包
# tar zxvf httpd-2.2.17.tar.gz
3预编译,配置
# cd httpd-2.2.17
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-cgi --enable-charset-lite
4编译成内核识别语言
make
5安装到系统目录
make install
6备份并修改httpd的配置文件
# cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
# vim /usr/local/apache/conf/httpd.conf
ServerAdmin mymail@163.com
ServerName www.bj.com
DirectoryIndex index.html
ServerRoot "/usr/local/apache"
DocumentRoot "/usr/local/apache/htdocs"
7启动httpd服务并加入到系统自启动
# /usr/local/apache/bin/apachectl start
# vim /etc/rc.d/rc.local
touch /var/lock/subsys/local
/usr/local/apache/bin/apachectl start
8验证
# netstat -antp | grep :80
tcp 0 0 :::80 :::* LISTEN 28418/httpd
9卸载原来安装的mysql包,并查看程序用户mysql
# rpm -qa | grep mysql
mysql-libs-5.1.61-4.el6.i686
# rpm -e --nodeps mysql-libs
# cat /etc/passwd | grep mysql
# useradd -M -s /sbin/nologin mysql
10解压缩mysql开源包
# tar zxvf mysql-5.1.55.tar.gz
11配置
# cd mysql-5.1.55
# ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312 --with-unix-socket-path=/tmp/mysql.sock
12编译和安装
make && make install
13生成配置文件并备份
# cp support-files/my-medium.cnf /etc/my.cnf
# cp /etc/my.cnf /etc/my.cnf.bak
14初始化数据库
# /usr/local/mysql/bin/mysql_install_db --user=mysql
15修改属组和属主
# chown -R root:mysql /usr/local/mysql/
# chown -R mysql /usr/local/mysql/var/
16生成mysql控制服务脚本
#cp support-files/mysql.server /etc/init.d/mysqld
# chmod a+x /etc/init.d/mysqld
# chkconfig --add /etc/init.d/mysqld
17建立mysql命令软连接
# ln -s /usr/local/mysql/bin/* /usr/local/bin/
18修改库文件目录保证其他软件和mysql协同工作
# ln -s /usr/local/mysql/lib/mysql/* /usr/local/lib/
# ln -s /usr/local/mysql/include/mysql/* /usr/local/include/
19启动mysql并测试
# /etc/init.d/mysqld start
# netstat -antp | grep :3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 14843/mysqld
20卸载原来安装的php包
# rpm -qa | grep php
21安装加密组件
# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure
# make && make install
# ln -s /usr/local/lib/libmcrypt.* /usr/lib
22安装认证工具
# tar zxvf mhash-0.9.9.9.tar.gz
# cd mhash-0.9.9.9
# ./configure
# make && make install
# ln -s /usr/local/lib/libmhash* /usr/lib
23安装加密工具
# tar zxvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8
# ./configure
# make && make install
24安装php软件
# tar zxvf php-5.3.6.tar.gz
# cd php-5.3.6
# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php --enable-mbstring
# make && make install
25生成php配置文件并备份
# cp php.ini-development /usr/local/php/php.ini
# cp /usr/local/php/php.ini /usr/local/php/php.ini.bak
26为php添加ZendGuardLoader模块,并复制到php安装目录下的lib/php文件夹下
# cp /software/ZendGuardLoader.so /usr/local/php/lib/php/
27修改php配置文件使其支持ZendGuardLoader模块
# vim /usr/local/php/php.ini
zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so
zend_loader_enable=1
28修改httpd配置文件使其与php协同工作
# vim /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.html index.php
29测试httpd,mysqld,php协同工作
# vim /usr/local/apache/htdocs/testsql.php
<?php
$link=mysql_connect('localhost','root','');
if($link) echo"successfully";
mysql_close();
?>