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使用手册导航 |
---|