如何在浏览器中打开文件?

如何在浏览器中打开文件?

当我.html在 Windows 8.1 上的浏览​​器中打开某个文件(例如此文件C:\Users\me\sbox\foo\client\index.html)时(网址为file:///C:/Users/me/sbox/foo/client/index.html:),浏览器会解析该文件,我可以像访问网页一样查看它。无需运行 Web 服务器,因为它只是 html 标记文件。

我想在我的 Ubuntu(实际上是 Amazon Linux)上做同样的事情。我想在浏览器中输入我的 Ubuntu 的 IP 地址并获取/var/www/index.html。我的意思是公共 IP,即:http://123.12.12.12/http://123.12.12.12/index.html并在浏览器中获取页面。

有可能吗?如何实现?我真的需要运行任何 Web 服务器吗?我只想打开一个.html文件.php,不需要解析器。

据我了解,我需要:

  1. 开放:80端口

  2. 设置一些配置,以便所有公共入站 http:80 请求都转到/var/www文件夹。

我说得对吗?该怎么做?

答案1

如果你想要一个快速而肮脏的单行命令,请使用 python SimpleHTTPServer

python -m SimpleHTTPServer

如何将其用于您的案例:

$ cd /var/www
$ python -m SimpleHTTPServer

就是这样!这将为当前目录提供服务。默认端口为 8000,因此您的网站可以从本地计算机/var/www访问http://ip-address:8000http://localhost:8000

要访问未命名的其他文件index.html,请使用其名称http://ip-address:8000/other-name.html,如果没有 index.html,您将看到一个包含文件夹中所有文件的目录列表。

要更改端口,您需要具有 sudo 权限:

$ sudo python -m SimpleHTTPServer 80

此命令将在端口 80 上为您的目录提供服务,如果您已经安装了 apache2,则可以将此端口更改为 81,这样就不会发生端口冲突,您将从访问您的网站http://ip-address:81,请不要忘记在防火墙中允许这些端口,以允许端口 80 使用:

$ sudo ufw allow 80/tcp

没有网络服务器

另一种方法是不使用任何 Web 服务器,只需在服务器上安装您最喜欢的桌面环境和浏览器,然后使用您选择的远程桌面连接到它。然后,您的网站将像以前一样从浏览器中访问file:///var/www/index.html

答案2

是的,您需要一个 Web 服务器。查看您请求的 URL。如果第一部分(即协议)是“file:”,则浏览器将对文件进行本地搜索。如果协议是“http:”,则浏览器将在端口 80 上打开与 URL 的服务器部分的网络连接。

仅当您已成功将某种网络共享安装到 Amazon Linux 服务器上时,您才可能能够在此处使用“file:”协议。否则,即使您只希望传输 html 文件(而不是在 .php 的情况下解析和执行),您也需要在另一端安装 Web 服务器。幸运的是,安装 Apache2 正是这样做的,而且并不困难。

答案3

要从另一台计算机通过浏览器访问您的文件,您将需要一个网络服务器来管理请求。

Apache 网络服务器将会执行此操作。

安装

sudo install apache2

启动服务器

sudo /etc/init.d/apache2 start

停止服务器

sudo /etc/init.d/apache2 stop

当 Apache 服务器运行时,所有这些 URL 都指向同一个文件,请在浏览器中尝试它们。

文件:///var/www/html/index.html

本地主机/index.html

{你的 IP 地址}/index.html

相关内容