编程

本地网络测试 Laravel 网站

504 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命令启动该服务器:A 

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

 

Step 2 - 将 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,您就可以以极快的速度无限制地访问网站。