Laravel php artisan 服务于模仿 HTTPS

Posted

技术标签:

【中文标题】Laravel php artisan 服务于模仿 HTTPS【英文标题】:Laravel php artisan serve to mimic HTTPS 【发布时间】:2015-01-04 22:58:39 【问题描述】:

我一直在四处寻找,看看是否有一种方法可以模拟 SSL 用于本地开发,使用 Laravel 的工匠来服务 HTTPS,但没有运气。

这可能吗?如果可以,怎么做?

我知道这是一个非常笼统的问题,但我在搜索中没有看到任何相关内容。

【问题讨论】:

如果你是 Mac 用户 valet 可以帮助你 laravel.com/docs/5.6/valet#securing-sites 【参考方案1】:

Laravel 使用内置的 php5.4 开发服务器 php -S (http://php.net/manual/en/features.commandline.webserver.php) 作为 artisan serve 命令(参见 Illuminate\Foundation\Console\ServeCommand)。这仅支持纯 HTTP,所以不,这是不可能的。您最好的选择是使用设置为使用 SSL/TLS 的 Vagrant 框。

【讨论】:

vagrant 方法对于开发功能来说可能过于昂贵【参考方案2】:

您可以为此使用ngrok

php artisan serve
cd <path-to-ngrok>
./ngrok http localhost:8000

https://ngrok.com/

【讨论】:

这没有回答问题。它促进了从本地网络外部通过 ngrok 连接到本地运行的 Web 服务器,但仅限于 HTTP,而不是 HTTPS。 @MatthewSetter 这确实回答了这个问题。当您调用./ngrok http [PORT] 时,它将为http 版本创建一个https 代理。您可以在终端日志中看到类似的内容:d16f-2402-800-631d-928e-dc2b-9136-ad8a-bd9f.ngrok.io -> localhost:80 转到带有 https 的链接,并且应该应用安全逻辑 公平点,@PhạmHuyPhát。很高兴承认我错了:ngrok.com/docs#tls。也就是说,如果 ngrok 安装在用户路径中,则不需要第二行。【参考方案3】:

如果您使用的是 xampp,那么您可以setup HTTPS locally with xampp(this post 也可用于设置 HTTPS)然后您可以:

    将您的项目移动到htdocs 文件夹并使用https://localhost/projectFolder/public/ 访问它

    或者只是在httpd-vhosts.conf 中为这个项目创建一个特殊的VirtualHost(总是指向那个public 文件夹,这是项目运行的地方)然后在这个例子中用https://localhost/ 访问它(你当然,如果您愿意,可以在子域上运行它)

    <VirtualHost *:80>
        ServerName localhost
        DocumentRoot "c:\pathToYourProject\projectFolder\public"
        <Directory "c:\pathToYourProject\projectFolder\public">
            Options All
            AllowOverride All
        </Directory>
    </VirtualHost>
    
    # this should ensure https (this is mentioned in the *** post, that I linked as useful
    <VirtualHost *:443>
        ServerName localhost
        DocumentRoot "c:\pathToYourProject\projectFolder\public"
        SSLEngine on
        SSLCertificateFile "conf\ssl.crt\server.crt"
        SSLCertificateKeyFile "conf\ssl.key\server.key"
        <Directory "c:\pathToYourProject\projectFolder\public">
            Options All
            AllowOverride All
        </Directory>
    </VirtualHost>
    

理论上,当你使用这种方法时,你甚至不需要php artisan serve(我不完全确定它在这种情况下是否有任何用途)。

【讨论】:

关于工匠服务的问题很明确

以上是关于Laravel php artisan 服务于模仿 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Php Artisan 服务错误

laravel框架php artisan vendor:publish的作用

如何手动使用 composer, artisan ...(Laravel) php 命令

laravel中一些非常常用的php artisan命令

laravel 5.4 php artisan serve 无效请求(意外的 EOF)

如何更改 Laravel Artisan CLI PHP 版本?