如何解决如何设置我的服务器以使用 PHP
我想将 PHP 与我自己编写的服务器一起使用。 (不是 Apache 等)我想我必须将 http 请求和一些额外的数据从我的服务器发送到 php,但我不知道如何建立连接以及如何格式化该消息。
我知道我可以用 php.exe 运行脚本,但问题是它不能用于 php 会话。
解决方法
如果您在 Google 上搜索 CGI 规范,这将使您对要设置的环境变量有一个合理的了解。通常,您使用脚本文件名作为参数来执行 php 进程,并为其提供新的环境变量。你熟悉 fork、exec* 系统调用吗?
它比这稍微复杂一些,因为它涉及对标准输入、输出和错误流的摆弄。为了给您一个想法,请查看文件 libhttpd.c 中的 thttpd source code,函数 cgi_child
。
如果您的服务器源代码不是用 C 或 C++ 编写的,您将不得不四处寻找生成子进程来处理在您的服务器中调用的 PHP 脚本,并将输出发送到浏览器。其中一些输出将是 HTTP 标头,并且在此之后它可能会停止执行(例如 HTTP 2xx 无内容,HTTP 3xx 重定向),在这种情况下,您将其发送回浏览器并使用 \r\n\r\n 终止输出.
要将信息发送到 PHP 进程,只需设置环境变量和可能的参数变量,除非进程读取您设置的环境变量 SCRIPT_FILENAME(请参阅 CGI 环境变量)。切换到二进制文件所在的目录或文档根目录,以任何有意义的方式,在生成之前,处理传入的数据(例如来自 POST 请求)并让生成的进程从 stdin(从 php-fpm,它可能从您设置的套接字,但不完全确定,因此留作练习)。
运行或生成 php-cgi 可能更容易,它是 php-fpm,它侦听默认或指定的地址和端口。运行 php-fpm -h 选项并试一试。我认为这绝对是获得会话支持的方法。还要确保进程知道在哪里查找 php.ini 文件。
除了 CGI 规范外,阅读有关 HTTP 的所有内容也会有所帮助。或者至少是其中的一大块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。