如何在主目录中创建网页并使Web服务器在Web浏览器中为其提供服务?


9

我最近在Debian Squeeze中安装了Apache Web浏览器(使用命令tasksel并选择[ ] Web server)。现在,我可以通过它启动它sudo /etc/init.d/apache2 start,然后进入浏览器并键入,http://localhost然后显示“ It works! ”页面,表明我已经成功安装并启动了Web服务器。

现在,我知道“ 它起作用了! ”页面的HTML文件已经存在,/var/www并且让我相信如果我确实创建新页面,则需要将它们填充到该目录中。创建页面很容易,但是这样做时,sudo每次我创建/编辑目录下的文件时,都需要发出命令/var/www

我想知道如何在我的HOME中创建目录,例如~/html/test/index.html,当我http://localhost/html/test在浏览器地址中输入地址时如何显示该页面?

Answers:


6

正如Ulrich所说,您可以通过启用userdir模块来做到这一点。

在Debian上,这可以通过使用a2enmod实用程序来完成,该实用程序可以启用或禁用Apache模块。请参阅man a2enmod

在这种情况下,您只需要运行

sudo a2enmod userdir

然后重新启动Apache服务器以使更改生效。请注意,userdir模块位于基本的Apache中,因此您无需安装其他任何东西。供参考,userdir配置位于中/etc/apache2/mods-available/userdir.conf

所有a2enmod在这里做的是创建从一个符号链接/etc/apache2/mods-enabled目录中的文件/etc/apache2/mods-available/{userdir.conf/userdir.load}。您也可以手动执行此操作。即

faheem@orwell:/etc/apache2/mods-enabled$ ls -la userdir.*
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 Feb  6 03:11 userdir.load -> ../mods-available/userdir.load

然后将您要提供的任何Web内容放在下~/public_html,然后从中即可访问http://servername/~username


1
尽管Ulrich的答案与此大致相同,但我将其打勾作为答案,因为它更详细。
埃里克(Eric)

6

您可能正在寻找mod_userdir:“此模块允许使用http://example.com/~user/语法访问特定于用户的目录。”

不要害怕摆弄配置文件,只需要备份配置文件,并确保您的防火墙可以阻止您的apache进入外界。


1
感谢@Ulrich Schwarz,我认为这是我所需要的。那么,我该如何设置呢?我还不太熟悉Apache(现在才安装),也不知道如何继续您的建议。
埃里克

2

我个人使用过symbolic-links,这取决于项目是否在内部具有链接/var/www//var/www自身是否链接到我的主目录中的一个文件夹(例如:)~/projects/www。这样我就可以摆脱“〜”字符。有时,当我想向其他查看者显示某些内容时(例如:),这对我也很有http://253.153.87.231/page.html用,而他对键盘并不那么熟悉,因此他只是无法从键盘上找到“〜”符号(-有点像寻找标有“ any”的键)

无论如何,Faheem和Ulrich可能已经为您提供了最佳,最推荐的答案(至少在考虑到安全性时)。


这就是我想做的,效果很好吗?您可以提供创建这些链接的语法吗?
Menasheh '17

0

现在,您可以通过更改Web根目录来执行此操作,但是您确实不想这样做,这就是为什么:

如果攻击者在Apache或您的代码中发现漏洞,则他可能能够访问Web根目录。那是你所有东西的所在地...

Web根通常受到保护,并设有阻止攻击者爆发的控件。您的房屋,可能不太安全。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.