如何在 Mac 上设置一个本地 Web 服务器

打印 上一主题 下一主题

主题 510|帖子 510|积分 1530

通常环境下,你可以通过在欣赏器中直接打开或者通过一个 URL 来访问一个文件。
利用欣赏器访问本地文件时,一般地点是 file:// 开头的本地文件地点。
而访问长途文件时,一般地点是 http:// 或者 https:// 开头的地点,表示这个文件通过 http 协议访问的。
2. 直接访问本地文件时存在的问题

在有些环境下,你打开一个本地的 html 文件时,会出现运行错误。
导致这些错误的原因主要有以下两个:
(1) 此中包含了异步请求。 如果你直接打开本地文件运行,一些欣赏器(包罗 Chrome)将不会运行此中的异步请求(请参阅 从服务器获取数据)。 这是由于安全限定而导致的(更多关于 Web 安全的信息,请参阅Website security)。
好比,你直接在欣赏器中打开含有如下内容的文件:
  1. <html>
  2. <head>
  3.     <script>
  4.             var request = new XMLHttpRequest();
  5.                 request.onreadystatechange = function () {
  6.                     console.log(request);
  7.                 }
  8.                 // 发送请求:
  9.                 request.open('GET', './data.json');
  10.                 request.send();
  11.     </script>
  12.     <title>HTML 测试页面</title>
  13. </head>
  14. <body>
  15.     <p>测试页面</p>
  16. </body>
  17. </html>
复制代码

然后,你会在 console 中看到这样的错误:
  1. index.html:12 Failed to load file:///Users/ShannonChen/Desktop/Playground/nodejs_example/data.json: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
复制代码

(2) 实行文件中的代码时需要通过实行一些附加逻辑(如 PHP 或 Python)才气得到结果,而不仅仅是直接访问一个文件。
好比,我登录了京东网站后,查看购物车页面时,需要服务器返回的是包含我的购物车数据的页面,这个时间,就需要服务端在接收到请求后,跟我的用户信息(一般是 cookie)来返回匹配的数据。
方法一、启动 Mac 自带的 Apache 服务器


  • 运行 Apache $ sudo apachectl start
  • 退出 Apache $ sudo apachectl stop
  • 把工程文件夹放到以下位置中 /Library/WebServer/Documents
  • 在欣赏器中访问:在地点栏中输入地点 http://localhost/工程文件夹名称/,回车。
注意: 不再需要利用后一定要记得退出,否则会消耗电脑性能。
Q:如何修改 Apache 的默认端口?
A:首先,找到 Apache 的设置文件,位于 /etc/apache2 下的 httpd.conf。
然后,找到 Listen 80 那一行,修改成你想要的端口即可。
方法二:借助 Mac 系统自带的 Python,利用此中的 SimpleHTTPServer 模块启动服务器


  • 安装 Python,其实 Mac 系统就自带了 Python2.7。
  • 通过 cd <your-working-dir> 进入到你的工作目录下,也就是你要让别人访问的文件所在的目录。
  • 在工作目录下实行下面的下令后,就可以启动服务了:
       
    1. # 如果你的 Python 版本是 3.X
    2. python3 -m http.server
    3. # 如果你的 Python 版本是 2.X
    4. python -m SimpleHTTPServer
    复制代码

  • 默认环境下,上面的操作将会在本地 Web 服务器上的端口 8000 上运行工作目录中的内容。您可以通过在欣赏器中输入 URL http://localhost:8000 并回车,来访问此服务器。你会看到列出的目录的内容,点击就可以查看你想运行的 HTML 文件。
Q:如何修改服务器的默认端口?
A:可以通过运行下面的下令来指定一个端口号:
  1. # 如果你的 Python 版本是 3.X
  2. python -m http.server <your-port>
  3. # 如果你的 Python 版本是 2.X
  4. python -m SimpleHTTPServer <your-port>
复制代码

结论

方法二相比方法一来说,更简单、方便,也更机动,而且还可以随时在终端上看到服务器的状态。
参考



  • How do you set up a local testing server? - Learn web development | MDN(推荐阅读)
  • Mac OS X 启用 Web 服务器
  • Mac自带的本地服务器的利用
  • Mac OS原来自带了apache,基本用法总结

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表