我在OSX High Sierra上运行MAMP Pro 4.4,过了一段时间我在使用Laravel 5.2应用程序时遇到了500错误。我打开了活动监视器,发现有40个httpd进程正在运行,其中大多数都有18个线程。我尝试通过命令行杀死它们,停止并启动MAMP,但是当MAMP再次启动时它们都会返回。研究这个问题时我能找到的最接近的是:
Stop a number of httpd processes starting on MacBook Pro running Mac OS X Lion?
有没有其他人遇到此事? (我不确定它是否与httpd进程有关,因为我使用MAMP的其他本地站点会加载正常,但它似乎是我唯一能说出来的可能导致问题的原因。)
答案 0 :(得分:0)
Apache多处理模块(MPM)实现了混合多进程多线程服务器。通过使用线程来处理请求,它能够以比基于进程的服务器更少的系统资源来提供大量请求。
单个控制进程(父进程)负责启动子进程。每个子进程创建一个固定数量的服务器线程和侦听器线程,它监听连接并将它们传递给服务器线程,以便在它们到达时进行处理。
Apache HTTP Server始终尝试维护备用或空闲服务器线程池,这些线程随时准备为传入的请求提供服务。通过这种方式,客户端无需等待创建新线程或进程,然后才能提供请求。
问题很可能出在您尝试提供的页面中,而不是在http服务器中。检查错误日志以查看问题的原因。您应该能够从 / Applications / MAMP / logs / apache_error_log
中找到错误日志