基于PHP多进程实现WEB服务器


首先我先简单介绍下手上的项目:基于PHP的WEB服务器开发,我的毕业论文题目
废话放在后面,我先描述下我的问题:
如何用PHP实现多进程并发?

项目架构构思是这样的:
服务器端有一个mySever.php文件,在CLI下直接用php.exe文件执行该文件。该脚本循环监听80端口,发现有HTTP请求立即通过excu函数调用php.exe文件解析浏览器端请求的php文件。
我曾想过用fast-cgi环境运行PHP,但我对这东西不了解,LINUX基础比较菜,短时间内无法实现,可能会浪费大量时间,所以选择了CLI环境。虽然我也想完美一些,但是力所不及。

这里有一个问题:HTTP响应必须要由mySever.php发回浏览器端,分两种情况:请求的文件是非php文件;请求的文件是php文件。
对于这两种情况,第一种存在的问题就是我不知道如何将图片视频等文件发送给浏览器端。第二种存在的问题就是我不知道如何获取子进程的执行结果(被请求的php文件输出的HTML)。

其实我觉得架构本身就是有问题的,如果有人有更好的架构解决方案,希望也能给些参考,提些意见。

目前我已经实现了一个单进程的HTTP服务器,循环处理HTTP请求,发回HTTP响应。但无法发送对PHP文件请求的响应和对图片等文件的响应。

这里总结下我的问题:如何用PHP实现多进程并发,获取子进程执行结果。如果发送图片等文件给浏览器端。

多线程 php

BAKA傲娇受 10 years, 8 months ago

目前我已经实现了一个单进程的HTTP服务器,循环处理HTTP请求,发回HTTP响应。

我很奇怪你都实现到这一步了,发送图片什么的应该没问题了

   
  // test.php
  
<?php
header('Content-Type: image/gif'); // 可写可不写
echo file_get_contents('test.gif');
   
  <!-- test.html -->
  
<img src="test.php"/>

oMasw answered 10 years, 8 months ago

Your Answer