Lus*_*awn 17 windows apache localhost symfony wsl-2
在开发 Symfony Web 应用程序期间从我的本地计算机访问 localhost。
#!/bin/sh
REMOTEIP=`cat /etc/resolv.conf | grep nameserver | sed 's/nameserver\s//'`
sed -i -E "s/client_host=[0-9\.]+/client_host=$REMOTEIP/g" /etc/php/7.4/mods-available/xdebug.ini
service php7.4-fpm start
service apache2 start
service mysql start
Run Code Online (Sandbox Code Playgroud)
symfony serve -d
使用(Symfony 然后告诉我“Web 服务器正在使用 PHP FPM 7.4.23 https://127.0.0.1:8000”)在开发服务器上运行我的 Symfony 项目hostname -I
并用此 IP 替换 localhost(仍在端口 8000 上)。这是使用我的应用程序的充分解决方法,但是我无法通过 MySQL Workbench 与我的数据库交互,而不必设置新连接,因此修复我可以使用 localhost 的位置将非常有帮助!symfony serve -d
在不单独启动 apache 和 PHP 服务的情况下运行 - 有时仍然允许连接到本地主机,但有时不起作用。这种行为很奇怪,因为它有时有效,但有时在执行完全相同的步骤时却不起作用。我不确定还能在哪里寻找答案,而且我似乎无法在网上找到任何存在同样问题的内容。请让我知道是否有任何配置文件等会有帮助。非常感谢你的帮助!:)
Not*_*1ds 27
当它正常工作时,正如您清楚地意识到的,WSL2 的“localhost 转发”功能意味着您可以使用 Windows 主机的“localhost”地址访问 WSL2 内运行的服务。
然而,有时该功能会失效。众所周知,当您执行以下任一操作时,就会发生这种情况:
通常,最佳解决方案是禁用休眠和快速启动。但是,如果您确实需要这些功能,可以通过以下方式重置 WSL localhost 功能:
wsl --shutdown
根据我的经验,本地主机转发将在之后起作用。但是,如果没有,感谢@lwohlhart在评论中提到另一件事是在 WSL2 上禁用 IPv6,因为(我相信)应用程序有可能在 Windows->WSL2 连接时正在侦听 IPv6localhost
正在 IPv6 上尝试连接。
您可以通过在Windows用户配置文件目录中创建或编辑以下内容,根据此 Github 评论禁用 WSL2 上的 IPv6 :.wslconfig
[wsl2]
kernelCommandLine=ipv6.disable=1
Run Code Online (Sandbox Code Playgroud)
wsl --shutdown
完成更改需要重新启动。
如果您发现此方法有效,则可以通过确保在 Windows 端专门使用 IPv4 ( 127.0.0.1
) 或 IPv6 ( ) 地址,或者将服务配置为侦听这两个地址来解决该问题。::1
localhost
归档时间: |
|
查看次数: |
34572 次 |
最近记录: |