Domanda: Stavo cercando di caricare un file PDF di dimensioni 2 MB in MediaWiki e ho riscontrato 500 errore interno del server e questo errore sembra verificarsi ogni volta che carico un file più grande. Ho verificato rapidamente php.ini , che aveva i valori seguenti:
upload_max_filesize = 32M post_max_size = 20M
e sotto c'è l'istantanea di httpd log_errori.
ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required.
Sto usando Apache e MediaWiki versione 1.23.
Soluzione:
La dimensione massima del caricamento del file e la dimensione POST possono essere controllate in due modi:tramite php.ini e mod_security estensione.
Verifica se il server web è abilitato con l'estensione mod_security come mostrato di seguito:
# apachectl -M |grep security
Puoi anche cercare modsecurity.d cartella in /etc/httpd e mod_security.conf file in /etc/httpd/conf.d/ . (il percorso di installazione di Apache potrebbe essere diverso nel tuo sistema).
Nota: Per impostazione predefinita, mod_security è abilitato in Apache e carica anche alcune configurazioni consigliate.
Apri /etc/httpd/conf.d/mod_security.conf file e cerca la riga sottostante:
SecRuleEngine On
Puoi disattivare SecRuleEngine (SecRuleEngine Off) o regola i valori di SecRequestBodyLimit e SecRequestBodyNoFilesLimit .
Avviso :non è una buona pratica disabilitare mod_security, poiché è un firewall per applicazioni Web che impedisce SQL Injection, attacchi di scripting incrociato, dirottamento di sessione, agenti utente dannosi e altri bot dannosi. Regola invece le variabili seguenti.
SecRequestBodyLimit 13107200 #12.5 MB SecRequestBodyNoFilesLimit 131072 #128kb
Al termine, è necessario riavviare il server Web Apache
# /etc/init.d/httpd restart
Nel caso, se stai utilizzando un web hosting condiviso e non hai il privilegio di amministratore per riavviare il server web, puoi creare .htaccess file come mostrato di seguito.
#Utilizzo del file .htaccess per disattivare SecRuleEngine
<IfModule mod_security.c> <Files async-upload.php> SecFilterEngine Off SecFilterScanPOST Off </Files> </IfModule>
Il frammento di cui sopra verrà trasformato in async-upload.php. Questo è tutto!