开发者社区 问答 正文

使用PHP,Composer,NPM通过WSL设置的LEMP网络问题

希望大家都好

我已经在Ubuntu 18.04 WSL上设置了LEMP环境。我将PHP7.1-FPM,Composer和NPM用于从Web服务器运行的应用程序。

我已经设置了虚拟主机文件,可以浏览到网页并打开应用程序,并通过localhost:80连接到数据库。但是我的问题是,感觉LEMP设置几乎超时了。在应用程序上,有一个60秒的计时器,在该计时器上它会自动刷新并从MySQL数据库中提取更新的信息。如果按内置按钮刷新它,似乎工作正常,但是在尝试执行自动刷新的那一刻,它会抛出一条错误消息:

net :: ERR_INCOMPLETE_CHUNKED_ENCODING未捕获(已承诺)错误:e.explor的网络错误在XMLHttpRequest.f.onerror

我确实尝试添加代理缓冲区:

             proxy_buffer_size 1024k;

我感觉好像Windows 10在发挥作用。据我所知,端口80在PID4 HTTP服务的Windows 10上正在使用,该服务由打印后台处理程序使用,但是当我将其设置为其他端口时,它甚至无法连接(1111)。

我只是从这个开始。我在故障排除方面有(相对于大多数人来说是基本的)知识,但是WSL和LEMP对我来说是一个新领域,因此,任何帮助将不胜感激。

提前谢谢了。

展开
收起
社区秘书 2019-12-10 10:28:43 847 分享 版权
阿里云 AI 助理回答

遇到您描述的问题,可能涉及多个方面,包括网络配置、代理设置、资源限制以及WSL与Windows系统的交互问题。以下是一些可能的解决方案和排查步骤:

  1. 检查Nginx配置: 确保您的Nginx配置正确设置了代理缓冲区和其他与性能相关的参数。您已经尝试了增加proxy_buffer_size,但可能还需要考虑其他几个参数来优化长连接和大响应的处理:

    proxy_buffers 8 16k;
    proxy_buffering on;
    proxy_max_temp_file_size 0;
    proxy_read_timeout 120s;
    

    这里增加了缓冲区的数量和大小,并延长了读取超时时间。

  2. 资源限制: WSL可能会受到资源限制,尤其是CPU和内存。检查WSL是否分配到了足够的资源。可以通过Windows的“适用于Linux的Windows子系统”设置调整这些值。

  3. 端口冲突: 虽然您提到端口80在Windows上被PID4占用,但如果您能通过localhost:80访问应用,说明Nginx成功监听了这个端口。如果更改端口后无法连接,确保Nginx配置文件中监听的端口已相应更新,并且防火墙没有阻止新的端口。

  4. Windows与WSL通信: 确认Windows主机到WSL中的Nginx服务器的通信没有问题。有时,WSL2的网络栈可能需要特别注意。可以尝试使用WSL的IP地址而不是localhost进行访问,以排除任何DNS或localhost解析问题。

  5. PHP-FPM和Nginx的超时设置: 在PHP-FPM的pool配置文件(通常是 /etc/php/7.1/fpm/pool.d/www.conf)中,检查并适当增加request_terminate_timeoutphp_admin_value[max_execution_time] 的值,以避免因执行时间过长而导致的中断。

  6. 日志分析: 查看Nginx、PHP-FPM以及系统的错误日志(如 /var/log/nginx/error.log/var/log/php7.1-fpm.log),这些日志通常会提供关于错误的具体信息。

  7. 资源监控: 使用tophtop命令监控WSL中的资源使用情况,查看是否有进程消耗过多资源导致响应缓慢或超时。

  8. 重启服务和WSL: 有时候,简单地重启Nginx、PHP-FPM服务甚至是整个WSL实例,可以解决一些临时性的问题。

如果以上步骤都不能解决问题,可能需要更详细的日志信息或者进一步的诊断来确定具体原因。希望这些建议对您有所帮助!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答