CentOS/开放一般用户的网页发布权限

来自站长百科
跳转至: 导航、​ 搜索

CentOS | CentOS安装 | CentOS使用手册

当我们想发布网页的时候,通常找一些免费空间,将我们的网页等等放在那个免费空间上。通常,我们申请到的免费空间的访问方式通常是通过“http: //www.sample.com/~user”方式的。

其中“user”通常为申请时提交的用户名。实质上,在Linux下,Apache服务器拥有让 一般用户发布网页的功能。我们要做的也只是更改Apache配置文件httpd.conf中的一些设置而已。

对于一般用户来说,在用户目录中建立相应的子目录,将这个子目录作为对外开放的Web根目录,并设置相应目录的相应属性,即可达到与服务器单独发布(把网页放在/var/www/html下)达到同样的效果。而且,本条目配置完成的服务器,也完全可以为别人提供网页存放、发布等等的服务。

修改Apache的配置文件[ ]

首先来修改Apache的配置文件,使Apache支持通过一般用户目录发布网页的功能。

[root@sample ~]# vi /etc/httpd/conf/httpd.conf  ← 用vi打开SSH的配置文件

UserDir disable ← 找到这一行,在行首增加“#”
 ↓
#UserDir disable ← 修改后变为此状态

#UserDir public_html ← 找到这一行,去掉行首的“#”

UserDir public_html ← 修改后变为次状态

找到下面水平线之间的部分行,将每行行首的“#”去掉,并在一些细节选项上按提示做修改
-------------------------------------------------------------------------------
#<Directory /home/*/public_html>
#   AllowOverride FileInfo AuthConfig Limit  ← 找到此行,将相应选项删除后,赋予All选项
       ↓
   AllowOverride All   ← 变为此状态,允许使用.htaccess
#   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec  ← 找到此行,将相应选项删除
          ↓
   Options IncludesNoExec ExecCGI FollowSymLinks   ← 变为此状态,允许执行CGI及SSI
#  <Limit GET POST OPTIONS>
#    Order allow,deny
#    Allow from all
#  </Limit>
#  <LimitExcept GET POST OPTIONS>
#    Order deny,allow
#    Deny from all
#  </LimitExcept>
#</Directory>
-------------------------------------------------------------------------------

↓ 以上水平线之间的部分修改后,变为如下状态,尤其注意不要忘记将没行行首的“#”去掉!请核对。

-------------------------------------------------------------------------------
<Directory /home/*/public_html>
   AllowOverride All
   Options IncludesNoExec ExecCGI FollowSymLinks
  <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>
-------------------------------------------------------------------------------

重新启动HTTP服务[ ]

重新启动HTTP服务,使以上的设置生效。

[root@sample ~]# /etc/rc.d/init.d/httpd restart   ← 重新启动HTTP服务

一般用户的Web目录及相应属性的设置[ ]

一般用户对外开放Web,需要建立一般用户专用的Web目录,这里根据httpd.conf设置文件中的设置,需要将用户Web目录命名为“public_html”,并建立在一般用户的根目录下。一般用户的根目录属性也要设置为711。

在这里以centospub为例,假设系统中,欲开放名为centospub的用户对外开放Web的权限,其设置过程如下。

[root@sample ~]# chmod 711 /home/centospub/  ← 将欲开放Web的用户目录属性设置为711

[root@sample ~]# su - centospub  ← 登录为欲开放Web的一般用户

[root@sample ~]# cd   ← 到用户根目录

[centospub@sample ~]$ mkdir public_html  ← 在用户根目录下建立Web目录,名为“public_html”

[centospub@sample ~]$ chmod 755 public_html   ← 将用Web目录的属性设置为755

然后,让每建立新用户的时候,用户目录下都能自动建立Web开放用的public_html目录,使得每个用户都有开放Web的机会。

[centospub@sample ~]# su -   ← 再次登录为root用户
Password:   ← 在这里输入密码

[root@sample ~]# mkdir /etc/skel/public_html  ← 建立相应目录,从而使得public_html自动建立

[root@sample ~]# exit   ← 退出root登录,返回一般用户(这里以返回centospub用户登录为例)

对用户Web支持进行全面测试[ ]

[1] 对HTML格式网页正确显示的测试

[centospub@sample ~]# vi /home/centospub/public_html/index.html  ← 在用户Web目录下建立测试页,如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Hello,World</title>
<body>
Hello,World!
</body>
</html>

然后在浏览器中输入“http://服务器IP地址/~相应用户名”或者“http://你的域名/~相应用户名”,如果出现“Hello,World!”,并且浏览器读取编码为简体中文,就OK。

注:用户名前面不要忘了加上“ ~ ”符号。

[centospub@sample ~]# rm -f /var/www/html/index.html ← 删除测试页

[2] 对CGI的支持进行测试

[centospub@sample ~]# vi /home/centospub/public_html/test.cgi  ← 在用户Web目录下建立测试页,如下:

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<html><body>"; 
print "Hello,World!CGI is working!<br>";
print "</body></html>";

[centospub@sample ~]# chmod 755 /home/centospub/public_html/test.cgi  ← 更改CGI测试文件的

然后在浏览器中输入http://服务器IP地址/~相应用户名/test.cgi”或者“http: //你的域名/~相应用户名/test.cgi”,如果正确显示“Hello,World!CGI is working!”,说明用户Web目录对于CGI的支持没有问题。

[3] 对PHP的支持进行测试

[centospub@sample ~]# vi /home/centospub/public_html/test.php  ← 建立PHP测试文件,内容如下:

<?php
phpinfo();
?>

然后在浏览器中输入“http://服务器IP地址/~相应用户名/test.php”或者“http://你的域名/~相应用户名/test.php”后,正确的显示出了服务器上PHP的详细信息,说明用户Web目录对PHP可以正确的支持。

[4] 对SSI的支持进行测试

[centospub@sample ~]# vi /home/centospub/public_html/test.shtml  ← 在用户Web目录下建立SSI测试页,如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Hello,World!</title>
<body>
TEST SSI
<!--#config timefmt="%Y/%m/%d %H:%M:%S" -->
<!--#echo var="DATE_LOCAL" -->
</body>
</html>

然后在浏览器中输入“http://服务器IP地址/~相应用户名/test.shtml”或者“http://你的域名/~相应用户名/test.shtml”,如果正确显示当时的日期和时间,说明用户Web目录对于SSI的支持没有问题。

[5] 对.htaccess的支持进行测试

[centospub@sample ~]# vi /home/centospub/public_html/index.shtml  ← 建立.htaccess测试用的页,内容如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Hello,World!</title>
<body>
The name of the file is <!--#echo var="DOCUMENT_NAME" -->
</body>
</html>

然后在浏览器中输入“http://服务器IP地址/~相应用户名/”或者“http://你的域名/~相应用户名/”,如果显示“Forbidden”,说明.htaccess正常。

然后在用户的Web目录下建立一个.htaccess文件,并定义相应规则,如下:

[centospub@sample html]# vi /home/centospub/public_html/.htaccess  ← 建立.htaccess文件,内容如下:

DirectoryIndex index.shtml

这时,再次在浏览器中输入“http://服务器IP地址/~相应用户名/”或者“http://你 的域名/~相应用户名/”,如果正确显示“ The name of the file is index.shtml”,说明.htaccess中的规则生效状态。

[6] 删除测试用的遗留文件

[centospub@sample ~]# rm -f /home/centospub/public_html/* /home/centospub/public_html/.htaccess  
← 删除测试用过的遗留文件 

[centospub@sample ~]# exit  ← 退出用户登录(回到root登录的状态)

参考来源[ ]

http://www.centospub.com/make/userdirectory.html

CentOS使用手册导航

CentOS安装

CentOS安装 | 系统安装后的初始环境设置 | 服务器方式安装CentOS 5

CentOS使用手册

使用RPM管理包 | 使用YUM工具更新系统 | 使用rsync服务 | 使用rsync同步 | 使用tar备份 | 使用tar恢复文件 | Samba 服务器的构建 | 用SWAT让Samba服务器的管理温和化 | SMTP服务器的构建 | POP/IMAP服务器的构建 | 病毒查杀系统的构建 | 入侵监测系统的构建 | 用OpenSSH构建SSH服务器 | 用SSH客户端软件登录到服务器 | 让服务器支持安全HTTP协议 | 开放一般用户的网页发布权限 | 虚拟主机的构建 | Servlet/JSP服务器的构建 | 基于日志的站点统计系统的构建 | 构建MySQL数据库服务器 | 用phpMyAdmin让MySQL数据库管理温和化 | 数据库的自动备份与恢复 | 用ProFTPD构建FTP服务器 | 用FTP客户端软件连接到服务器