2012-07-12 16 views
5

Quindi sto eseguendo uno script PHP sul mio server virtuale Godaddy (non mi odio) che mi aspetto di impiegare circa 5 minuti per terminare l'esecuzione. Lo script è pagine CURLing ma non contiene mai più di una pagina alla volta (è fatto in un loop riutilizzando la stessa variabile). ho modificato il mio file php5.ini al seguente:Errore di Apache 500 con PHP Fun

max_execution_time = 600 
max_input_time = 120 
memory_limit = 64M 

ho verificato tramite phpinfo che i cambiamenti dei file ini avevano avuto effetto, comunque sto ottenendo un errore di Apache 500 dopo 120 secondi. Ecco il log degli errori per questa volta:

[Wed Jul 11 22:08:52 2012] [warn] [client **.**.**.***] mod_fcgid: read data timeout in 120 seconds 
[Wed Jul 11 22:08:52 2012] [error] [client **.**.**.***] Premature end of script headers: test.php 

Se qualcuno ha qualche idea sul perché potrei essere sempre questi errori o qualsiasi suggerimento sulle cose da provare Apprezzerei l'aiuto. Ho notato un'opzione nelle impostazioni php impostate a 120, ma non sono sicuro se avrebbe un effetto: realpath_cache_tt

Ho anche impostato un limite di tempo nel file .php: set_time_limit (600);

Grazie in anticipo.

UPDATE: Ecco quello che ho provato nel file .htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
<IfModule mod_fcgid.c> 
IPCCommTimeout 7200 
</IfModule> 

La causa un errore di Apache 500 su qualsiasi caricamento della pagina. Ho anche disabilitato FastCGI ma il problema si sta ancora verificando.

RISOLTO Robb ha suggerito il seguente: IPCCommTimeout 7200 Che dovrebbe hanno lavorato però a causa della mia GoDaddy hosting condiviso non è permesso. È ora di trovare un nuovo servizio di hosting.

+0

Hai provato a farlo localmente? XAMPP o Uniserver possono essere entrambi eseguiti localmente (anche su un'unità flash). Sarebbe almeno da escludere un problema con le opzioni di hosting craptastic di GoDaddy ... –

+1

Non ho provato e proverò, ma nel frattempo spero che ci sia qualcosa che mi è mancato nel file php.ini. Sto cercando di disabilitare FastCGI solo per vedere cosa accadrà. – cazzer

+0

E ovviamente quando provo a disabilitare FastCGI Godaddy mi dà un problema di connessione, penso di aver bisogno di installare un Uniserver! – cazzer

risposta

6

non sono sicuro della gestione di questo problema su GoDaddy ma la risoluzione normale sarebbe la seguente:

Il problema che si verifica è dovuto a FastCGI esecuzione di uno script PHP, ma non genera una risposta entro il timeout di I/O predefinito (120 secondi), che provoca l'errore interno del server 500.

provare a modificare il file di configurazione VirtualHost predefinito, in genere si trova a /etc/apache2/sites-available/default e aggiungere questa direttiva all'interno del contesto <VirtualHost>:

<IfModule mod_fcgid.c> 
    IPCCommTimeout 7200 
</IfModule> 

Dopo aver salvato la modifica, apache2 restart con questo comando: sudo /etc/init.d/apache2 restart.

Da quello che sono stato in grado di determinare da GoDaddy è che il limite di tempo massimo è di 120 secondi per PHP/FastCGI nell'hosting condiviso, che non può essere aumentato dal client. Suggerirei di contattare il loro supporto per l'assistenza e, si spera, la loro reputazione non sarà disponibile e sarete in grado di ottenere aiuto.

Aggiornamento: Non sono sicuro se vi aiuterà, ma si potrebbe provare a cambiare da FastCGI a PHP5 nel tuo hosting centro di controllo (Impostazioni> Estensione File> PHP5).

+0

Un biglietto su Godaddy ha detto che questo dovrebbe essere inserito nel file .htaccess, che ho provato, ma rompe il sito. C'è qualcos'altro che dovrebbe andare? – cazzer

+0

Oltre a modificare il file 'conf' come sopra indicato o il file' .htaccess', non ne sono a conoscenza. Uno degli usi del file '.htaccess' è quello di modificare le impostazioni di sistema per la directory/sito web fornita. – RobB

+0

Potresti approfondire "rompe il sito"? – RobB

Problemi correlati