【发布时间】:2019-04-11 01:44:36
【问题描述】:
我正在使用 laravel,但我不知道如何自定义默认 url,即“127.0.0.1:8000”或“localhost:8000”到我想要的 url。
我的期望是当我做 php artisan serve
时将 127.0.0.1:8000 更改为 sample.dev我真的需要将我的项目移动到 htdocs 或 www 吗?
请帮忙...
【问题讨论】:
标签: laravel laravel-5 laravel-4
我正在使用 laravel,但我不知道如何自定义默认 url,即“127.0.0.1:8000”或“localhost:8000”到我想要的 url。
我的期望是当我做 php artisan serve
时将 127.0.0.1:8000 更改为 sample.dev我真的需要将我的项目移动到 htdocs 或 www 吗?
请帮忙...
【问题讨论】:
标签: laravel laravel-5 laravel-4
注意:这只是为了回答问题,向下滚动以查看我们将使用 .test 而不是 .dev 的其他方法,因此我们不会收到 SSL 错误。
artisan所在的项目目录。运行以下命令:
php artisan serve --host=some-domain.test --port=anyPort
确保主机存在于您的 etc/hosts 文件中。要向主机文件添加条目,请使用您喜欢的编辑器编辑 /etc/hosts/,并将此行添加到您当前的 /etc/hosts/ 文件中。
127.0.1.1 sample.dev
如果我更改我的 /etc/hosts 文件,它看起来像这样:
127.0.0.1 localhost
127.0.1.1 sample.dev // Added line.
// More custom hosts here.
如果您在端口 80 上运行该命令,则会引发错误。因为您很可能也使用 Apache 服务。要使命令正常工作,您必须:
A:使用sudo service apache2 stop 停止Apache 服务
Ubuntu(可能因发行版而异)。
B:使用不同的端口,因为它是用于开发目的,我
建议您坚持使用8080 或任何其他您不会使用的端口。
现在,在您决定要坚持使用端口8080 之后,上面的命令将更改为以下内容:
php artisan serve --host=sample.dev --port=8080
注意:以上步骤适用于您的情况,如果您运行以上这些命令,它将无法在现代浏览器中运行,并且会抛出 SSL Error。因为从 Chrome 版本 63 开始,您不能在 没有 SSL 证书的情况下使用 .dev 域。有一些方法可以在本地环境中进行设置,但实际上并不是必需的,因为您无论如何都处于开发模式。
但是,有一个专门用于开发目的的域,称为.test,所以请执行上述步骤,但将域更改为.test,上面的命令将如下所示:
php artisan serve --host=sample.test --port=8080
这对于开发目的非常有用,因为您不需要为您创建的每个新项目添加VirtualHost。
【讨论】:
--host 选项实际上改变了服务器将监听的地址,并且与浏览器中的地址没有直接关系。默认是在 localhost (127.0.0.1) 上监听,这意味着它不能从机器外部访问。使用--host=0.0.0.0 将监听本地机器的所有地址。如果您有多个路由到机器的 IP 地址,它可用于指定要监听的地址,例如--host=192.168.2.100.
唯一需要的步骤是向系统的hosts 文件中添加一个条目:
127.0.0.1 sample.test
当您运行 php artisan serve 时,您的网站将从 http://sample.test:80001 可用。
要从 url 中删除 :8000,您需要监听 HTTP 的默认端口2:
php artisan serve --port=80
现在您的网站将在同一台机器上的浏览器中通过http://sample.test 访问。
1我将示例更改为.test,这是一个保留顶级域(TLD)。 .dev 归 Google 所有,在使用 artisan 使用的内置 PHP 服务器进行开发时会导致 SSL 错误,因为 HSTS 已为整个 .dev TLD 启用。
2这只有在你的机器上没有其他应用程序已经使用端口 80 时才有效,例如另一个网络服务器,如 Apache、Nginx、IIS 等。
【讨论】:
php artisan serve 不需要