2010-11-03 22 views
9

Sto eseguendo WP 3.0.1 su un host condiviso utilizzando PHP5. Ho problemi con il caricamento di file un po 'più grandi tramite l'uploader multimediale nella sezione di amministrazione di WP.Wordpress: "Errore HTTP". Durante il caricamento dei file

Ogni volta che provo a caricare un file che supera i pochi megabyte, carica, dice il suo scricchiolio, quindi mi dà un grande "Errore HTTP" rosso. - niente di più.

Ciò si verifica solo su file un po 'più grandi, ad esempio un file .mp3 da 20 mb. Un file 5mb sembra funzionare correttamente. Che cosa è strano in passato abbiamo caricato i file 40mb senza problemi.

-

Ecco i passi che ho preso finora per cercare di porre rimedio alla situazione:

  1. ricontrollato php.ini per garantire aumento caricare, pubblicare e dimensioni della memoria erano abbastanza alto.
  2. Aggiornamento .htaccess per includere il filtro del modulo di sicurezza che ho trovato altrove.
  3. ricontrollato tutti i permessi dei file via ftp per assicurare che erano 755.
  4. Chiamato l'ospite - "Loro non supportano gli script 3a parte" (io odio IPower)
  5. provato con diversi file audio di dimensioni simili.
  6. disabili tutti i plugin

-

Voi ragazzi avete altre idee per quanto riguarda quello che potrebbe essere la causa del vago "Errore HTTP." problema?

Grazie in anticipo.

+0

Probabilmente alcune modifiche alle impostazioni PHP nell'host. – You

+0

Non sai cosa fare. Ho già provato a chiamarli e loro non aiutano - e ho provato a cambiare il php.ini di root senza successo. –

+0

Sto vedendo questo problema con WordPress 3 e PHP 5.3.6 su PHP 5.2 funziona perfettamente con lo stesso file. Ho creato un semplice uploader di file PHP sul server 5.3.6 e carica il file bene. Penso che sia qualcosa con WordPress e l'ultimo PHP. – kel

risposta

2

Il problema, come hai già dedotto, è nella dimensione del caricamento del file. Giusto per ricordarti, HTTP non è realmente costruito per il trasferimento di file di grandi dimensioni ... è può farlo, ma non sempre, e non molto bene. Stai riscontrando un problema in cui l'host interrompe il trasferimento perché il file è troppo grande. È molto probabilmente un'impostazione del server da qualche parte a cui non si ha accesso.

Poiché "non supportano script di terze parti", suppongo che tu sia in un ambiente di hosting condiviso, motivo per cui qualcosa potrebbe cambiare sul tuo server senza che tu faccia nulla. Possibili soluzioni:

  1. Ricevi un host diverso
  2. utilizzare un server dedicato
  3. trasferire i file di grandi dimensioni via FTP invece che da WordPress.
3

Metti questa riga nel file wp-config:

define('WP_MEMORY_LIMIT', '64M'); 
+0

Questo ha risolto il mio problema, grazie! –

1

Ho avuto lo stesso problema ogni volta che ho provato a caricare media, tranne che ho avuto la "HTTP Error" sul file più grandi di 124Kb! WP 3.3.1, PHP 5.2.

Ho chiamato il mio host e hanno aumentato la memoria a 64M (anche questo è cambiato in wp-config) e upload_limit a 8 MB (il valore predefinito era 2 MB). Questo non ha funzionato quindi ho fatto ricorso a quasi tutto il resto, dalla manomissione del.htaccess a reinstallare WP per installare un nuovo WP su un altro server, ma tutto punta a un problema del server. Ho chiamato di nuovo l'host e ho parlato con un altro tecnico che ha aumentato l'impostazione della lunghezza richiesta HTTP consentita.

6

Uno dei nostri clienti ha avuto lo stesso problema.

Infine abbiamo scoperto che il wordpress "Errore HTTP" durante il caricamento delle immagini, stava accadendo a causa di una modifica sul lato server. La società di hosting ha deciso di aggiungere APC ad accelerare il server per aumentare la stabilità e la velocità del server. L'accelerazione di APC dovrebbe funzionare solo con FastCGI e non con su, quindi impostano PHP per l'esecuzione come FastCGI.

Quando si usa PHP come FastCGI, se si tenta di caricare un file più grande di 128 KB, un errore "mod_fcgid: HTTP richiesta Lunghezza 131.388 (finora) supera MaxRequestLen (131072)" si verifica e causa un errore server interno 550. Ciò accade perché il valore della direttiva MaxRequestLen è impostato su 131072 byte (128 KB) per impostazione predefinita. Un modo per correggere questo (se il server usa Plesk), è modificare /etc/httpd/conf.d/fcgid.conf e impostare MaxRequestLen su un valore più alto, ad esempio 15 MB (MaxRequestLen 15728640). Se il server utilizza cPanel, questa modifica può essere eseguita tramite il WHM del server.

Quindi, se è possibile caricare immagini fino a 128 KB, questa è la soluzione al tuo problema.

10

Ho avuto un problema simile con Nginx e PHP5-FPM (e WordPress 4.1).

Sintomi: il file (< 5 MB, quindi relativamente piccolo) è in parte attraverso il trasferimento, come indicato dalla barra di avanzamento, quando improvvisamente si ottiene il messaggio di errore HTTP.

Anche se hai impostato upload_max_filesize nel tuo php.ini, dovresti anche controllare che lo post_max_size sia (almeno) grande. Ricordarsi di riavviare php5-fpm.

Se ancora non funziona, modificare il file nginx.conf (in Debian/Ubuntu è /etc/nginx/nginx.conf) e aggiungere questo nel http blocco:

client_max_body_size 100m; 

quindi riavviare nginx.

+0

grazie mille! questo mi ha aiutato! – n0n0bstan

+0

Grazie, funziona dopo aver usato 'client_max_body_size 100m;' Solo una preoccupazione, è sicuro? – StreetCoder

+0

@StreetCoder WordPress ha una lista bianca di tipi di file che possono essere caricati - il filtro [upload_mimes] (https://codex.wordpress.org/Plugin_API/Filter_Reference/upload_mimes) consente di regolare questo. –

1

Per i futuri lettori, siamo riusciti a trovare la soluzione a questo dopo una dura giornata di ricerca.

C'è un'impostazione nel file fcgid.conf (per me in/etc/apache2/mods-enabled): FcgidMaxRequestLen. Vedi https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen

Ho impostato in byte una lunghezza appropriata e tutto funziona. Sembra che l'apache abbia cambiato il loro modo di pensare sul valore predefinito (che ora è 131072 byte):

Prima del 2.3.6, questo valore predefinito era 1GB. La maggior parte degli utenti di versioni precedenti dovrebbe utilizzare questa direttiva per impostare un limite più ragionevole.

0

server di forse hanno imagick installato come libreria di default, per una correzione per wordpress

ho messo il seguente codice nel mio file functions.php. Funziona!

add_filter('wp_image_editors', 'change_graphic_lib'); 

function change_graphic_lib($array) { 
    return array('WP_Image_Editor_GD', 'WP_Image_Editor_Imagick'); 
} 
+0

dove si trova function.php? – Ampersanda

0

Per me, si è verificato un errore "http errore" quando php è in esecuzione in modalità cgi veloce.

"MaxRequestLen" da mod_fcgid stava limitando la dimensione del caricamento del file e wordpress lanciava "errore http".

è necessario aggiungere le seguenti configurazioni nel vostro httpd.conf (apache2.conf su ubuntu 14):

<IfModule mod_fcgid.c> 
    # 20MB 
    MaxRequestLen 20000000 
</IfModule> 
0

Ho provato tutti i cambiamenti php.ini comunemente suggerite così come i cambiamenti wp-config con senza fortuna. Alla fine ho trovato qualcuno che suggeriva di guardare i dettagli XHR async-upload.php nel mio browser e ha scoperto che il nostro firewall stava contrassegnando il caricamento come un cavallo di Troia (MalAgent.H_9218 per essere specifico) per qualche motivo. Quindi non dimenticare di controllare lì, potrebbe identificare anche altri possibili problemi di caricamento.

istruzioni Chrome: Hit F12 e selezionare la scheda di rete, quindi tentare un upload con WordPress, assicurarsi che la riga di filtro è su Tutte o XHR, nel riquadro in basso a sinistra individuare e selezionare async-upload.php , nel riquadro in basso a destra selezionare l'anteprima.

-1

Il nostro problema era che il nostro sistema di bilanciamento del carico ha esaurito lo spazio su disco. Assicurati di impostare una rotazione del registro che cancelli i registri meno recenti dopo un periodo.

Problemi correlati