Installazione di PHP / Apache su Windows XP


2

Sto cercando di installare un server Web Apache con PHP sulla mia casella di Windows XP Pro, ma non ho fortuna.

Sto cercando di imitare un server di produzione, quindi preferirei non avere le ultime novità. L'ambiente prod utilizza 5.3.6; Mi sto accontentando di 5.3.5 sul mio box di Windows. * Per Apache, l'ambiente prod utilizza 2.0.63; Ho provato sia 2.0.64 che 2.2.22 (immagino che abbinare la versione della lingua sia più importante della versione del web server) e ho ottenuto sostanzialmente gli stessi errori. **

Ho seguito le istruzioni in questa pagina e falliscono costantemente quando è il momento di aggiungere questo codice al file httpd.conf:


LoadModule php5_module "c:/php/php5apache2_2.dll"
AddModule application/x-httpd-php .php
PHPIniDir "C:/php"

I percorsi della directory sono corretti ed c:/php/php5apache2_2.dllè un file reale. Quando provo a riavviare / avviare il server Apache, viene visualizzato il messaggio "L'operazione richiesta non è riuscita!" messaggio pop-up. Il logs/error.logfile non è di aiuto; non ci viene scritto nulla. (Per questo errore, intendo. Il file esiste e non è vuoto.)

Quando commento queste tre righe il server Web si avvia, quindi sono abbastanza sicuro che il problema risieda lì.

Sono abbastanza sicuro che l'installazione di PHP sia andata bene; Ottengo l'output che mi aspetto quando corro php -vdalla riga di comando.

Qualsiasi consiglio su ciò che sto facendo di sbagliato è il benvenuto e molto apprezzato.

'* Perché? Perché la pagina di download ha indicato che volevo VC6 (non VC9) se lo sto eseguendo sotto Apache e la pagina di archivio non ha VC6 per 5.3.6; 5.3.5 era il più vicino possibile.

** - L'aggiornamento alla 2.2.22 è stato il mio tentativo più recente di risolverlo prima di venire qui, quindi è quello che sto correndo al momento. Ritornerei volentieri alla 2.0.64 per replicare meglio l'ambiente prod, ma come ho detto, immagino che la versione della lingua sia più importante del web server.


php5apache2_2.dll è registrato sul computer? (regsvr32 c: \ php \ php5apache2_2.dll)
TheCompWiz

2
Perché non installare semplicemente usando WAMP?
Bibhas,

@TheCompWiz: Apparentemente no, non lo è; quel comando restituisce un messaggio di errore: "LoadLibrary (" [file] ") non riuscito - Impossibile trovare il modulo specificato."
BlairHippo,

@Bibhas: Perché in tutto il mio Google per l'installazione di Apache e PHP su Windows XP in qualche modo non sono mai riuscito a notare WAMP? Sembra estremamente rilevante per i miei interessi ...
BlairHippo,

@BlairHippo Capito.
Bibhas,

Risposte:


1

Gli errori di avvio di Apache, in particolare durante la configurazione iniziale, sono spesso il risultato di un modulo non trovato nell'ordine di caricamento DLL. (Supponendo che i file di configurazione siano scritti correttamente.)

Il tuo primo problema è che stai tentando di caricare il gestore Apache 2.2 in Apache 2.0, ma 2.2.22 avrebbe dovuto essere caricato. :-P

Cosa dice il registro eventi di sistema? IIRC, informazioni utili vengono registrate lì quando Apache non si avvia.

Puoi avviare Apache senza PHP abilitato?

Cosa dice l'output di httpd -tun prompt dei comandi? Dovrai essere nella Apache\bincartella per quello.

L'account con cui stai tentando di eseguire Apache ha accesso in lettura alla tua cartella PHP? Ha accesso in scrittura alla cartella del registro?

Stai cercando di caricare eventuali estensioni PHP? In tal caso, il tuo extension_dirset è corretto nel tuo php.ini?

Fa php -ida un lavoro riga di comando? Da dove viene l'output php --ini? Sta trovando il file ini corretto?

Non hai preso una versione nts(non thread-safe) di PHP, vero? Per caricare PHP come modulo Apache, è necessaria la versione thread-safe.

Infine, potrebbe valere la pena esaminare PHP come un CGI piuttosto che un modulo server per scopi di sviluppo. Rende molto più facile cambiare le versioni di PHP per testare gli effetti dell'aggiornamento del runtime.

- = - = -

Un server a cui ho accesso per eseguire Apache 2.2 e PHP 5.2 utilizza le seguenti direttive:

LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Come accennato, non sto più usando Apache 2.0; L'ho disinstallato e installato 2.2.22. Inoltre, come detto, quando commento quelle righe relative a PHP in httpd.conf, il server effettivamente si avvia. Il registro di sistema registra due voci di informazioni e un errore, che dice "Il servizio Apache2.2 è terminato con errore specifico del servizio 1 (0x1)." httpd -t dice "Comando AddModule" "non valido ... ehi. Sembra sospetto come una busta paga.
BlairHippo,

Così. Se "AddModule" è il comando sbagliato da usare, sai qual è quello giusto?
BlairHippo,

Gah, l'ho perso. Sul mio telefono adesso. Forse AddHandler?
Afrazier

Lo è AddType.
Afrazier

1

Costa un po 'di soldi ($ 125), ma ho ottenuto un ottimo uso da WampDeveloper Pro . Per qualcuno come me che non è un amministratore WAMP, ha semplificato notevolmente il processo per far funzionare tutto insieme in modo da potermi concentrare sulle applicazioni Web che stavo installando in cima allo stack del software del server.

Ma hai anche detto che dovevi utilizzare specifiche versioni precedenti di alcuni software - non sei sicuro che questo prodotto ti consentirà di farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.