2010-08-07 100 views
1

刚从源代码(win32)编译5.3.3。 试图测试一些header()的东西,但它看起来不会与CLI sapi一起使用。 任何好的文档,把你的编译源码作为模块放入apache,就像我通常对预编译模块做的一样。编译PHP 5.3.3从源代码到Apache

基本上我的测试是从CLI

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

我从headers_list()的空数组,所以我需要得到这个内置源到Apache中,使我从一个headers_list响应()。

在此先感谢你们。

------- UPDATE ------

配置命令,但没有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  | 
------------- 

-----月2日更新----

下载阿帕奇,坚持了在../apache并尝试下面的命令却找不到头。

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 

---- 3日更新---

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 

感谢您的链接

+0

你的意思是_LoadModule php5_module modules/libphp5.so_?这不是在httpd.conf中加载模块的方法吗? – dierre 2010-08-07 10:18:29

+0

我冒昧地“解决”了外部pastebin“实体”。 – VolkerK 2010-08-07 11:11:01

回答

2

的PHP CLI SAPI是不是真的意味着发送HTTP报头;其目的是从命令行使用。

如果你想使用PHP和Apache,你必须编译Apache模块SAPI或CGI SAPI。

要编译Apache 2.2的模块,您必须在Apache库,包括在%LIB%和%目录包括%,分别与用途:

--enable-apache2-2handler 

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

+0

是的,我知道这一点,但我正在寻找配置中的相关选项以启用apache SAPI。看到我更新的帖子。 – 2010-08-07 10:42:39

+0

@Paul我已添加相关信息。 – Artefacto 2010-08-07 10:49:44

+0

我已经将apache下载到最新的pastebin中显示的我的构建目录中./apache。你能指定%LIB%和%INCLUDE%在哪里吗? – 2010-08-07 11:03:20

1

应该有比你张贴在http://pastebin.com/qhFVR8A3的几行更大量输出
最有可能存在,这意味着配置脚本找不到下列文件中的至少一个消息Could not find apache2.2 libraries/headers

  • httpd.h中
  • libhttpd.lib
  • APR的-1.lib
  • libaprutil-1。LIB

要么将​​这些文件复制到PHP-构建包括/库路径或使用--with-extra-includes--with-extra-libs指向相应的目录。

+0

看这里可以告诉我适当的目录发射--extra-includes和--extra-libs在? http://apache.mirror.anlx.net/httpd/httpd-2.2.16-win32-src.zip – 2010-08-07 11:12:34