编程

本地网络测试 Laravel 网站

988 2023-05-01 07:38:00

开发网站时,我们常常会在真实的移动设备上预览查看效果。或者让家人在不使用电脑大动干戈的情况下,帮助预览和测试。本文将介绍一个简单快捷的方法,让你可以使用任何设备在本地网络中查看你的网站。

首先,几个带有解决方案的应用程序

使用 Ngrok 是比较常用的一种方法。Ngrok 很好,很神奇,它是一个 HTTP/HTTPS 隧道,允许任何人预览本地机器上的网站,而无需进行一些更复杂的 Apache/Nginx 配置,也无需试图在平板电脑、手机或任何其他设备上访问你的本地机器。但 Ngrok 也有其局限性,尤其是对免费用户而言。它可能会变得很慢,它的连接/请求数量有限,很容易被大量的 js/css/image/font-include 吃掉。

另一种替代软件是 BeyondCode 的 Expose。它是开源的,用 PHP 编写。免费计划比 Ngrok 慷慨得多,绝对值得推荐。

如果没有这些受限软件呢?

一个“无软件”的替代方案,尤其是如果你只想在同一局域网上的设备上预览你的网站(例如,同一个 Wi-Fi 连接),就是暴露你的网络服务器,并将其绑定到本地网络上机器的 IP。

让我们以一个标准的 Laravel 应用为例。

提供服务的一种方法是使用捆绑的 http 服务器,你可以通过运行以下 Artisan 命令启动该服务器: 

php artisan serve

现在默认情况下,它将绑定到主机 127.0.0.1、端口 8000 上,这就是您在浏览器中访问网站所需的全部内容,只需键入 http://127.0.0.1:8000 .

但你不能通过手机或平板电脑访问它。如果你试着去 http://127.0.0.1:8000 从你的手机,IP 地址会循环回手机本身,它会尝试访问你手机上的 8000 端口,这显然与任何东西都没有绑定,也没有内部服务监听该端口来应答。那么,如何通过手机访问在开发机器上运行的网站呢?

访问在开发机器上运行的网站的方法是首先将其绑定到局域网内代表开发机器的 IP。换句话说,你需要找到路由器分配给你的机器的 IP 地址,并在启动你的框架(例如 Laravel)http 服务器时使用该 IP 作为主机。

第一步 - 查询机器本地 IP(Windows)

通过 cmd 命令 ipconfig -all 查找本地 IP

第二步 - 将 http 服务器绑定到该 IP

既然我们知道了开发机器在局域网上的 IP,让我们启动服务器。正如我们在开头提到的那样,Laravel 通过其内置的 php artisan serve 命令使其变得非常简单。我们可以通过添加 --host= 标志来覆盖要绑定到的主机,如下所示:

php artisan serve --host=192.168.1.29 
# => Laravel development server started: <http://192.168.1.29:8000>

这将启动 Laravel 的 http 服务器,并将其绑定到指定的 IP 地址(你在上一步中找到的)。

注意:当将 IP 绑定到 web 服务器时,你也可以使用 IP 0.0.0.0,它仍然可以在同一网络中访问。但是,为了从另一个设备访问它,你仍然需要知道网络中开发机器的 IP,因此之前的步骤需要弄清楚开发机器的网络 IP 地址。

这样,它将为我们提供一个链接,我们可以使用该链接从本地开发机器和同一网络上的任何设备访问网站!

使用手机或平板电脑,只需将浏览器指向给定的 URL,你可以以极快的速度无限制地访问网站。