📄 1297.html
字号:
有者权限执行。这个办法比较简单,但是许多时候,为了安全性和管理上的方便,系统<br>
是不允许用户远程登陆的,因此也就无法使用chmod等等命令。<br>
<br>
suEXEC是解决这个问题的比较好的方法,它允许下面两个功能:(1)对于虚拟主机,<br>
允许每个VirtualHost段落使用自己的User和Group子句;(2)对于http://www.yourdoma<br>
in.com/~someone这样的主页服务,允许每个用户在自己的目录下设置一个cgi目录,处<br>
于这个目录中的cgi程序自动获得对应用户的权限。<br>
<br>
要使用suEXEC功能,通常必须重新编译apache。可以看看我前面提到的那个编译例子<br>
,与suEXEC相关的命令是:<br>
<br>
--enable-suexec <br>
<br>
这个选项设置允许suEXEC功能<br>
<br>
--suexec-caller=nobody <br>
<br>
suexec-caller是调用者的名字,通常就是httpd程序运行时缺省的权限,一般是nobo<br>
dy。<br>
<br>
--suexec-logfile=/var/log/httpd/suexec.log<br>
<br>
suexec的记录文件的名字,以后每个调用都会被记录到/var/log/httpd/suexec.log中<br>
。<br>
<br>
--suexec-userdir=public_html <br>
<br>
对于www.yourdomain.com/~someone这样的调用,缺省的suEXEC目录,例如这样设定之<br>
后,/home/someone/public_html中的文件在调用的时候将自动赋予someone权限。注意<br>
由于我们通常把文档和cgi脚本放在同一目录下,不要忘记设置脚本的执行权限。<br>
<br>
--suexec-uidmin=100<br>
<br>
--suexec-gidmin=100 <br>
<br>
最小的suEXEC使用的uid和gid。通常你可以把它们设置成一个合适的值,使得不会有<br>
哪个程序以root,daemon,adm之类的危险身份执行。<br>
<br>
--suexec-safepath=/usr/bin:/bin:/usr/local/bin<br>
<br>
suEXEC程序可以安全调用的程序的目录,通常设定这个目录是为了调用/usr/bin/per<br>
l之类的cgi解释器。<br>
<br>
--suexec-docroot=/home/ <br>
<br>
suEXEC功能的底层目录,意味着用户不能用suEXEC功能直接执行/home之外的用户cgi<br>
程序。<br>
<br>
重新编译apache,启动后,就可以使用suEXEC了。<br>
<br>
要启用suEXEC功能,如同我们说的,可以直接把cgi放到自己的suexec-userdir下面,<br>
但是对于虚拟主机用户,一般由管理员直接在httpd.conf中加入对应虚拟主机段落的权<br>
限:<br>
<br>
<VirtualHost mail.asnc.edu.cn><br>
<br>
User wanghy<br>
<br>
Group wanghy<br>
<br>
DocumentRoot /home/wanghy/public_html<br>
<br>
ServerName mail.asnc.edu.cn<br>
<br>
ScriptAlias /cgi-bin/ "/home/wanghy/cgi-bin/"<br>
<br>
</VirtualHost><br>
<br>
注意User和Group都要填写才行。<br>
<br>
suEXEC有一个很重要的限制,就是cgi程序的拥有者、cgi程序所在的目录,VirtualH<br>
ost的设定三者必须保证user/group的完全一致,否则suEXEC将拒绝执行。这个功能主要<br>
是为了安全。<br>
<br>
事实上,尽管cgi程序几乎是不可缺少的,但是它的运行必须执行大量的装入操作,特<br>
别是装入perl解释器的过程更加耗费资源,因此通常cgi程序会成为服务器的瓶颈所在。<br>
有一些特殊的方法用来处理这个问题,例如fast_cgi,mod_perl等等,详细的知识请参<br>
考apache的手册。<br>
<br>
6.3.7 高级课题<br>
<br>
除了我们前面讲到的apache设置之外,还有一些Apache参数可以使用,它们对调整Ap<br>
ache的性能很重要,这里只给出比较有意义的一些:<br>
<br>
PidFile <br>
<br>
PidFile指定的文件将记录httpd主守护进程的进程号,我们以前曾经描述过守护进程<br>
的工作方式,显然,主守护进程将控制其他进程的运行,它为其他进程的父进程,对这<br>
个进程发送信号将影响所有的httpd进程。范例:<br>
<br>
pitfile /var/run/httpd.pid<br>
<br>
<br>
ResourceConfig <br>
<br>
AccessConfig <br>
<br>
<br>
这两个参数用于和旧版本Apache兼容。如果定义了这两项,系统还要察看这里设定的<br>
两个文件。通常不需要设置它们。<br>
<br>
Timeout <br>
<br>
Timeout定义客户程序和服务器连接的超时间隔,超过相应秒数后服务器将断开与客户<br>
机的连接。例如<br>
<br>
Timeout 300<br>
<br>
KeepAlive<br>
<br>
KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次<br>
连接中传递多个HTTP请求。范例:<br>
<br>
KeepAlive ON<br>
<br>
<br>
MaxKeepAliveRequests <br>
<br>
MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。0代表无限制<br>
。例如:<br>
<br>
MaxKeepAlive 100<br>
<br>
<br>
KeepAliveTimeout <br>
<br>
同一个连接之间的两次请求之间的最大时间间隔,例如:<br>
<br>
KeepAliveTimeout 15<br>
<br>
MinSpareServers <br>
<br>
MaxSpareServers<br>
<br>
Apache服务器使用了一个特殊技术,就是预先生成多个空余的子进程驻留在系统中,<br>
一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造<br>
成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些子进程<br>
在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。如果子<br>
进程数不够,就forks出一些;如果forks出了太多的子进程,就杀死一些。这两个参数<br>
用来设置空闲子进程数的上下限。例如<br>
<br>
MinSpareServers 5<br>
<br>
MaxSpareServers 10<br>
<br>
StartServers <br>
<br>
httpd启动时启动的子进程个数,这个参数应该设置为前两个值之间的一个数值,小于<br>
MinSpareServers和大于MaxS pareServers都没有意义。例如<br>
<br>
StartServers 8<br>
<br>
MaxClients<br>
<br>
最多启动多少个子进程处理服务。例如<br>
<br>
MaxClients 200<br>
<br>
MaxRequestsPerChild<br>
<br>
每个子进程最多处理多少个请求然后退出。由于许多系统会有内存泄漏或者其他的问<br>
题,这个数值太大可能导致系统不稳定,太小又会造成不必要的forks和kill。通常的缺<br>
省值是30,不过我们建议把它调整的稍大一些,特别由于2.2.14以后的内核已经修复了<br>
内存泄漏的错误。例如<br>
<br>
MaxRequestPerChild 300<br>
<br>
当然如果你对自己的系统有绝对的信心也可以设置成0,代表无限次请求。<br>
<br>
<br>
6.3.8 联机手册<br>
<br>
从我们对Apache的描述中就可以看出Apache是一个极端复杂的产品。要知道,世界上<br>
有将近一半的Web服务器系统在运行Apache,而且有大量的开发者在为Apache做模块开发<br>
。因此,Apache的联机手册采用单独的HTML文件来提供,通常,在安装Apache的时候,<br>
这些文件被安装到了/home/httpd/html/manual目录下,直接在浏览器中打开/home/htt<br>
pd/html/manual/index.html就可以看到这些使用信息了。<br>
<br>
6.4 BBS和MUD<br>
<br>
6.4.1 BBS<br>
<br>
如果你在教育网内,也许你会对BBS比其他任何Internet服务都要熟悉的多。理论上讲<br>
,讨论组和基于页面的讨论区也不错,但是实际上学生通常更喜欢BBS。<br>
<br>
我们讨论的BBS一般都是基于internet和telnet协议的终端BBS,尽管也有用页面或者<br>
拨号构成的BBS,但是通常它们总是不太受人欢迎。<br>
<br>
目前最常用的BBS服务工具是FireBird BBS,现在用的一般都是汉化版本。通常FireB<br>
ird的安装文档写的十分详细,很容易按照说明安装,所以我们也不想再详细地叙述这个<br>
东西了,通常FireBird系列的BBS服务程序的安装过程都是类似的,你可以看随FireBir<br>
d的文档,主要包括下面的几步:<br>
<br>
建立BBS相关账号,包括bbs,bbsadm,bbsuser。由于bbs账号是不需要口令的,所以<br>
通常你可以用手工编辑/etc/passwd文件再pwconv的办法建立这么几个账号。<br>
<br>
展开FireBird BBS的安装包<br>
<br>
编译源代码,基本过程就是我们通常的办法:./configure;make;make install。然<br>
后建立SYSOP账号和guest账号,就可以实验BBS了。如果你需要增加功能或者修改信息,<br>
可以看随安装包来的文档。<br>
<br>
目前的另外一个时髦的倾向是给基于终端的BBS加上从Web访问的功能。比如bbs2www等<br>
。它们可以直接安装在已有的FireBird BBS上。<br>
<br>
如果你要架设一个有许多人上站的BBS,通常可以考虑把bbsd服务进程改成直接由tel<br>
net来执行,或者说用bbsd作为telnet守护进程。做法很简单,直接把inetd.conf里面的<br>
相应部分改掉就可以了。<br>
<br>
6.4.2 文本MUD<br>
<br>
文本的MUD是telnet服务中仅次于BBS的,通常我们最常用的MUD系列是ES2系列,例如<br>
ES II,XKX等等。这个系列的Mud基本的结构是"MUDOS+MUDLIB",就是一个telnet服务程<br>
序加上相应的资源文件。一般这种Mud,架站的基本方法就是找到一个MudOS(用来支持M<br>
ud服务的服务器程序),再下载一个已有的MUDLIB(包括故事,NPC,战斗规则等等,然后<br>
慢慢修改)。<br>
<br>
如果要了解更多的信息,最好是找到一个完整的MUDOS+MUDLIB,然后自己研究,实际<br>
上,对于架设过BBS的用户,架设文本MUD是很简单的事情。真正的问题,在于架站之后<br>
还要经常修正MUDLIB里面的BUG,增加MUDLIB的新代码等等。<br>
<br>
<br>
<br>
</FONT><br>
</TD>
</TR>
<TR>
<TD colSpan=2><FONT
class=middlefont></FONT><BR>
<FONT
class=normalfont>全文结束</FONT> </TD>
</TR>
<TR>
<TD background="images/dot.gif" tppabs="http://www.linuxhero.com/docs/images/dot.gif" colSpan=2
height=10></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></TD>
<TD vAlign=top width="20%"
background="images/line.gif" tppabs="http://www.linuxhero.com/docs/images/line.gif" rowSpan=2>
<DIV align=center>
<table class=tableoutline cellspacing=1 cellpadding=4
width="100%" align=center border=0>
<tr class=firstalt>
<td noWrap background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colspan=2 height=21>
<font class=normalfont><b>所有分类</b></font></td>
</tr>
<tr class=secondalt> <td noWrap width=27%> <font class=normalfont>1:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type1.html" tppabs="http://www.linuxhero.com/docs/type1.html">非技术类</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>2:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type2.html" tppabs="http://www.linuxhero.com/docs/type2.html">基础知识</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>3:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type3.html" tppabs="http://www.linuxhero.com/docs/type3.html">指令大全</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>4:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type4.html" tppabs="http://www.linuxhero.com/docs/type4.html">shell</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>5:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type5.html" tppabs="http://www.linuxhero.com/docs/type5.html">安装启动</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>6:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type6.html" tppabs="http://www.linuxhero.com/docs/type6.html">xwindow</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>7:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type7.html" tppabs="http://www.linuxhero.com/docs/type7.html">kde</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>8:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type8.html" tppabs="http://www.linuxhero.com/docs/type8.html">gnome</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>9:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type9.html" tppabs="http://www.linuxhero.com/docs/type9.html">输入法类</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>10:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type10.html" tppabs="http://www.linuxhero.com/docs/type10.html">美化汉化</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>11:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type11.html" tppabs="http://www.linuxhero.com/docs/type11.html">网络配置</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>12:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type12.html" tppabs="http://www.linuxhero.com/docs/type12.html">存储备份</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>13:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type13.html" tppabs="http://www.linuxhero.com/docs/type13.html">杂项工具</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>14:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type14.html" tppabs="http://www.linuxhero.com/docs/type14.html">编程技术</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>15:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type15.html" tppabs="http://www.linuxhero.com/docs/type15.html">网络安全</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>16:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type16.html" tppabs="http://www.linuxhero.com/docs/type16.html">内核技术</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>17:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type17.html" tppabs="http://www.linuxhero.com/docs/type17.html">速度优化</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>18:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type18.html" tppabs="http://www.linuxhero.com/docs/type18.html">apache</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>19:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type19.html" tppabs="http://www.linuxhero.com/docs/type19.html">email</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>20:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type20.html" tppabs="http://www.linuxhero.com/docs/type20.html">ftp服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>21:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type21.html" tppabs="http://www.linuxhero.com/docs/type21.html">cvs服务</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>22:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type22.html" tppabs="http://www.linuxhero.com/docs/type22.html">代理服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>23:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type23.html" tppabs="http://www.linuxhero.com/docs/type23.html">samba</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>24:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type24.html" tppabs="http://www.linuxhero.com/docs/type24.html">域名服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>25:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type25.html" tppabs="http://www.linuxhero.com/docs/type25.html">网络过滤</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>26:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type26.html" tppabs="http://www.linuxhero.com/docs/type26.html">其他服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>27:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type27.html" tppabs="http://www.linuxhero.com/docs/type27.html">nfs</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>28:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type28.html" tppabs="http://www.linuxhero.com/docs/type28.html">oracle</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>29:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type29.html" tppabs="http://www.linuxhero.com/docs/type29.html">dhcp</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>30:</font> </td><td noWrap wi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -