Perché una pagina .php mi dà un errore 404 su Server 2008 con IIS 7.0?

Sto utilizzando FastCGI per impostare PHP. Ho seguito le istruzioni sul sito iis.net. Ho aggiunto il mapping del gestore, ho modificato il file php.ini come specificato. Nessuno di esso funziona, ho appena un errore 404.0 che dice "La pagina che stai cercando è stata rimossa", anche se esiste il path fisico visualizzato nella pagina di errore. Dopo aver provato questo metodo manuale (unzipping php, manualmente aggiungendo la mapping delle maniglie, ecc.), Ho rimosso tutto e ho provato il Web Platform Installer (ugh), ma ho ancora lo stesso problema.

Un po 'di più informazioni:
La pagina di errore dettagliata dice che il gestore è il mio gestore StaticFile (non PHP FastCGI). Fornisce anche il codice di errore 0x80070002

  • Eseguire script bash con php in una priorità inferiore o limitare la CPU
  • Compilare PHP con il supporto LDAP su Ubuntu 12.10
  • APC continua a schiantarsi
  • non è ansible get la posta php () che lavora sulla versione desktop di Ubuntu con sendmail e postfix
  • Nginx e diverse versioni di PHP FPM + PHP
  • Il server Apache restituisce 404 dopo il timeout
  • Quando guardo i registri, mostra "GET /php.ini" come dare l'errore 404. Perché IIS cerca questo?

    8 Solutions collect form web for “Perché una pagina .php mi dà un errore 404 su Server 2008 con IIS 7.0?”

    Quando stavo ricevendo questo messaggio di errore ho notato che non avevo nemless il file php-cgi.exe nella directory C: \ Programmi \ PHP.

    L'altro metodo utile che ho trovato è che se si stanno ottenendo errori FastCGI, provare a fare doppio clic direttamente sul file php-cgi.exe e quindi guardare nei registri delle applicazioni di Windows per errori se si blocca. Ho ottenuto questo da questo commento da un report bug bug :

    [2010-04-22 06:43 UTC] sejo at iteontech dot com

    Dopo aver eseguito il debug IIS e un mucchio di altre cose pazzesche, questo è ciò che ha funzionato per me. Ho PHP 5.3.2 su Windows 7 e IIS 7. Tenta di eseguire PHP-CGI.EXE (DA DOUBLECLICKING ON IT). Vedi se ricevete messaggi di errore / pop-up. Ho ottenuto una tonnellata di loro e tutto bollito giù per avere un sacco di estensioni accese, ma non sono disponibili nella mia cartella ext. Cancella i PHP.INI di quelle estensioni non valide e il problema dovrebbe andare via.

    Per impostazione predefinita, IIS non esegue alcun file per il quale non dispone di un tipo di mapping MIME valido e sarà 404 la risposta

    Se l'estensione .php non dispone di un tipo MIME definito per esso per il sito web che si sta tentando di eseguire PHP, quindi IIS non servirà il file anche se esiste un gestore pertinente per quel tipo di file.

    Ho appena controllato l'IIS 7 Manager sul mio server e non esiste alcuna mapping per PHP per impostazione predefinita nell'elenco Tipi MIME, ho il sospetto che se il tuo sito web esistesse prima di installare FastCGI non aggiunge automaticamente la mapping ai siti esistenti mentre quando hai creato il il nuovo sito web FastCGI è già stato installato.

    Potrei ovviamente essere completamente sbagliato a proposito dell'ultimo bit, ma l'estensione File a MIME tipo di mapping problema è una caratteristica di sicurezza di IIS – nessuna mapping = nessun file servito con quella estensione

    Beh, non sono sicuro di quello che ho fatto, ma in qualche modo ho risolto. Ho rimosso il sito web e ri-aggiunto, quindi ho controllato le impostazioni di Mapping FastCGI, tutto sembrava proprio come prima, ma questa volta funziona. Vorrei ancora sapere perché stavo ottenendo l'errore se ansible.

    La mia soluzione a questo errore aveva due parti:

    1. (dalla risposta @ icc97) – fare doppio clic su php-cgi.exe nella cartella PHP per assicurarsi che possa iniziare bene.
    2. Scopri che il mio file index.php era veramente chiamato index.php.htm (distriggers "hide i nomi di estensione del file")

    Volevo solo aggiungere la risposta stupida che chiunque altro trovi questo problema con lo stesso problema. "Un compagno" ha creato il file di prova sul server. Stava ricevendo l'errore 404. Quello che era accaduto era che le windows stavano nascondendo le estensioni dei file, quindi il file era in realtà chiamato index.php.txt … Non un divertente 30 minuti.

    Ho affrontato una questione simile, tutte le risposte che potevo trovare sul web non servivano di alcun aiuto. Prima di tutto suppongo di aver provato a eseguire http: //yourservernamehere/check.php e tutto sembra tornare corretto. Se questo è il caso vorrei suggerire di controllare nel tuo file php.ini l'impostazione sotto:

    [Data] ; Definisce il fuso orario predefinito utilizzato per le date funzioni date.timezone =

    Molto probabilmente è vuoto come la mia è, questo genera un errore sciocco con una versione più recente di php e per qualsiasi motivo sarai morto nell'acqua finché non hai un fuso orario specificato (la mia è America / Chicago).

    Potrei assumere molto sulla tua situazione, ma suona molto simile alla mia e ho trascorso diversi giorni in fretta cercando una risposta.

    C'è qualche motivo per cui non stai utilizzando l'installatore per fare il lavoro per te?

    Inoltre, puoi confermare che la mapping del gestore .php sia correttamente impostata?

     Path : *.php State : Enabled Path Type : File or Folder Handler : FastCgiModule 

    Oggi ho avuto questo problema, ma nessuna delle correzioni sopra ha funzionato per me. Ho triggersto la gestione dettagliata degli errori in IIS e ho scoperto che stavo ricevendo un errore 404.7: 'Il module di filter di richiesta è configurato per negare l'estensione del file'.

    Sono entrato nel menu 'Filtro richiesta' all'interno del gestore IIS, ho aggiunto '.php' come tipo di file approvato e questo mi ha risolto il problema.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.