如何在我的主目录中创建网页并让 Web 服务器在我的 Web 浏览器中提供这些网页?

如何在我的主目录中创建网页并让 Web 服务器在我的 Web 浏览器中提供这些网页?

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

现在我知道“的 HTML 文件有用!“页面已存在/var/www,我相信如果我创建新页面,我需要将它们放入此目录中。创建页面很容易,但这样做时,sudo我每次创建/时都需要发出命令编辑目录下的文件/var/www

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

答案1

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

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

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

sudo a2enmod userdir

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

这里所做的就是创建一个从目录到文件的a2enmod符号链接。您也可以手动执行此操作。 IE/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

然后将您想要提供的任何网络内容放在下面~/public_html,然后就可以从 访问它了http://servername/~username

答案2

您可能正在寻找mod_用户目录:“该模块允许使用以下命令访问特定于用户的目录http://example.com/~user/句法。”

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

答案3

我个人用过符号链接,具体取决于项目内部有链接/var/www/还是/var/www本身链接到我的主目录中的文件夹之一(例如:~/projects/www)。这样我就可以去掉“~”字符。有时它对我也很有用,当我想向其他观看者展示一些东西(通过类似:)http://253.153.87.231/page.html,而一个人对键盘不太熟悉,所以他无法从键盘上找到“〜”符号(-有点像寻找标有“任何”的钥匙)

无论如何,Faheem 和 Ulrich 可能已经为您提供了最好和最常推荐的答案(至少在安全方面)。

答案4

现在您可以通过更改 Web 根目录来做到这一点,但您确实不想这样做,原因如下:

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

Web 根目录通常受到保护,并具有阻止攻击者爆发的控制措施。你的家可能没有那么安全。

相关内容