我目前正在用 C++ 为 Posix 系统编写自己的服务器。在任何人谈论我应该如何真正使用预建服务器之前,请注意我确实将预建服务器用于任何与业务相关的事情。这个项目完全是一种学习体验。
我希望这个系统支持服务器端脚本以及静态托管。当我尝试包含对最重要的服务器端脚本语言的支持时遇到了问题:PHP。
标准 PHP 提供了几个预定义的变量,可以访问有关传入请求的信息。它还提供以特定方式与请求交互的标准HTTP 函数。此外,应该可以通过使用文件名php://input
和php://output
分别引用适当的套接字和权限来对请求和响应主体执行 IO 操作。
我知道我可以自己定义所有这些变量并在包装脚本的顶部实现所有这些函数,然后用于include
在相同的上下文中运行用户的脚本,但这似乎很麻烦。我也不知道如何映射php://input
或映射php://output
到实际请求套接字的文件描述符。
我对 PHP 解释器了解不多。有没有办法向 PHP 解释器提供必要的请求数据(用户代理、INET 地址、方法、URI、版本、标头、套接字文件描述符,也许我忘记了),以便能够访问本机定义和这些变量和函数的实现?还是服务器的作者自己定义和实现这些是标准做法?
最重要的是,如果我必须自己实现这些东西,我该如何映射php://input
并映射php://output
到正确的文件描述符和权限?
谢谢大家。任何帮助表示赞赏。