我想在 Ubuntu 中将另一个目录与 Apache 结合使用在我的 Web 服务器中吗?
我是 Ubuntu 的新用户。我想一步一步地了解。请帮帮我。
附言:KUbuntu 14.10,apache2
答案1
引自http://httpd.apache.org/docs/2.2/urlmapping.html
DocumentRoot 之外的文件
经常会出现需要允许 Web 访问文件系统中不严格位于 DocumentRoot 下的部分的情况。Apache 提供了几种不同的方法来实现这一点。在 Unix 系统上,符号链接可以将文件系统的其他部分置于 DocumentRoot 下。出于安全原因,Apache 仅在相关目录的选项设置包含 FollowSymLinks 或 SymLinksIfOwnerMatch 时才会跟踪符号链接。
另外,Alias 指令会将文件系统的任何部分映射到 Web 空间。例如,
别名 /docs /var/web URLhttp://www.example.com/docs/dir/file.html 将从 /var/web/dir/file.html 提供.....
这是什么意思?
sudo gedit /etc/apache2/sites-available/default
它将打开:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
现在添加别名和目录权限,假设添加/pics,我将使用家中的图片目录来为其提供服务。
输出如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Alias /docs /home/user/Pictures
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory /home/user/Pictures>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
现在重新启动 apache 服务
sudo service apache2 restart
现在输入时localhost/pics
将/home/user/Pictures
代替/var/www