2010-02-23 7 views
11

Tutto stava andando alla grande fino a quando ho aggiunto AddHandler application/x-httpd-php5s .php al file .htaccess nella root dei documenti del mio server locale (che cambio spesso a seconda del sito che sto lavorando con). Da quando l'ho fatto quando visito lo http://localhost:8888 il mio browser scarica semplicemente index.php e non viene elaborato affatto, solo il codice grezzo. Ora Ho rimosso quella linea dal file .htaccess ma sto ancora avendo questo problema.I file PHP vengono scaricati dal browser anziché elaborati dal server di sviluppo locale (MAMP)

Ho scoperto che se aggiungo una voce alternativa al mio file hosts per 127.0.0.1 la nuova voce si comporta come "localhost". Ma se aggiungo la riga qui sopra al mio .htaccess, esso mette fuori gioco anche quel nuovo host. Ho provato a reinstallare MAMP ea cancellare le sue cache e tutti i file temporanei che ho trovato. Ho navigato attraverso il file httpd.conf di Apache tutto inutilmente.

Quindi, per essere chiari: http://localhost:8888 si verifica il problema precedente. Se aggiungo una nuova voce al mio file hosts per 127.0.0.1, dico 'goomba' e la riga sopra non è nella radice .htaccess (e non è mai stata per quell'host/alias/qualunque cosa) allora posso accedere a http://goomba:8888 bene . Ma se aggiungo questa riga al file .htaccess, devo aggiungere un'altra voce al mio file hosts per aggirarlo anche se rimuovo quella linea dal file .htaccess.

Sto bene con un diverso alias 127.0.0.1 (host? Come si chiama?) Ma mi disturba che questo è ancora rotto.

Giusto per essere chiari, sono su Mac OS Leopard (ma non sto utilizzando l'installazione di Apache integrata, ma MAMP).

risposta

4

Si applica un tipo MIME in cui un gestore dovrebbe essere (vedi documentation on handlers)

Prova a modificare:

AddType application/x-httpd-php5 .php 

EDIT: Come avete indicato moduli cache vengono caricati, si poteva leggere su caching e htcacheclean (per cancellare la cache del disco). È inoltre possibile utilizzare temporaneamente la direttiva CacheDisable. Un'altra cosa che potresti provare è rinominare il file che hai richiesto (ad esempio index.php -> index.bak), richiedi il file di nuovo nel browser (dovrebbe ora 404), quindi ripristina e riprova.

+0

L'ho provato (e di nuovo, solo ora) senza successo. Il mio httpd.conf ha già quella linea (meno il 5), comunque. Il mio problema è che, nonostante la linea problematica menzionata nella mia domanda venga rimossa, ho ancora problemi. È come se il server avesse memorizzato nella cache il file .htaccess solo per 'localhost', non per altri host che puntano a 127.0.0.1. Si prega di aggiungere enfasi alla mia domanda per chiarimenti. Grazie comunque! – donut

+0

Il server ha caricato dei moduli cache? Sì, il "5" è stato lasciato per caso – Cez

+0

Funziona: file_cache_module, cache_module, disk_cache_module e mem_cache_module. Come posso cancellare questi nascondigli? Qualcuno di questi causerebbe questo problema? Grazie! – donut

0

Prima verifica se il tuo server Apache è in esecuzione. Start-> Run-> cmd e quindi eseguire il comando:

netstat -abn

Lookup il risultato per la linea come questa:

TCP 0.0.0.0:8888 0.0.0.0:0 ASCOLTO 600 [apache .exe]

Se non riesci a trovare nulla in ascolto sulla porta 8888 (nessuna riga 0.0.0.0:8888), il tuo apache non riesce ad avviarsi. Per scoprire perché non è possibile iniziare, dovresti trovare la directory di log di apache ed esaminare error.log (potresti aver aggiornato il tuo php resently?). Se trovi la linea di ascolto 0.0.0.0:80 ma alcuni altri software sono in ascolto (hai IIS in esecuzione?), Allora dovresti rimuovere/riconfigurare quel software sulla porta libera 80. Se hai apache in ascolto sulla porta 80 ma non riesci ancora ad aprire il tuo sito e non riesci a capire che cosa sta causando il problema esaminando i file di registro di Apache, quindi si tratta di un problema di database. Controllare se il mysql è in esecuzione e l'ascolto utilizzando stesso comando, ma si dovrebbe essere alla ricerca di

TCP 0.0.0.0:3306 0.0.0.0:0 ASCOLTO [mysqld-nt.exe]

Se non riesci a trovare tale linea allora il tuo server mysql non è in esecuzione - controlla i file di log di mysql per gli errori. Se entrambi i server sono in esecuzione e non è possibile ottenere alcun output nel browser, controllare il firewall e l'antivirus, in quanto potrebbero bloccare le richieste. Spero che questo aiuti;)

+1

Un paio di cose: Sono su Mac OS Leopard; il server Apache sta lavorando per nuove voci nel mio file hosts. Si prega di vedere gli aggiornamenti al mio post per maggiori dettagli. Grazie! – donut

2

Forse vuoi application/x-httpd-php5 invece di application/x-httpd-php5s? (Notare la mancanza di uno s alla fine.)

+0

L'ho provato senza successo. Prima stava funzionando bene senza nulla nel .htaccess. – donut

1

Per lo stesso problema, ho rimosso il/x-httpd-php '5' applicazione AddType .php htm html

relativo funzionamento benissimo! prova

12

Ho avuto un problema simile un paio di volte e rinominare il file non ha funzionato per me. Con OS X Lion ho trovato la configurazione giusta è questo:

<IfModule php5_module> 
    AddType application/x-httpd-php .php 
    <FilesMatch \.php$> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    AddType application/x-httpd-php-source .phps 
    <IfModule dir_module> 
     DirectoryIndex index.php index.html 
    </IfModule> 
</IfModule> 

La magia che ha reso il lavoro per me è la parte SetHandler application/x-httpd-php.

Naturalmente modifica il <IfModule php5_module> nella tua versione di php.

+0

Questo era il caso anche per OSX Mountain Lion. – Jack

+3

dove dovrebbe essere posizionato? –

+0

@ToniMichelCaubet: ritardo alla festa, ma posizionare che in '/ etc/apache2/altro/php5.conf' e fare in modo che la configurazione principale di Apache (in'/etc/apache2/httpd.conf') ha una riga non commentata (vicino alla fine) che dice: 'Includi/etc/apache2/other/*. conf'. – webtweakers

0

In realtà avevo un problema molto simile. Tutti i miei file php si stavano scaricando quando ho provato a verificare se php e apache lavorassero insieme. Si scopre che non stavano lavorando insieme.

Ho dovuto disinstallare php, vorrei raccomandare la stessa linea d'azione e quindi reinstallare php utilizzando semplicemente il download del file zip su php.net, invece di installarlo con MAMP. Penso che il mio problema fosse che avevo usato il programma di installazione php. Non consiglio di usarlo.

Questo sito Web mi ha aiutato molto, stavo avendo un problema con Apache che non si avviava e mentre questo non è il tuo problema, questo sito web ha risolto sia l'apache che non si avvia e il download di problemi di file php e anche se sei su un mac può essere d'aiuto anche http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

Spero che tutto funzioni! In bocca al lupo!

0

nel mio caso la cancellazione o commentare "AddHandler php56-cgi .php" nei file htacces coinvolte di mia radice risolto

Miglior