2010-08-07 3 views
1

Juste compilé 5.3.3 à partir de la source (win32). Essayer de tester des éléments header() mais il semblerait que cela ne fonctionnera pas avec CLI sapi. Tous les bons docs pour mettre votre source compilée dans Apache en tant que module, comme je le ferais normalement avec le module pré-compilé.Compiler PHP 5.3.3 à partir de la source dans Apache

Fondamentalement, mon test serait de CLI

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

Je reçois un tableau vide de headers_list(), alors je dois obtenir cette source construite dans apache pour que je reçois une réponse de headers_list().

Merci d'avance les gars.

------- ------ MISE À JOUR

commande Configurer, pas encore apache juste encore? 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ème JOUR

Téléchargé apache, il coincé dans ../apache et essayé la commande suivante, mais ne peut pas trouver les en-têtes.

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 

---- 3e mise à jour ---

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 

Merci pour le lien

+0

Voulez-vous dire _LoadModule php5_module modules/libphp5.so_? N'est-ce pas le moyen de charger un module dans httpd.conf? – dierre

+0

J'ai pris la liberté de "résoudre" les "entités" pastebin externes. – VolkerK

Répondre

2

Le SAPI PHP cli n'est pas vraiment destiné à envoyer des en-têtes HTTP; son but est d'être utilisé depuis la ligne de commande.

Si vous souhaitez utiliser PHP avec Apache, vous devez compiler le module Apache SAPI ou CGI SAPI.

Pour compiler le module Apache 2.2, vous devez avoir les bibliothèques Apache et inclure des répertoires en% LIB% et% INCLUDE%, respectivement, et utilisation:

--enable-apache2-2handler 

Notez que vous allez la route du module Apache, vous doit le compiler avec la même version de la bibliothèque d'exécution C utilisée par les binaires Apache. La raison en est que PHP doit être capable d'allouer de la mémoire et de passer ces pointeurs à Apache pour qu'il les libère et vice-versa, et pour que cela se produise correctement, les versions doivent être les mêmes. Ainsi, par exemple, si vous avez compilé (ou téléchargé quelque part) Apache compilé avec Visual C++ 9, vous devez utiliser Visual C++ 9 pour compiler PHP.

+0

Oui, je suis conscient de cela, mais je cherche les options pertinentes dans configure pour obtenir apache SAPI activé. Voir ma mise à jour post. –

+0

@Paul J'ai ajouté les informations pertinentes. – Artefacto

+0

J'ai téléchargé apache dans ../apache de mon répertoire de construction montré dans le dernier pastebin. Pouvez-vous spécifier où% LIB% et% INCLUDE% sont? –

1

Il devrait y avoir beaucoup plus de puissance que les quelques lignes que vous avez posté à http://pastebin.com/qhFVR8A3
Très probablement il y avait le message Could not find apache2.2 libraries/headers ce qui signifie que le script de configuration n'a pas pu trouver au moins un des fichiers suivants:

  • httpd.h
  • libhttpd.lib
  • libapr-1.lib
  • libaprutil-1.lib

Ou copier ces fichiers sur le php-build include/chemin de la bibliothèque ou utiliser --with-extra-includes et --with-extra-libs pour pointer vers les répertoires appropriés.

+0

En regardant ici pouvez-vous me dire les répertoires appropriés à tirer --extra-includes et --extra-libs à? http://apache.mirror.anlx.net/httpd/httpd-2.2.16-win32-src.zip –

Questions connexes