httpd服务器,客户端显示问题。

httpd服务器,客户端显示问题。

我使用redhat linux as4,在/var/www/html目录里面编辑出一个简单的index.html文件,只是为了试验用的,当我启动httpd服务器后,另外一台机器访问这个httpd服务器,可以看见我的简单的index.html文件内容。但是,如果我从网络上下载一个复杂的网页(如:下载一个新浪网页)改名成为index.html拷贝到/var/www/html目录中,另外一台机器访问httpd服务器的时候,就不能看见这个复杂网页,只能看见apache的测试页面。谁能帮我解答一下。另外,我在redhat linux 9中试验,就没有这样的问题。还有一个问题,如何调整httpd服务器的中文显示,让另外一台机器访问httpd服务器的时候,就能直接显示中文,不用再在客户端浏览器中每次都调整字符编码到gb2312。谢谢      
1. 修改index.html的权限:
复制内容到剪贴板
代码:
#chmod 755 /var/www/html/index.html
并将浏览该网页的浏览器里的coockies清除后刷新。
2. 编辑/etc/httpd/httpd.conf
找到# For russian, more than one charset is used (depends on client, mostly):段,在其后加上AddCharset UTF-8       .utf8,类似下面:
复制内容到剪贴板
代码:
...
# For russian, more than one charset is used (depends on client, mostly):
...
AddCharset UTF-8       .utf8
并在修改后重启httpd:
复制内容到剪贴板
代码:
#service httpd restart
      
不是权限的原因。我已经改了,还是不行。我用客户端访问,httpd服务器后。在服务器端bash上显示如下内容。
audit(1213957980.922:0): avc:  denied  { getattr } for  pid=3120 exe=/usr/sbin/httpd path=/var/www/html/index.html dev=dm-2 ino=48970 scontext=root:system_r:httpd_t tcontext=rootbject_r:user_home_t tclass=file
audit(1213957980.922:0): avc:  denied  { getattr } for  pid=3120 exe=/usr/sbin/httpd path=/var/www/html/index.html dev=dm-2 ino=48970 scontext=root:system_r:httpd_t tcontext=rootbject_r:user_home_t tclass=file
audit(1213957986.580:0): avc:  denied  { getattr } for  pid=3125 exe=/usr/sbin/httpd path=/var/www/html/index.html dev=dm-2 ino=48970 scontext=root:system_r:httpd_t tcontext=rootbject_r:user_home_t tclass=file
audit(1213957986.581:0): avc:  denied  { getattr } for  pid=3125 exe=/usr/sbin/httpd path=/var/www/html/index.html dev=dm-2 ino=48970 scontext=root:system_r:httpd_t tcontext=rootbject_r:user_home_t tclass=file      
是SELinux的问题,你可以关掉它:
http://www.haw-haw.org/node/30      
是由于selinux的原因,按照你说的调整以后,可以正常访问apache服务器了。谢谢。

另外,可以解释一下,selinux是做什么的吗,对系统的作用,这样简单的关闭了selinux会对系统有什么影响呢?为什么我编写的简单英文网页在开启selinux的时候,可以被访问。而复杂的中文网页(如我下载的新浪网页,拷贝到/var/www/html下),在开启selinux的时候,就不能被正常访问,而出现apache测试页。再有一个,我上个帖子,贴的bash界面上出现的信息,是什么意思呢,你怎么能判断出是由于selinux系统的问题呢?呵呵,问题巨多。谢谢谢谢谢谢。

不过,还是有最后一个问题,如果我用root帐号,通过ftp可以把index.html上传到/var/www/html下,但是我如何通过普通帐号,做这样的事情呢?我已经试着chmod 777 /var/www/html了,但是普通帐号好像还是不能上传文件到/var/www/html目录上,/var/www/html的属于root:root,和这个有关系吗?再次谢谢谢谢谢谢。呵呵。      
什么是SELinux,可以参考:
http://www.thtbase.com/BBS/viewt ... &extra=page%3D2

由于Linux中引入了SELinux机制,使得Linux服务器的安全级别从一般的C2级别提高到了相当于军事安全的B1级别,这就是使用SELinux的理由。
SELinux是一个较新的机制,值得花费点精力研究,不过可惜bwb精力有限,并没有在它上面花足够的时间,所以希望有兴趣的朋友能对此有所心得,并将所取得的心得在此共享出来。
至于bwb为什么能很快判断出问题是SELinux造成的,完全是一眼看见了如下显示:
复制内容到剪贴板
代码:
...
/index.html dev=dm-2 ino=48970 scontext=root:system_r:httpd_t tcontext=root:object_r:user_home_t tclass=file
而这是典型的SELinux权限表达,因为研究过,能看出来不足为奇。