Domanda

Ho scritto un'estensione PHP e potrebbe essere compilata ed eseguita con successo su Linux. Ma su Windows ho riscontrato alcuni problemi.

Ho eseguito la compilazione su Windows secondo http://blog.slickedit.com/?p = 128 con la versione 5.2.10 di PHP e dopo la compilazione ha generato il file dll. Ma quando ho provato ad usare il file dll, mi ha segnalato i problemi di memoria all'avvio di Apache (server Wamp). E poi ho iniziato il processo di debug, sembrava che REGISTER_INI_ENTRIES () avesse dei problemi.

Ecco il codice sorgente dell'estensione PHP, http://www.bluefly.cn/xsplit .tar.gz e funziona bene su Linux. Ma voglio anche farlo funzionare su Windows.

Scusa se non sono un professionista, quindi spero che qualcuno mi possa aiutare.

Qualsiasi aiuto è apprezzato e grazie in anticipo ~

È stato utile?

Soluzione

Il motivo per cui non si riscontra un problema su Linux è molto probabile che si stia eseguendo un thread safebuild su Windows, ma non su Linux. Prova ad aggiungere --enable-maintainer-zts su Linux e poi controlla usando valgrind ( USE_ZEND_ALLOC = 0 valgrind / usr / bin / php script.php )

Da una rapida occhiata al tuo codice ho visto che non hai definito il tuo php_xsplit_init_globals che ha inizializzato le variabili del thread. Questa funzione deve essere registrata da MINIT aggiungendo un

ZEND_INIT_MODULE_GLOBALS(xsplit, php_yplist_init_globals, NULL);

chiamata. Forse qualcos'altro non va, ma questa è la prima cosa che ho visto.

Altri suggerimenti

Wamp è compilato usando VC6 e richiede che il modulo sia compilato con VC6.

Segnalazione di parole di Romain Bourdon (autore di WampServer): poiché Apache è compilato con VC6, se si desidera eseguire PHP come modulo (come in WampServer) è necessario compilare il modulo con VC6.

Se si desidera compilare il modulo con una piattaforma più recente, è necessario compilare l'intera distribuzione PHP-CGI ed eseguirlo come (veloce-) CGI.

Se sai leggere il francese (o se sai come usare un traduttore) puoi leggere questo post .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top