2011-01-26 16 views
5

Oooops L'ho fatto di nuovo.PHP CodeIgniter 404 on deploy

Il mio sito internet ha funzionato perfettamente a livello locale

mia macchina di sviluppo è un'installazione di Windows WAMP2 mio server è un CentOS 5.5 Apache 2.2 PHP5 seup

sto ottenendo un 404 sul sito che ho CodeIgniter ho schierato, e non riesco davvero a capire cosa c'è che non va, quindi per favore aiutami a trovare l'errore.

È l'URL radice. Non ho impostato il DNS quindi è solo l'indirizzo IP del server. Stava mostrando la pagina standard di apache prima di caricare il codeigniter. Ho controllato il file di configurazione e sembra ok. Potrebbe essere un errore di permessi sui file? ho impostato chmod o + rw nell'intera directory/var/www/html. il file error_log in httpd non mostra nulla

Ho provato a testare se fosse il modulo mod_rewrite, ma ho creato una directory di test con un file .htaccess con RewriteEngine ON che non mi dava un errore, quindi che puo ' Sia esso.

In codeigniter ho impostato log_threshold su 4 nella configurazione, ma non ricevo alcun messaggio di log, quindi non riesco a capire se si tratta di un errore di pre> codeigniter, ma davvero non lo faccio Penso che sia, dato che sta caricando la mia vista Error, ancora Perché non c'è nessun log che viene scritto, di cosa si tratta?

Qualsiasi aiuto sarebbe molto apprezzato come sto correndo su fumi per ottenere questo lavoro ...

Aggiornamento Grazie a @jondavidjohn ho scoperto che colpisce il controller direttamente IE:

http://addr/index.php/GeoController/markers/

mi fornirà un errore specifico di controllo dicendo:

in grado di individuare il modello di "modelnam e"

risolto Grazie a @jondavidjohn, e @timdream per avermi dato gli indizi per risolvere questo. Era un problema di denominazione, avevo nomi di file che erano stati caricati e potevano essere piccoli da quello che capisco ora, quindi il PERCORSO era inefficace in quanto portava al sito, ma avrebbe dovuto condurre al sito anche se avevo un sito. php ho dovuto cambiarlo e il percorso per site.php

+0

Forse questo lavoro a livello locale? –

+0

@Matt Asbury - sì, è stato solo sulla distribuzione che ho ricevuto un errore – Jakob

+0

Quale URL si sta verificando l'errore 404? Qualcosa che hai dimenticato di cambiare in config.php? Il tuo file .htaccess è sicuramente leggibile dall'utente del web server? Qualcosa nel log degli errori di Apache? –

risposta

4

assicurarsi di avere le impostazioni corrette in system/application/config/config.php .. prestare particolare attenzione a

$config['base_url'] = "http://www.example.com"; 

assicurarsi che si sta mettendo nel dominio principale del vostro sito, controlla anche la configurazione del routing e assicurati di avere il controller predefinito corretto impostato in system/application/config/routes.php

+0

per evitare qualsiasi confusione che ho ora impostato il DNS, può essere il routing? Ho solo il controller di default, e sarebbe lo stesso nell'ambiente locale e pubblico, no? – Jakob

+0

probabilmente, vorrei solo verificare che sia corretto, inoltre stai ricevendo il Codeigniter 404 o l'apache 404 – jondavidjohn

+1

hai provato a colpire direttamente il controller? 'http: // www.example.com/index.php/controller/index'? – jondavidjohn

1

$config['uri_protocol'] potrebbe anche svolgere un ruolo. Il valore predefinito è AUTO, che cerca la variabile di ambiente che contiene automaticamente l'URL effettivo.

Avevo un'app Web che non funziona quando passo a php-cgi da mod_php per il mio server. La modifica della configurazione su REQUEST_URI risolve il problema. Ho trovato la valvola scavando le uscite phpinfo(), potresti provare a farlo.

+0

sarebbe sicuro pubblicare un link alla mia app in cui ho pubblicato il phpinfo nella pagina 404 in modo che anche gli esperti possano dare un'occhiata al phpinfo, o rappresenta una minaccia per la sicurezza? – Jakob

0

La mia prima scommessa è che stavate sviluppando questo e modificato il file .htaccess.

TUTTAVIA, se si è passati da un sistema Windows -> cambiamento di sistema Linux (dev su Win, prod a nix), è necessario tenere a mente i nomi dei controller, se un file su windows era "Home.php", e hai usato "home.php" nella configurazione come percorso predefinito, quindi non ci riuscirà .. poiché non c'è il file "home.php".

Home.php != home.php

Linux è case sensitive. Dai un'occhiata, potrebbe essere una cosa semplice ma potrebbe causare ostacoli.

Ancora una volta sto solo indovinando a causa della mancanza di dettagli.

+0

grazie per la risposta proveniva da win -> nix ma sono stato molto attenta al naming, sono più incline a pensare che abbia qualcosa a che fare con il file .htaccess, ma ho cambiato il RewriteBase in modo da essere semplicemente "/" e mod_rewrite è abilitato – Jakob

+0

pubblica il codice **. htaccess ** per ogni evenienza. Se si tratta di una pagina 404 di codeigniter come hai detto, c'è qualcosa che non va con codeigniter e non con la tua configurazione di apache. – Jakub

2

Recentemente ho iniziato a utilizzare una nuova installazione di codeignitor 3.0 e non ho avuto problemi sul mio server di sviluppo (Windows), quindi quando ho spostato il mio server live (Linux) ho iniziato a ricevere un errore 404.

La ragione di ciò è che in 3.0 si intende scrivere in maiuscolo la prima lettera dei propri controller/modelli e anche il nome del file.

ad es.

classe Test_model estende CI_Model {

Test_model.php

Spero che questo aiuta alcune persone che finiscono qui!

Per riferimento:

http://www.codeigniter.com/userguide3/installation/upgrade_300.html

+0

Contento di aver letto questa risposta. Grazie uomo. – olger

Problemi correlati