php - 将 PHP 5.3.3 从源代码编译到 Apache

标签 php c apache pecl

刚刚从源代码 (win32) 编译了 5.3.3。 尝试测试一些 header() 东西,但它看起来不适用于 CLI sapi。 任何关于将编译后的源代码作为模块放入 apache 的好文档,就像我通常对预编译模块所做的那样。

基本上我的测试将来自 CLI

php -r "header('Content-Type: text/plain', true, 404); var_dump(headers_list());"

我从 headers_list() 得到一个空数组,所以我需要将这个内置源放入 apache 中,以便我从 headers_list() 得到响应。

提前谢谢你们。

-------- 更新------

配置命令,但还没有apache? http://pastebin.com/qhFVR8A3 :

E:\phpsdk\bin\php53dev\vc9\x86\php5.3.3>configure --disable-all --enable-cli --enable-apache2-2handler --enable-apache2-2filter

Enabled SAPI:
-------------
| Sapi Name |
-------------
| cli       |
-------------

----- 第二次更新 ----

下载了 apache,将其固定在 ../apache 中并尝试了以下命令,但找不到 header 。

http://pastebin.com/XyrzuZvu :

E:\phpsdk\bin\php53dev\vc9\x86\php5.3.3>
configure --disable-all --enable-cli --enable-apache2-2handler=../apache --enable-apache2-2filter --enable-cgi

---- 第三次更新---

Enabled SAPI:
--------------------
| Sapi Name        |
--------------------
| apache2_2filter  |
| apache2_2handler |
| cgi              |
| cli              |
--------------------

I have it working now.
E:\phpsdk\bin\php53dev\vc9\x86\php5.3.3>configure --disable-all --enable-cli --enable-apache2-2handler --enable-apache2-2filter --enable-cgi --with-extra-includes=E:\phpsdk\bin\php53dev\vc9\x86\apache\include --with-extra-libs=E:\phpsdk\bin\php53dev\vc9\x86\apache\lib

谢谢你的链接

最佳答案

PHP cli SAPI 并不是真的要发送 HTTP header ;它的目的是从命令行使用。

如果要将 PHP 与 Apache 一起使用,则必须编译 Apache 模块 SAPI 或 CGI SAPI。

要编译 Apache 2.2 模块,您必须拥有 Apache 库并分别在 %LIB% 和 %INCLUDE% 中包含目录,然后使用:

--enable-apache2-2handler

请注意,您走的是 Apache 模块路线,您必须针对 Apache 二进制文件使用的相同版本的 C 运行时库对其进行编译。原因是 PHP 必须能够分配内存并将这些指针传递给 Apache 以便它释放它们,反之亦然,为了正确发生,版本必须相同。因此,例如,如果您编译(或从某处下载)使用 Visual C++ 9 编译的 Apache,则必须使用 Visual C++ 9 来编译 PHP。

关于php - 将 PHP 5.3.3 从源代码编译到 Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430030/

相关文章:

php - 一个查询中的多个 DELETES 在 PHP 页面上不起作用,但在 phpMyAdmin 中起作用

php - javascript 中的 html 注释

php - 如何将 begin-commit 事务放入 Controller : cakephp?

c - 通过返回在 C 中找不到主机的地址获取主机

php - 在为画廊存储图像时,最佳做法是什么?

apache - 您自己服务器上的动态 DNS

apache - 在 htaccess 重定向中强制使用非 www 和 HTTPS 会导致重定向过多

php - Laravel - php artisan migrate - SQLSTATE[HY000] [14] 无法打开数据库文件

C++。从字节数组中获取RGB

c - 使用 gstreamer 将遥测数据复用到 MPEG-ts 文件中