启用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的权限必须是可读的)