Linux服务器配置与管理
❶ linux操作系统课程设计:企业服务器的配置与实现怎样做
一般购买大品牌的服务器才有相应的驱动程序:
硬件:4核CPU,4G的内存,主板带RIAD,512G内存,
安装与配置Web服务器
Apache服务器源代码安装:
http://httpd.apache.org
Apache RPM软件下载:
http://updates.redhat.com
Apache模块和MPM可使用类型的更详细介绍:
http://httpd.apache.org/docs-2.0/mod/N
Apache对模块的使用有两种方法,一种是将其永久性地编译Apache内核中,即采用静态编译;另一种是采取动态编译,将其编译成DSO(Dynamic shared object,动态共享对象)模块,DSO模块的存储是独立于内核的,可被内核在需要时调用,具体是由mod_so模块提供的运行时配置指令(LoadMole)来实现的,若在编译中包含有任何动态模块,则mod_so模块会被自动包含进内核。若仅希望内核能够支持装载DSO模块,但不实际编译任何动态模块,则在编译配置时就明确指定--enable-so配置参数。
还提供了多道处理模块MPMs(multi-processing moles),编译过程中必须包含一个且只能有一个MPM,编译时系统会根据平台类型自动选择使用默认的MPM,也可在configure命令行中配置:
--with-mpm=要使用MPM类型
模块的指定方法:
1.静态编译模块到内核中,如编译包含mod-sll和mod_rewrite(去掉mod_)模块:
./configure --enable-mole="ssl rewrite"或./configure --enable-sll --enable-rewrite
动态编译模块为DSO:
./configure --enable-mods-shared="ssl rewrite"或./configure --enable-rewrite=shared
模块说明:
httpd -l //查看httpd进程中包含哪些模块;
httpd -S //检查虚拟主机的配置是否存在语法错误;
httpd -f //启动httpd守护进程时,加载配置文件;
mod_deflate模块允许支持此功能的浏览器,在请求的页面内容发送前进行压缩,以节少网络带宽。
mod_vbost_alias模块支持虚拟主要的动态配置。
chkconfig --level 235 httpd on
chkconfig --list httpd
service httpd start
service httpd restart
service httpd reload //重新装载httpd.conf(不重启服务器)
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=prefork --enable-moles="setenvif rewrite deflate vhost_alias"
#apachectl start //启动Apache服务器;
#apachectl restart
#echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local //自动启动
#httpd -t //检查配置文件httpd.conf
#apachect configtest //检查配置文件httpd.conf
#ServerRoot apache安装路径 //设置服务器的根目录;
#ServerName 完整的域名[:端口号] //设置服务器用于重定向(端口)和虚拟主机;
#Listen [IP地址]端口号 //告诉服务器接受来自指定端口或者指定IP地址的某端口的请求;
Listen 80
Listen 61.186.160.104:8088
#ServrAdmin E-mail地址 //设置Web站点管理员的E-mail地址,当产生错误时(如指定的网页找不到),服务器返回给客户端的
错误信息中将包含该邮件地址,以告诉用户该向谁报告错误;
#DocumentRoot 目录路径名 //设置Web服务器站点根目录;
DocumentRoot /usr/local/apache2/htdocs
#ErrorDocument 错误号 所要显示的网页 //定义当遇到错误时,服务器将给客户端什么样的回应,通常是显示预设置的一个错误页面;
grep ErrorDocument /etc/httpd/conf/httpd.conf //httpd.conf中一些对不同错误的响应信息;
#DirectoryIndex index.php index.htm index.html default.htm //设置站点主页文件的搜索顺序;
#user nobody //设置服务器以哪种(nobody)用户身份来响应客户端的请求;
#Group # -1 //设置服务器以哪种(nobody)用户身份来响应客户端的请求;nobody用户权限较小。
#AddDefaultCharset GB2312 //指定默认的字符集;
#TimeOut //设置连接请求超时的时间(秒),超时将断开;
#KeepAlive //用于启用持续的连接或者禁用;KeepAlive On|Off
#MaxKeepAliveRequests //设置在一个持续连接期间允许的最大HTTP请求数目;
#KeepAliveTimeout //设置在关闭TCP连接之前,等待后续请示求的秒数;一旦接受请求建立了TCP连接后则开始计时;
#PidFile logs/httpd.pid //指定存放httpd主(父)进程号的文件名;
日志配置命令:
#ErrorLog //指定服务器存放错误日志文件的位置和文件名;
#LogLevel //设置记录在错误日志中的信息的详细程序;
emerg 紧急,系统将无法使用;
alert 必须立即采取措施;
crit 致命情况;
crror 错误情况;
warm 警告;
info 普通信息;
notice 一般重要情况;
debug 出错级别信息;
http://127.0.0.1 //测试Apache是否正常运行
Test Page
This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.
#rpm -q httpd
#rpm -Uvh http-2.0.40-21.11.i386.rpm
目录说明:
/etc/httpd/conf //Apache服务器的配置文件httpd.conf
/etc/rc.d/init.d/ //Apache服务器启动脚本安装,httpd
/var/www/html //Web站点根目录;
/usr/bin //Apache软件包提供的可执行程序安装在该目录下。
/etc/httpd/logs //日志文件
htdocs //默认Web站点的根目录,可通过配置文件httpd.conf进行设置或更改;
cgi-bin //CGI脚本目录;
bin //apachectl启动脚本会自动设置在某些操作系统下,正常运行httpd所需的环境变量;
httpd守扩进程被调用后做的第一件事就是读取httpd.conf,并根据其配置项来配置当前Web服务器;
httpd.conf 分为三部分(section),
第一部分为全局环境设置,主要用于设置ServerRoot、主进程号的保存文件、
对进程的控制、服务器侦听的IP地址、端口、要装载的DSO模块
第二部分是服务器的主要配置指一位置;
第三部分用于设置和创建虚拟主机;
Listen 80 //Web服务器绑定在80端口;
DocumentRoot //设置Web站点的根目录等;
访问控制指令:
<Directory /usr/local/*/htdoes> //<Directory>使指定的目录及其子目录有效;不可嵌套。目录名可使用“*”或“?”通配符,
<Files ~“\.ht"> //作用于指定的文件,则不管该文件实际存在子哪个目录,允许所有主机访问位于任何目录下的.ht开的文件
Order allow,deny //指定allow和deny语句,哪一个被执行;允许、禁止访问主机。
Allow from all //允许所有主机访问;也可以是IP地址。
<Files>
</Directory>
<Location /assistant> //针对URL地址进行访问限制,不是文件系统;
Order deny,allow //
Deny from all
Allow from 61.186.160.105
</Location>
Order deny,allow //若主机没有被特别指出拒绝访问,则该资源被允许访问。
Order allow,deny //若主机没有被特别指出允许访问,则该主要将被拒绝访问该资源。
Order mntual-failure //只有那些在allow语句中被指定,同时又没有出现在deny语句的主机,才允许访问。若主机在两条指
令中都没有出现,则将被拒绝访问;
*、? //*代表任意个字符,?代表一个任意的字符;
<DirectoryMatch> //指定目录名时,可直接使用正则表达式;<Directory>若要使用正则表达式,则需要在正则表达式前加“~"
<FilesMatch> //可直接使用正则表达式来通配多个文件;
AccessFileName .htaccess //.htaccess分布式配置文件,在该文件中也可放置一些配置指令,以作用于该文件所在的目录以及
其下的所有子目录。搜寻.htaccess文件会降低系统性能;
<Directory />
AllowOverride None //禁止系统查找.htaccess文件;
Options FollowSymLinks //Options:控制在特定目录中将使用哪些服务器特性;
</Directory>
Options命令可用的选项:
None 不启用任何额处特性;
All 除MultiViews之外的所有特性,默认设置;
ExecCGI 允许执行CGI脚本;
FollowSymLinks 服务器允许在此目录中使用符号连接。在<Location>段中无效
Includes 允许服务器端包含SSI(Server-side includes)
IncludesN()EXEC 允许服务器端包含,但禁用#exec和#exec CGI命令。但仍可以从ScriptAltase目录使用#include虚拟CGI脚本;
Indexes 如果一个映射目录的URL被请求,而此目录中又没有DirectoryIndex(如:index.html),那么服务器返回一个
格式化后的目录列表;
MultiViews 允许内容协商的多重视图;
SymLinksIfOwnerMatch 服务器仅在符号连接与其目的目录或文件拥有者具有同样的用户ID时,才使用它;
ExecCGI 拥有ExecCGI执行权限;
prefork.c 控制Apache进程,对于使用prefork多道处理模块的Apache服务器;
<IfMole prefork.c>
StartServers 5 //设置服务器启动时启动的子进程的个数;
MinSpareServers 5 //设置服务器中空闲子进程(即没有HTTP处理请求的子进程)数目的下限;
MaxSpareServers 10 //设置服务器中空闲子进程数目的上限。若空闲子进程超过该设置值,则父进程就会
停止多余的子进程;
MaxClients 150 //设置服务器允许连接的最大客户数;
MaxRequestsPerChild 0 //设置子进程所能处理请求的数目上限,0为不受限制;
</IfMole>
access_log //日志文件用于记录服务器处理的所有请求;
CustomLog 指定access_log日志文件的位置和日志记录的格式;
LogFormat 定义日志的记录格式;
LogFormat 日志格式字符串 日志格式名称
LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined;
LogFormat "%h %1 %u %t \"%r\" %>s %b" common;
LogFormat "%{Referer}i->%U" referer;
LogFormat "%{User-agent}i“ agent;
LogFormat logs/access_log common
LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost
CustomLog logs/vhost_log vhost
%a 远程主机IP地址
%A 本地主机IP地址
%h 远程主机名
%H 请求协议
%l 远程登录名
%u 来自auth 的远程用户
%U 请求的URL路径
%U{User-agent}i 用户浏览器类型
%b 发送的字节数,不包括HTTP标题
%t 请求的时间
%r HTTP请求的第一行的内容
%s HTTP响应状态码,200代表访问成功,404代表文件未找到,403代表禁止访问,401代表未授权访问,400代表错误请求。
%m 请求方法
%v 服务于该请求的服务器的ServerName
%V 服务器的名字,取决于UseCanonicalName的设置
%{Host}i 返回HTTP请求的主机头信息,可能含端口号信息
split-logfile </var/www/myweb/vhost_log //当所有虚拟机日志都记录在主站点日志中时,使用此命令将日志按虚拟主机名分组,拆分成一个个独立的日
志文件,第个日志文件采用"虚拟主机名.log“形式命名,其中包含了该虚拟主机所产生的日志记录;
容器与访问控制指令:容器指令通常用于封装一组指令,使其在容器条件成立时有效,或者用于改变指令的作用域。
<IfMoe ! mpm_winnt.c> //<IfMoe>用于判断指定的模块是否存在,若存在(被静态地编译进服务器,或是被动态装载进服务器)则包含于
其中的指令将有效,否则会被忽略。可嵌套使用。
<IfMoe ! mpm_netware.c> //若要使模块不存在时所包含的指令有效,只需在模块名前加一个“!”即可,
User nobody
Group # -1
</IfMoe>
</IfMoe>
基于域名虚拟主机:
例:假设当前服务器的IP地址为192.168.3.120,现要在该服务器创建两个基于域名的虚拟主机,使用端口为标准的80,其域名分别为www.myweb1.com和www.myweb2.com,站点根目录分别为/var/www/myweb1和/var/www/myweb2,日志文件分别放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目录下面,Apache服务器原来的主站点采用域名www.myweb.com进行访问。
#vi /etc/hosts //使用/etc/hosts进行域名注册;
192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com
#ping www.myweb1.com //检测域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com
#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
#mkdir -p /var/vhlogs/myweb1
#mkdir -p /var/vhlogs/myweb2
#vi /etc/httpd/conf/httpd.conf
Listen 80 //设置Listen指令侦听的端口
NameVirtualHost 192.168.3.120 //基于域名的虚拟主机,如果对多个地址使用了多个基于域名的虚拟主机
则对每个地址均要使用此指令:NameVirtualHost IP地址:端口
NameVirtualHost * 当IP地址无法确定时,使用“*”通配任意的IP地址
<VirtualHost 192.168.3.120> //定义一个虚拟主机,VirtualHost的参数必须与NameVirtualHost后面所使用的参数保持一致。
ServerName www.myweb.com //当一个请求到时,服务器会首先检查它是否使用了一个能和NameVirtualHost相匹配的IP地址。如果匹配,就会
DocumentRoot /usr/local/apache/htdoes //就会查找每个与这个IP地址相对应的<VirtualHost>配置段,并尝试找出一个ServerName或ServerAlias配置相
ServerAdmin [email protected] //与请求的主机名(域名)相同的,若找到,则使用该虚拟主机的配置,并响应其访问请求。否则将使用符合这个
</VirtualHost> //IP地址的第一个列出的虚拟主机。在最前面的虚拟主机成为默认虚拟主机。
<VirtualHost 192.168.3.120>
ServerName www.myweb1.com
DocumentRoot /var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb/error_log
TransferLog /var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost 192.168.3.200>
ServerName www.myweb2.com
DocumenRoot /var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin [email protected]
ErrorLog /var/vhlogs/myweb2/error_log
TranferLog /var/vhlogs/myweb2/access_log
</VirtualHost>
<Directory /var/www> //对Web站点目录设置访问控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Apachectl –S //查查虚拟主机配置是否正确;
Aparhectl restart //重启Apache服务器配置生效;
例:
NameVirtualHost 192.168.168.10 //服务器配有两块网卡,IP:内网192.168.168.10,外网61.186.160.104,在Internet网中,企业域名
NameVirtualHost 61.186.160.104 //www.example.com指向外网IP地址,在企业内网的DNS服务器中,指向内网IP地址;现要求为来自内网
<VirtualHost 192.168.168.10 61.186.160.104> //外网的请求提供同样的Web服务。(httpd.conf中设置)
DocumentRoot /www/server1
ServerName www.example.com
</Virtual>
例:
Listen 80 //服务器:192.168.168.154,服务器上创建两个基于域名(主机名)的虚拟主机,域名:www.myweb3.com和www.
Listen 8080 //myweb4.com,每个虚拟主机的80端口和8080端口,分别服务一个Web站点,其站点根目录分别为
// /var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。
NameVirtualHost 192.168.168.154:80 //www.myweb3.com的80端口作为默认Web站点。
NameVirtualHost 192.168.168.154:8080
<VirtualHost 192.168.168.154:80>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-80
<VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-8080
</VirtualHost>
<VirtualHost 192.168.168.154:80>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-80
</VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-8080
</VirtualHost>
基于IP地址虚拟主机:
#cd /etc/sysconfig/network-scripts //服务器有两张网卡eth0、eth1,eth0:192.168.167.157,
#cp ifctg-eth1 ifcfg-eth1:0 //eth1:192.168.167.156.eth0网卡用作了基于主机名的虚拟主机,
#vi ifcfg-eth1:0 //eth1通过IP别名方式,为其绑定多个IP地址,用于提供基于IP地址
DEVICE=eth1:0 //的虚拟主机。eth1绑定的第一张虚拟网卡的设备名为eth1:0,对应的
IPADDR=192.168.167.157 //配置文件为ifcfg-eth1:0,通过修改配置文件中的设备名和IP地址,
#ifdown eth1 //即可实现IP地址的绑定。
#ifup eth1:0
#ifup eth1
#ping 192.168.167.157
#ping 192.168.167.156
#vi /etc/hosts //192.168.167.156:www.example2.com,192.168.167.157:
192.168.167.157 www.example3.com //www.example3.com,试为其创建基于IP地址的虚拟主机,端口使用80
#mkdir -p /var/www/example2 //目录分别为/var/www/example2、/var/www/example3,为这两个域再增
#mkdir -p /var/www/example3 //8080端口,使其也能在8080端口发布另外的Web站点。Web站点根目录分
///var/www/example2-8080、/var/www/example3-8080
#vi httpd.conf
Listen 80
Listen 8080
<VirtualHost 192.168.167.156:80>
ServerName www.example2.com
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost 192.168.167.156:8080>
ServerName www.example2.com
DocumentRoot /var/www/example2-8080
</VirtualHost>
<VirtualHost 192.168.167.157:80>
ServerName www.exaple3.com
DocumentRoot /var/www/example3
</VirtualHost>
<VirtualHost 192.168.167.157:8080>
ServerName www.exaple3.com
DocumentRoot /var/www/example3-8080
</VirtualHost>
❷ 如何管理服务器
问题一:如何做好一个服务器管理员?有哪些管理技巧 总体来说,服务器系统的管理是整个网络管理工作中的重中之重,特别是在小型单位网络中,单位的网络规模比较小,网络设备比较简单,基本上是属于傻瓜式的。
这里的服务器系统包括网络漏友手服务器和应用服务器系统两个方面。服务器系统的管理是整个网络管理工作中最重要的部分,因为它是整个网络的核心所在,无论是网络操作系统本身,还是各种网络服务器和应用服务器。
具体来说,服务器系统管理主要是安装、配置和管理网络操作系统、文件服务器、DNS、WINS、DHCP等网络服务器,以及像Web、ftp、E-mail、RAS、NAT等应用服务器。服务器系统管理的最终目标,就是要确保服务器各种协议和服务工作正常,确保服务器的各项性能指标正常发挥。另外,还需要及时地更新服务器系统的版本或补丁程序,这不仅关系到服务器的性能发挥,而且还关系到整个网络系统的安全性,因为现在的操作系统不断有新的安全漏洞被发现,及时安装补丁可以有效地阻止、填补这些安全漏洞。
目前在服务器系统管理方面的重点与难点当然是各种网络操作系统的管理了。在这其中又包括各种不同版本的主流Windows、Linux和UNIX网络操作系统的管理了。而每个系统中所包括的具体管理工作又非常多,非常复杂,但这些又是网络管理员所必须掌握的。至少,在大多数中小型企业中,网络管理员应该掌握主流的Windows和Linux网络操作系统的管理了。在一些较大企业,或者一些特殊行业(如金融、证券和保险等)中,UNIX、Linux系统又是最普遍采用的,所以UNIX和Linux系统管理对于专业网络管理员来说,又是必须要掌握的。当然,像其他应用服务器的管理也是非常重要,而且必须掌握。
2.关键设备的维护与管理
这也是整个网络管理中的重点之一,同时也是非常重要的工作,特别是在网络规模比较大,网络设备比较高档的单位网络中。因为单位网络系统更依赖这些关键设备的正常工作。
计算机网络的关键设备一般包括网络的核心交换机、核心路由器和服务器,它们是网络中的“节点”。对这些节点的维护和管理,除了需要经验积累外,还可以通过一些专门的网络管理系统来监视其工作状态,以便及时发现问题,及时进行维护和故障排除。
另外,为了提高网络的可用性,对一些关键设备进行冗余配置也是必不可少的。冗余包括两层含义,一是从端口角度进行,如对关键设备(如服务器、核心交换机)采取冗余链路连接,这样当其中一个端口出现故障时,另一个冗余链路就可以接替故障链路继续保持返嫌正常工作状态;另一层含义是对配置双份的设备或部件,如服务器中的电源、风扇、网卡,甚至内存等,核心交换机和路由器也可以配置两个。在正常工作时,这些冗余设备或部件起到负载均衡的作用,而在某部分出现故障时,则又起备份的作用。
在关键设备维护与管理中,服务器和网络总体性能的监控与管理是个技术重点和难点。要用到各种监控和管理工具,如流量监控工具MRTG、网络性能和通信监控的Sniffer类工具,带宽性能监控的Qcheck和IxChariot工具等。服务器性能方面的监控与管理还可利用操作系统自带的性能和监控管理工具进行。
当然,网络设备的配置与管理是整个关键设备维护与管理的重点与难点,这一点几乎是所有从事网络管理,甚至网络工程技术人员的共识。目前在关键设备方面,主要是以Cisco、华为3等品牌为主,掌握这两个主要品牌设备的配置与管理方法是网络管理员所必需的。
3. 用户管理
用户管理告李是网络管理中的一个重点和难点,所涉及到的方面非常多,如用户账户、密码、文件和网络访问权限、用户权利、用户配置文件及用户安全策略等。既要保证各用户的正常工作不受影响,同时又......>>
问题二:win7服务器管理器怎么下载 如果之前在 控制面板 - 程序 - 打开或关闭Windows功能 里没有这个选项勾栏
到官网去下载一下AD的补丁
microsoft/...d=7887
然后你再去看 控制面板 - 程序 - 打开或关闭Windows功能 就有如图的东西
希望能帮助你
问题三:如何打开服务管理器 这两个完全可以去掉一个,并不会影响你的计算机安全的,
打开控制面板---管理工具--服务
问题四:什么是服务器的管理ip?有什么作用?怎么配置? 有的服务器限制不同地区的IP登录,因为不同地区的IP不同。也就是限制不同地区的IP段。
问题五:新手站长如何轻松管理服务器安全? 在服务器上安装安全狗软件,并把服务器加入服云。
这样不仅可以为服务器提供防护功能,而且可以登陆服云管理服务器。
服云客户端有web版、pc版、手机端的,可以随时随地了解服务器实时情况并进行调整服务器安全策略来应对攻击。让服务器更安全。
请采纳,谢谢
问题六:如何控制服务器? 你的电脑登陆的时候是要登陆到域服务器上吗 如果是的话 那就没办法了 除非你的电脑脱离了域控制器的管理了 也就是说你不登陆到域控制器上 而是登陆本地的账号 比如administrator 你如果登陆到域上 那就只能遵循域管理员设定的规则 除非域管理员给你解除了那些限制 否则你是无法摆脱的 要解除 让管理员给你更高的权限 或者破解你的局域网里的域服务器 给你的登陆账号提权 只有这几种办法 其他的都不行
问题七:系统服务管理器怎么打开 1.XP 在 开始---->运行------>输入services.msc而win 7 直接在开始,然后--->输入 services.msc
如图所示:
2.然后就可以打开服务管理器了。
可以点击名称,按照字母进行排序
3.选择一个服务后,可以右击,进行开启/关闭 等操作。
问题八:电脑的系统服务管理怎么进入 一、打开电脑的系统服务界面方法:
1、点击开始菜单点击运行(或在键盘上按WIN+R快捷键),打开运行界面,输入services.msc指令,按确定。
2、直接在我的电脑图标上右键在弹出的菜单中选择管理,弹出的计算机管理界面,点击服务和应用程序,就能看到服务选项,双击即可打开服务界面。
3、点击开始菜单,选择控制面板,在管理工具界面,找到服务并双击,即可打开服务界面。
二、启动系统服务
第1步:使用本文中的任何一种方法打开系统服务程序。
第2步:在系统服务窗口中找盯自己需要启动的系统服务,并双击此服务。如打开(DHCP Client)系统服务。
第3步:在打开的系统服务窗口中,单击“启动”按扭即可启动相关的系统服务了。
问题九:如何快速打开服务器管理器 常用方法 服务器管理器,右键,发送到桌面,建立快捷方式
问题十:如何管理服务器上的多个数据库 虽然这将减少托管所有这些数据库的成本,但是,这增加了管理这些系统的复杂性,因为你现在要处理多个服务级协议和维护窗口。当你决定在同一台服务器上托管多个数据库的时候,你要考虑的第一件事是这些系统是否有互补的维护窗口。如果一个系统不能在夜间放慢速度或者离线,另一个系统不能在白天放慢速度或者离线,这些系统就不适合共享一个服务器,因为你在需要为系统使用补丁或者处于其它原因要让系统离线的时候,你没有有效的维护时间窗。 你需要考察的下一个决定因素是这些系统的服务级协议。需要99%的开机时间的系统能够安排在一起,因为你可能会为这些系统(也许是集群解决方案)建立一个比非重要任务系统更强大的环境。这可以为你节省额外的成本,因为你现在不需要采购任何高端系统。具有更高的服务级协议的系统也可能会有同样的维护时间窗。因此,这些系统在一开始就是互补的。 承担工作量 对托管多个数据库的SQL服务器进行维护的最大难题是时机。 当然,当把多个数据库集中在一个SQL服务器的时候需要考虑的最重要的问题是,是否有足够的CPU和内存资源处理这些客户程序添加到这个数据库服务器的工作量。如果单个服务器不能提供需要的CPU和内存资源,那么,把这些数据库都集中在那台服务器上就不是一个好的选择。 当你经过这个整个决策过程并且把这些数据库都放在同一台服务器上之后,你如何保持这些系统的健康和在高峰期仍能运行?与其它任何数据库解决方案一样,你仍需要处理自己的备份、索引碎片整理和重建、以及为操作系统和SQL服务器使用补丁。 处理托管多个数据库的SQL服务器的维护的最大难题是时机。你需要保证你的维护任务能够在这个SQL服务器托管的全部数据库计划的维护时间窗内完成。在任何数据库的维护时间窗之外进行维护工作都将引起数据库运行缓慢,因为硬盘和CPU资源现在被维护活动占用了,而不是处理正常的数据库查询。 重新索引工作 已经证明是有用的一个技术是比正常运行重新索引指令更频繁地对你的索引进行碎片整理。整理碎片的指令比重新索引指令有更多的好处。第一,索引碎片整理指令是一种在线操作,而重建索引是一种离线工作(除非你运行SQL服务器2005企业版或者更新的版本)。第二,如果你频繁地运行索引碎片整理指令,每一次运行这个指令的时候工作量都比较少。 例如,你每个星期检查一次索引碎片,它显示碎片是70%。这样,你就可以运行一个索引重建指令清除这些索引。 然而,你在第二天再检查索引碎片的时候会发生什么情况呢?它可能是大约8%至10%的碎片。因此,如果你每天运行一个索引碎片整理指令而不是每个星期运行一次索引碎片整理指令,每一天要做的工作就很少,这个工作就能够更快地完成,可能在每天的维护时间窗内完成。 即使你在时间窗内不能让这个系统离线,由于碎片整理操作是一种在线操作,这个系统在整理碎片操作的时间将继续发挥作用,只是反应速度比正常情况下稍微慢一点。 数据库备份 备份是在一台服务器上托管多个数据库的时候需要解决的另一个关键问题。 每一个数据库都有自己的备份要求。备份数据库也许是能够在SQL服务器运行时执行的最繁重的任务。并不是因为这种备份需要占用大量的CPU和内存资源(这个任务占用的资源一般是很低的,除非你在备份的时候对数据库进行压缩),而是因为备份一个大型数据库需要占用大量的硬盘资源。 当进行全面备份的时候,整个数据库必须从硬盘读取。如果你的硬盘系统非常繁忙,这个备份会引起性能严重下降。这种备份的最佳解决方案是选择合适的时机。你还可以寻找能够在备份的同时允许对数据库备份进行压缩的第三方工具。由于这将增加SQL服务器上的CPU的工作量,它通......>>
❸ 怎么查看linux服务器的配置
首先当然要取得机器的IP,用户名和密码。
登陆之后,首先看到的就是机器的名称,一般提示符就有了,如[root@localhost root]#。
这其中的localhost就是机器名了.如果用命令来查看的话就是hostname。
查看系统内核:uname –a。
查看操作系统的版本(我现在只用过redhat,所以只以这个为例):cat /etc/redhat-release。
查看网络配置信息:ifconfig
输出如下信息:eth0 Link encap:Ethernet HWaddr 00:XX:XX:XX:XX:XX
inet addr:10.1.3.101 Bcast:10.1.3.255 Mask:255.255.255.0
……
eth1 Link encap:Ethernet HWaddr 00:XX:XX:XX:XX:XX
inet addr:10.1.2.101 Bcast:10.1.2.255 Mask:255.255.255.0
……..
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1。
说明当前有三个网卡:eth0,eth1,lo;其中lo的ip是127.0.0.1,是用于测试的虚拟接口.
如果要对每个网卡查看更详细的信息就需要分别查看其配置文件
对eth0
执行less /etc/sysconfig/network-scripts/ifcfg-eth0
输出如下信息
DEVICE=eth0 设备名称
HWADDR=00:XX:XX:XX:XX:XX 物理地址
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.1.3.101 ip地址
GATEWAY=10.1.3.1 网关
NETMASK=255.255.255.0 掩码
对eth1
执行less /etc/sysconfig/network-scripts/ifcfg-eth1,输出结果与上面类似。
查看当前打开的服务:chkconfig –list。
查看当前打开的端口:netstat –an。
查看磁盘信息:fdisk –l、df –h。
查看cpu的信息:cat /proc/cpuinfo。
查看内存信息:cat /proc/meminfo。
查看板卡信息:lspci、cat /proc/pci。
查看当前系统运行情况:ps –aux、top (类似于windows的任务管理器,可以看到当前cpu,内存的使用情况)。
❹ 在Linux中,如何配置WWW服务器
Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。
httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述;srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件;access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制;这三个配置文件控制着服务器的各个方面的特性,因此为了正常运行服务器便需要设置好这三个文件。
除了这三个设置文件之外,Apache还使用mime.types文件用于标识不同文件对应的MIME类型, magic文件设置不同MIME类型文件的一些特殊标识,使得Apache 服务器从文档后缀不能判断出文件的MIME 类型时,能通过文件内容中的这些特殊标记来判断文档的MIME类型。
bash-2.02$ ls -l /usr/local/apache/conf
total 100
-rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf
-rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default
-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf
-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default
-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic
-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default
-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types
-rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf
-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default
事实上当前版本的Apache将原来httpd.conf、srm.conf与access.conf中的所有配置参数均放在了一个配置文件httpd.conf中,只是为了与以前的版本兼容的原因(使用这三个设置文件的方式来源于NCSA-httpd),才使用三个配置文件。而提供的access.conf和srm.conf文件中没有具体的设置。
由于在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。以下使用缺省提供的httpd.conf为例,解释Apache服务器的各个设置选项。然而不必因为它提供设置的参数太多而烦恼,基本上这些参数都很明确,也可以不加改动运行Apache服务器。但如果需要调整Apache服务器的性能,以及增加对某种特性的支持,就需要了解这些设置参数的含义。
关于Apache服务器的性能,在Internet上存在很大的争议,基本上使用Apache的使用者几乎都不怀疑它的优秀性能,Apache也支撑了很多着名的高负载的网站,但是在商业机构的评测中,Apache往往得分不高。很多人指出,在这些评测中,商业Web服务器及其操作系统往往由其专业公司的工程师进行过性能调整,而Free 的操作系统和Web服务器往往就使用其缺省配置或仅仅作很小的更改。需要指出的是,除了操作系统的性能调整之外,Apache 服务器本身的缺省配置绝不是最优化和最高效的,而是要适应几乎所有种类操作系统、所有种类硬件下的设置,多平台的软件不可能为特定平台和特定硬件提供最优化的缺省配置。因此要使用Apache的时候,性能调整是必不可少的。
在商业评测中忽略了的另一个事实是,评测时往往对不同种类的功能进行比较,例如使用Apache的标准CGI 的性能与ISAPI,NSAPI等服务器端API比较,事实上Apache服务器与此可以比较的功能为modperl ,FastCGI,与ASP类似的功能为PHP等等,只不过由于Apache的开放模式,这些功能是由独立的开发组,作为独立的模块来实现的。但是在评测中,测试人员没有加入相应的模块评测其性能。
HTTP守护进程的运行参数
httpd.conf中首先定义了一些httpd守护进程运行时需要的参数,来决定其运行方式和运行环境。
ServerType standalone
ServerType定义服务器的启动方式,缺省值为独立方式standalone,httpd
服务器将由其本身启动,并驻留在主机中监视连接请求。在Linux下将在启动文件 /etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,这种方式是推荐设置。
启动Apache服务器的另一种方式是inet方式,使用超级服务器inetd监视连接请求并启动服务器。当需要使用inetd启动方式时,便需要更改为这个设置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd.conf并重起inetd,那么Apache就能从inetd中启动了。
两种方式的区别是独立方式是由服务器自身管理自己的启动进程,这样在启动时能立即启动服务器的多个副本,每个副本都驻留在内存中,一有连接请求不需要生成子进程就可以立即进行处理,对于客户浏览器的请求反应更快,性能较高。而 inetd方式要由inetd发现有连接请求后才去启动http服务器,由于inetd 要监听太多的端口,因此反应较慢、效率较低,但节约了没有连接请求时Web服务器占用的资源。因此inetd方式只用于偶尔被访问并且不要求访问速度的服务器上。事实上inetd方式不适合http的突发和多连接的特性,因为一个页面可能包含多个图象,而每个图象都会引起一个连接请求,即使虽然访问人数造成教少,但瞬间的连接请求并不少,这就受到inetd性能的限制,甚至会影响由inetd启动的其他服务器程序。
ServerRoot "/usr/local"
ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。
由于httpd会经常进行并发的文件操作,就需要使用加锁的方式来保证文件操作不冲突,由于NFS文件系统在文件加锁方面能力有限,因此这个目录应该是本地磁盘文件系统,而不应该使用NFS文件系统。
#LockFile /var/run/httpd.lock
LockFile参数指定了httpd守护进程的加锁文件,一般不需要设置这个参数, Apache服务器将自动在ServerRoot下面的路径中进行操作。但如果ServerRoot为NFS文件系统,便需要使用这个参数指定本地文件系统中的路径。
PidFile /var/run/httpd.pid
PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。
ScoreBoardFile /var/run/httpd.scoreboard
httpd使用ScoreBoardFile来维护进程的内部数据,因此通常不需要改变这个参数,除非管理员想在一台计算机上运行几个Apache服务器,这时每个Apache服务器都需要独立的设置文件htt pd.conf,并使用不同的ScoreBoardFile。
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf
这两个参数ResourceConfig和AccessConfig,就用于和使用 srm.conf 和 access.conf 设置文件的老版本Apache兼容。如果没有兼容的需要,可以将对应的设置文件指定为/dev/null,这将表示不存在其他设置文件,而仅使用httpd.conf 一个文件来保存所有的设置选项。
Timeout 300
Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。
KeepAlive On
在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。
MaxKeepAliveRequests 100
MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。
KeepAliveTimeout 15
KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。
MinSpareServers 5MaxSpareServers 10
在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。
因此就可以使用参数MinSpareServers来设置最少的空余子进程数量, 以及使用参数MaxSpareServers 来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副本退出。
StartServers 5
StartServers参数就是用来设置httpd启动时启动的子进程副本数量,这个参数与上面定义的MinSpareServers和MaxSpareServers参数相关,都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,小于MinSpareServers和大于MaxS pareServers都没有意义。
MaxClients 150
在另一方面,服务器的能力毕竟是有限的,不可能同时处理无限多的连接请求,因此参数Maxclient s就用于规定服务器支持的最多并发访问的客户数,如果这个值设置得过大,系统在繁忙时不得不在过多的进程之间进行切换来为太多的客户进行服务,这样对每个客户的反应就会减慢,并降低了整体的效率。如果这个值设置的较小,那么系统繁忙时就会拒绝一些客户的连接请求。当服务器性能较高时,就可以适当增加这个值的设置。对于专业网站,应该使用提高服务器效率的策略,因此这个参数不能超过硬件本身的限制,如果频繁出现拒绝访问现象,就说明需要升级服务器硬件了。对于非专业网站,不太在意对客户浏览器的反应速度,或者认为反应速度较慢也比拒绝连接好,就也可以略微超过硬件条件来设置这个参数。
这个参数限制了MinSpareServers和MaxSpareServers的设置,它们不应该大于这个参数的设置。
MaxRequestsPerChild 30
使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。
但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的httpd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。 缺省的设置值为30,这个值对于具备高稳定性特点的Linux系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。
#Listen 3000
#Listen 12.34.56.78:80
#BindAddress *
Listen参数可以指定服务器除了监视标准的80端口之外,还监视其他端口的HTTP请求。由于FreeBSD系统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP请求。如果没有配置这一项,则服务器会回应对所有IP的请求。
即使使用了BindAddress参数,使得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数,仍然可以让HTTP守护进程回应对其他IP地址的请求。此时Listen参数的用法与上面的第二个例子相同。这种比较复杂的用法主要用于设置虚拟主机。此后可以用VirtualHost参数定义对不同IP的虚拟主机,然而这种用法是较早的HTTP 1.0标准中设置虚拟主机的方法,每针对一个虚拟主机就需要一个IP地址,实际上用处并不大。在HTTP 1.1中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具备更大的意义。
LoadMole mime_magic_mole libexec/apache/mod_mime_magic.so
LoadMole info_mole libexec/apache/mod_info.so
LoadMole speling_mole libexec/apache/mod_speling.so
LoadMole proxy_mole libexec/apache/libproxy.so
LoadMole rewrite_mole libexec/apache/mod_rewrite.so
LoadMole anon_auth_mole libexec/apache/mod_auth_anon.so
LoadMole db_auth_mole libexec/apache/mod_auth_db.so
LoadMole digest_mole libexec/apache/mod_digest.so
LoadMole cern_meta_mole libexec/apache/mod_cern_meta.so
LoadMole expires_mole libexec/apache/mod_expires.so
LoadMole headers_mole libexec/apache/mod_headers.so
LoadMole usertrack_mole libexec/apache/mod_usertrack.so
LoadMole unique_id_mole libexec/apache/mod_unique_id.so
ClearMoleList
AddMole mod_env.c
AddMole mod_log_config.c
AddMole mod_mime_magic.c
AddMole mod_mime.c
AddMole mod_negotiation.c
AddMole mod_status.c
AddMole mod_info.c
AddMole mod_include.c
AddMole mod_autoindex.c
AddMole mod_dir.c
AddMole mod_cgi.c
AddMole mod_asis.c
AddMole mod_imap.c
AddMole mod_actions.c
AddMole mod_speling.c
AddMole mod_userdir.c
AddMole mod_proxy.c
AddMole mod_alias.c
AddMole mod_rewrite.c
AddMole mod_access.c
AddMole mod_auth.c
AddMole mod_auth_anon.c
AddMole mod_auth_db.c
AddMole mod_digest.c
AddMole mod_cern_meta.c
AddMole mod_expires.c
AddMole mod_headers.c
AddMole mod_usertrack.c
AddMole mod_unique_id.c
AddMole mod_so.c
AddMole mod_setenvif.c
Apache服务器的一个重要特性就是其模块化的结构,这不但表现为其能在编译时能通过新的模块加入新的功能,还表现为其模块可以动态加载入http服务程序中,而不必载入不需要的模块。使用Apache的动态加载模块只需要设置好Load Mole和AddMole参数就可以了,这种特性就是Apache的 DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一个简单的事情,不适当的改动这里的设置就可能造成服务器不能正常启动。因此如果不是要增加或减少服务器提供的功能,就不要改动这里的设置。
上面这些列表就显示了Linux下的缺省Apache服务器支持的模块,事实上很多模块是没有必要的,不必要模块不会被载入内存。模块可以静态连接到pache 服务器内部,也可以这样动态加载,将Apache的特性都编译成动态可加载模块是该Port的做法,而不是Apache的缺省做法,这样就以牺牲很小的性能的同时,带来极大的灵活性。
因而动态可加载的能力还是对性能有轻微的影响,因此可以重新编译Apache,将自己所需要的功能编译进Apache 服务器内部,可以让系统显得更为干净,效率也有轻微的提高。通常仅仅为了这一个目的就重新编译Apache是没有必要的,如果需要增加其他特性而重新编译Apache,不妨在增加其他模块的同时将所有的模块都静态连接入Apache 服务器。有的使用者更喜欢动态加载模块,那么也不妨全部都使用动态加载模块。
这些模块都被放置到/usr/local/apache/libexec/目录下, 每个模块对应Apache服务器的一个特性。详细解释每个模块的功能需要相当多的篇幅,其中比较重要的特性将在后面相应的地方中进行解释,而具体每个模块的功能及用法就需要查看Apache的文档。
#ExtendedStatus On
Apache服务器可以通过特殊的HTTP请求,来报告自身的运行状态,打开这个ExtendedStatus 参数可以让服务器报告更全面的运行状态信息。
❺ Linux服务器配置与管理的目录
第1篇 RedHat Linux基础篇
第1章 Linux操作系统简介 2
1.1 网络操作系统 2
1.1.1 UNIX操作系统 2
1.1.2 NetWare局域网操作系统 3
1.1.3 Windows NT类网络操作系统 4
1.2 Linux的发展历史 5
1.2.1 了解GNU 5
1.2.2 Linux的发展 5
1.3 Linux的主要特点 6
1.3.1 开放性 6
1.3.2 多用户多任务环境 6
1.3.3 良好的用户界面 7
1.3.4 设备独立性 7
1.3.5 丰富的网络功能 7
1.4 Linux的内核 8
1.4.1 Linux内核的发展史 8
1.4.2 Linux内核的功能 8
1.4.3 Linux内核的版本 9
1.5 Linux发行版本 11
1.5.1 Linux常见发行版本 12
1.5.2 RedHat Enterprise Linux 13
1.6 本章小结 14
第2章 RHEL 6.4的安装 15
2.1 安装前准备 15
2.1.1 检查硬件兼容性 15
2.1.2 硬盘的分区规划 15
2.1.3 检查磁盘空间 16
2.1.4 了解存储设备的表示 16
2.1.5 RHEL安装方式 17
2.2 安装RHEL 17
2.2.1 进入安装程序 17
2.2.2 选择语言 19
2.2.3 硬盘分区 22
2.2.4 选择安装组件 24
2.2.5 安装最后的设置 27
2.3 其他安装方式简介 30
2.3.1 硬盘安装 30
2.3.2 网络安装 34
2.4 本章小结 38
2.5 本章习题 38
第3章 Linux基础使用 39
3.1 Linux的启动和关闭 39
3.1.1 启动Linux 39
3.1.2 关闭Linux 40
3.2 命令界面 42
3.2.1 切换到字符界面 42
3.2.2 使用终端窗口 43
3.2.3 使用第三方终端软件 43
3.3 图形界面GNOME 44
3.3.1 认识GNOME 44
3.3.2 桌面组成 45
3.3.3 系统设置 46
3.3.4 浏览计算机 50
3.3.5 多媒体应用 52
3.3.6 网络应用 53
3.3.7 办公软件 54
3.4 Linux的运行级 57
3.4.1 init进程 57
3.4.2 运行级 58
3.5 本章小结 59
3.6 本章习题 60
第4章 Linux常用操作命令 61
4.1 Linux Shell简介 61
4.1.1 了解Shell 61
4.1.2 Shell命令规则 62
4.2 常用目录和文件操作命令 64
4.2.1 路径的概念 64
4.2.2 常用目录操作命令 65
4.2.3 常用文件操作命令 69
4.2.4 使用通配符 76
4.2.5 查找文件 77
4.2.6 文件压缩和打包管理 83
4.2.7 其他常用命令 91
4.3 文本编辑命令 94
4.3.1 查看文件 94
4.3.2 文本编辑器vi入门 98
4.4 系统运行状况分析命令 102
4.4.1 硬件信息 102
4.4.2 引导信息 104
4.4.3 运行日志 104
4.5 本章小结 107
4.6 本章习题 107
第5章 Linux文件系统 108
5.1 认识Linux文件系统 108
5.1.1 目录结构 108
5.1.2 Linux文件 109
5.1.3 常见文件系统类型 111
5.2 Linux文件权限 112
5.2.1 文件权限概述 113
5.2.2 权限位 113
5.2.3 setuid和setgid位 115
5.2.4 修改文件权限 116
5.2.5 修改所有者 117
5.2.6 设置默认权限 118
5.3 使用硬盘 118
5.3.1 查看硬盘分区表 118
5.3.2 硬盘分区 120
5.3.3 格式化分区 126
5.4 挂载文件系统 127
5.4.1 mount命令 128
5.4.2 挂载硬盘分区 129
5.4.3 挂载光驱 130
5.4.4 挂载U盘 130
5.4.5 自动挂载文件系统 131
5.5 本章小结 133
5.6 本章习题 133
第6章 Linux管理入门 134
6.1 管理用户和组 134
6.1.1 保存用户和组信息的文件 134
6.1.2 管理用户和组 137
6.1.3 口令维护 139
6.1.4 查看用户 140
6.1.5 用户管理器 141
6.2 管理进程 142
6.2.1 了解进程 142
6.2.2 启动进程 143
6.2.3 查看进程状态 144
6.2.4 终止进程 147
6.3 管理软件包 148
6.3.1 RPM介绍 148
6.3.2 使用RPM 149
6.3.3 从源代码安装软件 151
6.4 配置网络 153
6.4.1 设置主机名 153
6.4.2 设置IP地址 154
6.4.3 通过配置文件修改IP地址和网关 156
6.4.4 DNS服务器 156
6.4.5 xinetd 157
6.5 本章小结 160
6.6 本章习题 160
第7章 Shell编程入门 161
7.1 Shell编程过程 161
7.1.1 创建Shell程序 161
7.1.2 设置执行权限 162
7.1.3 执行Shell程序 163
7.2 Shell的语法介绍 163
7.2.1 使用变量 164
7.2.2 输入/输出内部命令 165
7.2.3 条件测试 167
7.2.4 流程控制语句 169
7.2.5 函数 174
7.2.6 处理参数 175
7.3 调试Shell程序 177
7.3.1 一般错误 177
7.3.2 调试跟踪 177
7.4 Shell程序设计实例 179
7.5 本章小结 180
7.6 本章习题 180
第2篇 基础网络应用篇
第8章 远程登录管理 184
8.1 使用Telnet服务 184
8.1.1 安装Telnet服务器程序 184
8.1.2 配置Telnet服务器 185
8.1.3 使用telnet 187
8.1.4 Telnet的安全风险 188
8.2 使用OpenSSH 188
8.2.1 安装和配置OpenSSH 189
8.2.2 OpenSSH密钥管理 192
8.2.3 使用SSH客户端 193
8.2.4 OpenSSH常用命令 194
8.3 使用VNC 197
8.3.1 VNC简介 197
8.3.2 安装VNC服务器程序 197
8.3.3 启动和配置VNC服务器程序 198
8.3.4 使用Windows VNC客户端 200
8.3.5 Linux VNC客户端 201
8.4 本章小结 203
8.5 本章习题 203
第9章 DHCP服务器 204
9.1 认识DHCP协议 204
9.1.1 DHCP简介 204
9.1.2 DHCP工作流程 205
9.2 安装DHCP服务器 206
9.2.1 安装DHCP服务器程序 206
9.2.2 启动DHCP服务器程序 207
9.2.3 停止DHCP服务器程序 208
9.2.4 查看DHCP状态 208
9.3 配置DHCP服务器 208
9.3.1 了解配置文件 208
9.3.2 配置文件的声明、参数和选项 211
9.3.3 配置示例 212
9.3.4 建立客户租约文件 213
9.4 配置DHCP客户端 214
9.4.1 配置Linux的DHCP客户端 214
9.4.2 配置Windows的DHCP客户端 216
9.5 本章小结 217
9.6 本章习题 218
第10章 DNS服务器 219
10.1 DNS简介 219
10.1.1 域名空间 219
10.1.2 DNS服务器类型 221
10.1.3 DNS解析的过程 222
10.2 安装DNS服务器 223
10.2.1 安装DNS服务器程序 223
10.2.2 启动和关闭DNS服务器程序 225
10.3 DNS的配置选项 226
10.3.1 了解配置文件 226
10.3.2 主配置文件named.conf 227
10.3.3 区文件和资源记录 228
10.3.4 了解记录类型 229
10.4 DNS服务器配置实例 231
10.4.1 DNS服务的测试 231
10.4.2 主DNS服务器 233
10.4.3 辅助DNS服务器 237
10.4.4 简单DNS负载均衡 239
10.4.5 DNS转发 241
10.5 本章小结 242
10.6 本章习题 242
第11章 时间服务器 243
11.1 时间协议NTP简介 243
11.1.1 NTP的工作过程 243
11.1.2 NTP的工作模式 244
11.1.3 选择NTP服务器 244
11.2 安装和配置NTP服务器 244
11.2.1 安装NTP程序 245
11.2.2 启动和停止NTP服务器 245
11.3 NTP服务器的配置 246
11.3.1 了解配置文件 246
11.3.2 常用配置选项 246
11.3.3 ntp.conf配置实例 247
11.3.4 监控NTP服务器 248
11.4 NTP客户端的使用方法 249
11.4.1 在Linux中进行时间同步 249
11.4.2 在Windows中进行时间同步 250
11.5 本章小结 252
11.6 本章习题 252
第3篇 高级网络应用篇
第12章 MySQL操作入门 254
12.1 MySQL简介 254
12.2 安装MySQL 255
12.2.1 基于RPM包的MySQL安装 255
12.2.2 安装源代码MySQL 258
12.3 启动MySQL 261
12.3.1 设置用户和权限 261
12.3.2 启动和停止MySQL 262
12.4 MySQL基础操作 263
12.4.1 设置数据库管理员密码 263
12.4.2 连接MySQL服务器 264
12.4.3 新增账户 265
12.4.4 操作数据库 267
12.4.5 操作表 269
12.4.6 操作记录 272
12.4.7 MySQL数据导入和导出 274
12.5 SQL语言基础 276
12.5.1 了解SQL语言 277
12.5.2 SQL的数据类型 277
12.5.3 数据库和表的定义 279
12.5.4 数据查询功能 281
12.5.5 数据操纵语句 283
12.6 本章小结 284
12.7 本章习题 284
第13章 目录服务器 286
13.1 了解LDAP协议 286
13.1.1 LDAP协议 286
13.1.2 LDAP的基本模型 287
13.1.3 LDAP的功能 288
13.1.4 LDAP协议的特点 288
13.2 安装OpenLDAP 288
13.2.1 安装OpenLDAP服务器程序 289
13.2.2 测试安装正确性 290
13.3 配置OpenLDAP 291
13.3.1 slapd.conf 292
13.3.2 了解schema 293
13.4 管理OpenLDAP 294
13.4.1 向目录数据库中添加数据 294
13.4.2 查询 298
13.4.3 修改条目 299
13.4.4 删除条目 302
13.4.5 数据导出 302
13.5 OpenLDAP在用户认证的应用 304
13.5.1 用户认证用到的objectClass 304
13.5.2 使用迁移工具 304
13.5.3 设置客户端登录 308
13.6 本章小结 308
13.7 本章习题 309
第14章 WWW服务器 312
14.1 HTTP协议介绍 312
14.1.1 HTTP协议简介 312
14.1.2 HTTP工作方式 313
14.2 安装Apache 313
14.2.1 Apache服务器简介 313
14.2.2 安装Apache服务器程序 314
14.2.3 启动和停止Apache服务器 315
14.2.4 测试WWW服务 315
14.3 配置Apache 317
14.3.1 了解配置文件 317
14.3.2 了解Apache的模块 318
14.3.3 常用配置指令 318
14.4 虚拟主机 320
14.4.1 基于主机名的虚拟主机 321
14.4.2 基于IP地址的虚拟主机 323
14.5 文件系统映射 324
14.5.1 基本文件映射 325
14.5.2 使用别名映射 325
14.5.3 URL重定向 326
14.6 本章小结 326
14.7 本章习题 326
第15章 邮件服务器 328
15.1 了解电子邮件系统 328
15.1.1 邮件的代理制度 328
15.1.2 了解邮件相关协议 329
15.2 安装邮件服务器 330
15.2.1 使用到的软件包 330
15.2.2 安装postfix 331
15.2.3 安装Courier-Authlib 336
15.2.4 安装Maildrop 337
15.2.5 安装ExtMail和ExtMan 338
15.2.6 安装Courier-IMAP 339
15.3 配置邮件服务器 340
15.3.1 配置域名系统 340
15.3.2 配置postfix 341
15.3.3 初始化数据库 344
15.3.4 配置WWW服务器 347
15.3.5 配置Courier-Authlib 348
15.3.6 配置Cyrus-SASL认证 349
15.4 测试邮件服务器 349
15.4.1 启动各软件包 349
15.4.2 命令方式下测试邮件收发 351
15.4.3 测试ExtMan 353
15.4.4 测试ExtMail 354
15.4.5 配置SMTP/POP邮件客户端 356
15.5 本章小结 357
15.6 本章习题 358
第16章 FTP服务器 359
16.1 FTP基础 359
16.1.1 FTP工作原理 359
16.1.2 FTP协议 360
16.1.3 FTP传输文件方式 361
16.1.4 使用FTP 362
16.1.5 vsftp介绍 365
16.2 安装vsftpd服务器 366
16.2.1 使用RPM包安装 366
16.2.2 使用源码安装 367
16.2.3 卸载vsftpd 370
16.3 配置vsftpd工作环境 370
16.3.1 配置用户和目录 370
16.3.2 启动vsftpd 371
16.3.3 检查是否启动vsftpd 373
16.4 vsftpd常用配置 374
16.4.1 匿名用户配置 374
16.4.2 本地用户配置 378
16.4.3 网络和连接参数配置 381
16.4.4 日志功能配置 382
16.4.5 其他常用选项设置 383
16.5 vsftpd高级配置 384
16.5.1 配置虚拟用户使用vsftpd 384
16.5.2 配置虚拟FTP服务器 388
16.6 本章小结 390
16.7 本章习题 390
第17章 Samba服务器 391
17.1 了解Samba 391
17.1.1 SMB协议 391
17.1.2 Samba及其功能 391
17.2 安装Samba服务器 392
17.2.1 安装Samba 392
17.2.2 启动Samba 393
17.3 配置Samba 394
17.3.1 全局选项 395
17.3.2 共享选项 396
17.3.3 特殊设置选项 397
17.3.4 添加Samba用户 397
17.4 Samba应用实例 398
17.4.1 匿名Samba服务器 399
17.4.2 需登录Samba服务器 402
17.5 使用SWAT管理Samba服务器 406
17.5.1 配置SWAT服务 406
17.5.2 配置Samba服务器 407
17.6 访问Windows系统 408
17.6.1 挂载到Linux文件系统 408
17.6.2 使用smbclient软件 409
17.7 本章小结 412
17.8 本章习题 412
第18章 CUPS打印服务器 413
18.1 了解Linux的打印系统 413
18.2 安装和配置CUPS服务器 414
18.2.1 安装和启动CUPS 414
18.2.2 配置CUPS打印系统 415
18.3 共享打印机 420
18.3.1 Windows客户端 420
18.3.2 Linux客户端 424
18.4 本章小结 424
18.5 本章习题 424
第19章 新闻服务器 425
19.1 了解新闻组 425
19.1.1 新闻组的概念 425
19.1.2 新闻组的分类 426
19.2 安装inn 426
19.2.1 使用inn前的准备 426
19.2.2 安装inn软件包 427
19.3 配置inn 429
19.3.1 主配置文件inn.conf 429
19.3.2 存储方式配置文件storage.conf 430
19.3.3 过期设置文件expire.ctl 431
19.3.4 权限配置文件readers.conf 432
19.3.5 初始设置 433
19.4 访问新闻服务器 435
19.5 管理新闻组 437
19.5.1 添加新闻组 438
19.5.2 删除帖子 439
19.5.3 删除新闻组 441
19.6 本章小结 442
19.7 本章习题 442
第20章 流媒体服务器 443
20.1 流媒体简介 443
20.1.1 了解流式传输 443
20.1.2 常见的流媒体系统 444
20.2 安装Helix Server 444
20.2.1 获取软件 444
20.2.2 安装软件 446
20.2.3 启动和停止Helix Server 452
20.3 管理Helix Server 454
20.3.1 打开Web管理界面 454
20.3.2 设置服务器 456
20.3.3 测试流媒体服务器 459
20.4 本章小结 460
20.5 本章习题 461
第4篇 Linux网站开发环境
第21章 PHP的安装 464
21.1 PHP简介 464
21.1.1 PHP的发展 464
21.1.2 PHP的特点 464
21.2 安装PHP软件包 465
21.2.1 使用添加/删除软件安装 465
21.2.2 使用RPM安装 467
21.2.3 使用源代码安装 467
21.3 配置PHP 469
21.3.1 PHP配置文件php.ini 469
21.3.2 修改Apache配置文件 470
21.4 测试PHP 471
21.4.1 创建测试PHP文件 471
21.4.2 打开测试PHP文件 472
21.5 本章小结 473
21.6 本章习题 474
第22章 PHP基础 475
22.1 PHP语法基础 475
22.1.1 语法格式 475
22.1.2 变量 476
22.1.3 字符串 477
22.1.4 运算符 478
22.1.5 数组 480
22.2 PHP的流程控制 481
22.2.1 分支语句 481
22.2.2 循环语句 483
22.3 PHP的函数 486
22.3.1 字符串函数 486
22.3.2 数值函数 488
22.3.3 日期和时间函数 490
22.3.4 数组函数 492
22.3.5 自定义函数 493
22.4 PHP处理表单 494
22.4.1 表单提交方式 494
22.4.2 PHP接收表单数据的方式 495
22.5 PHP操作MySQL数据库 496
22.5.1 连接和选择数据库 496
22.5.2 操作数据库中的数据 497
22.6 本章小结 498
第23章 PHP实例--简易留言本 499
23.1 系统设计 499
23.1.1 功能设计 499
23.1.2 数据库设计 500
23.1.3 Web环境配置 501
23.2 代码设计 501
23.2.1 数据库连接代码 501
23.2.2 设计主页(查看留言) 502
23.2.3发表留言 503
23.2.4 修改留言 506
23.2.5 删除留言 509
23.3 本章小结 510