当我在浏览器中打开.htmlWindows 8.1 上的某个文件(例如这个文件C:\Users\me\sbox\foo\client\index.html)时(网址是file:///C:/Users/me/sbox/foo/client/index.html:),浏览器会解析文件,我可以像访问网页一样查看它。不需要运行 web-server,因为它只是 html 标记文件。
我想在我的 Ubuntu(实际上是 Amazon Linux)上做同样的事情。我想在浏览器中输入我的 Ubuntu 的 IP 地址并获取/var/www/index.html. 我的意思是公共 IP,即:http://123.12.12.12/或http://123.12.12.12/index.html在浏览器中获取页面。
是否可以?如何实现?我真的需要运行任何网络服务器吗?我只想打开一个.html文件,而不是.php或其他什么,不需要解析器。
据我了解,我需要:
打开:80端口
设置一些配置,以便所有公共入站 http:80 请求都应该转到/var/www文件夹。
我对吗?怎么做?
python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)
如何将它用于您的案例:
$ cd /var/www
$ python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)
就是这样!这将为当前目录提供服务/var/www。默认端口为 8000,因此您的网站可以从http://ip-address:8000本地计算机访问或在本地计算机上访问http://localhost:8000
要访问其他未命名的文件index.html,请使用它们的名称http://ip-address:8000/other-name.html,如果没有 index.html,您将看到一个包含文件夹中所有文件的目录列表。
要更改端口,您需要具有 sudo 权限:
$ sudo python -m SimpleHTTPServer 80
Run Code Online (Sandbox Code Playgroud)
此命令将在端口 80 上为您的目录提供服务,如果您已经安装了 apache2,您可以将此端口更改为 81,这样就不会发生端口冲突,您将从 访问您的网站http://ip-address:81,不要忘记允许这些端口在您的防火墙中,允许端口 80 使用:
$ sudo ufw allow 80/tcp
Run Code Online (Sandbox Code Playgroud)
另一种方法是不使用任何网络服务器,只需在服务器上安装您喜欢的桌面环境和浏览器,并使用您选择的远程桌面连接到它。然后您的网站将可以从浏览器中访问,就像您习惯的那样file:///var/www/index.html
是的,您需要一个网络服务器。查看您请求的 URL。如果第一部分 - 协议 - 是“文件:”,那么浏览器将对文件进行本地搜索。如果协议是“http:”,浏览器将在端口 80 上打开一个到 URL 的服务器部分的网络连接。
仅当您设法将某种网络共享挂载到 Amazon Linux 服务器时,您才可以在此处使用“文件:”协议。否则,您需要另一端的 Web 服务器,即使您只想传输 html 文件,而不是在 .php 的情况下解析和执行。幸运的是,安装 Apache2 就是这样做的,而且并不困难。