在C中制作支持PHP的准系统,支持PHP的Web服务器?

在C中制作支持PHP的准系统,支持PHP的Web服务器?,第1张

概述我想在C中创建支持 PHP的可能性最轻的HTTP服务器,如果它会产生巨大的差异,可能会使用FastCGI. 我不确定如何实现PHP支持.它是否只是通过.php文件的路径调用PHP.exe并读取输出? PHP中的header()之类的东西怎么样?那些服务器如何处理? 另一个问题是,为每个请求使用单独的线程是否理想?我不指望负载很重,但我对这个设计方面并不是100%肯定… 我对C和C还很陌生,这是一次 我想在C中创建支持 PHP的可能性最轻的http服务器,如果它会产生巨大的差异,可能会使用FastCGI.

我不确定如何实现PHP支持.它是否只是通过.PHP文件的路径调用PHP.exe并读取输出? PHP中的header()之类的东西怎么样?那些服务器如何处理?

另一个问题是,为每个请求使用单独的线程是否理想?我不指望负载很重,但我对这个设计方面并不是100%肯定…

我对C和C还很陌生,这是一次学习经历.

解决方法 首先让我说如果目标是为PHP页面提供服务的轻量级http服务器,那么这已经完成了.看看 nginx.

至于学习经历,你选择的东西实际上相当艰难.

多线程在最好的时候很难.在C/C++(真的有手动内存分配的任何东西),这是一个数量级更难.

除此之外还有网络通信.有一些怪癖需要处理,不同版本的http(现在大部分都是非问题),各种http标头要处理等等.

解决此问题的最直观的解决方案是拥有一个侦听端口的进程.当它收到请求时,它会生成一个进程,如果需要,它可以执行到PHP进程.

然而,这不会扩展.第一个(显而易见的)优化是使用线程而不是进程和某种形式的线程间通信.虽然这有所帮助,但它仍然只能扩展到目前为止.

超越它,你正在寻找异常套接字处理,这是相当低的水平.

然而,所有这些都是相当大的项目.

您是否有任何特殊原因在C/C++中这样做?或者您正在学习其中一种或两种语言的任何特殊原因?这些语言肯定有它们的位置,但它们越来越成为小众语言.托管(垃圾收集)语言/平台几乎完全接管. Joel认为垃圾收集是关于过去20年中编程中唯一的巨大生产力增长,我倾向于同意.

总结

以上是内存溢出为你收集整理的在C中制作支持PHP的准系统,支持PHP的Web服务器?全部内容,希望文章能够帮你解决在C中制作支持PHP的准系统,支持PHP的Web服务器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存