启用APACHE2,Ubuntu下的USERDIR的功能

希望用户能够以http://X.X.X.X/~username 方式来访问自己的网页,我参考了以下两个链接,做一个总结:

1. http://www.zyxware.com/articles/2008/06/11/installing-and-configuring-apache-php-mysql-and-drupal-on-ubuntu#comment-5479

这篇文章介绍修改apache2.conf和httpd.conf,

1)apache2.conf中加入:

<IfModule mod_userdir.c>

UserDir public_html

UserDir disabled root

<Directory /home/*/public_html>

AllowOverride FileInfo AuthConfig Limit

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

</Directory>

</IfModule>

经过这一步,已经可以用http://X.X.X.X/~username的方式来访问每个用户自己的页面了,当然前提是每个用户的目录下都有一个public.html的目录

2)如果要设置某一个目录作为开发目录,可以在httpd.conf中加入:

<VirtualHost *>

ServerName localhost

DocumentRoot /home/user1/public_html

<Directory /home/user1/public_html/>

AllowOverride None

Order allow,deny

allow from all

</Directory>

</Virtualhost>

然后运行 sudo a2enmod userdir,再 /etc/init.d/apache2 reload. 照做了一遍就成功了。记住,用户的缺省网页目录在~username/public_html/下,也就是生成新用户同时要生成这个目录;老用户就自己mkdir一把,再进入其中放置自己的网页,缺省网页名字为index.html.

(注:这个链接已经根据我的建议作了更改,已经看不到上述配置了。佩服老外的认真态度。)

2. http://heriman.wordpress.com/2008/08/05/enabling-apache-user-home-public_html-directory-in-ubuntu/

这篇文章是后看到的,步骤很简单,就是在/etc/apache2/mods-enabled 下建立两个链接:

sudo ln -s ../mods-available/userdir.load

sudo ln -s ../mods-available/userdir.conf

/etc/init.d/apach2 reload, 就行了。到/etc/apache2/mods-enabled目录下果真看到这两个link files. 我cleared了上次做的改动,按这个又实验了一下,并reload。果然没错,效果一样,而且简单易行。看样子,apache2的配置步骤改进不少。

其实,我们真正要做的工作只有两步:

1.sudo a2enmod userdir

2. /etc/init.d/apach2 reload

简单吧?当然,前提是已经有public_html目录,并有index.html文件啰!

在public_html中创建 index.html然后就网里面写一些字,做下测试么。不过我们似乎忘记给这个文件加浏览的权限了

$chmod 774 index.html这个774么就是1+2+4,1+2+4,4(前两个7就表示用户和组都有读写以及执行权限,后面那个1就代表其他用户可以有读权限,注意为了能够访问到此页面,others的权限必须是可读的)