Otázka: Pokoušel jsem se nahrát soubor PDF o velikosti 2 MB do MediaWiki a narazil jsem na 500 interní chyba serveru a zdá se, že k této chybě dochází vždy, když nahraji větší soubor. Rychle jsem ověřil php.ini , který měl níže uvedené hodnoty:
upload_max_filesize = 32M post_max_size = 20M
a níže je snímek httpd error_log.
ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required.
Používám Apache a MediaWiki verze 1.23.
Řešení:
Maximální velikost nahrávaného souboru a velikost POST lze ovládat dvěma způsoby – přes php.ini a mod_security rozšíření.
Zkontrolujte, zda je webový server povolen s rozšířením mod_security, jak je uvedeno níže:
# apachectl -M |grep security
Můžete také hledat modsecurity.d složku pod /etc/httpd a mod_security.conf soubor v /etc/httpd/conf.d/ . (Instalační cesta Apache se může ve vašem systému lišit).
Poznámka: Ve výchozím nastavení je mod_security v Apache povolen a také načítá několik doporučených konfigurací.
Otevřete /etc/httpd/conf.d/mod_security.conf soubor a hledejte níže uvedený řádek:
SecRuleEngine On
Můžete vypnout SecRuleEngine (SecRuleEngine Off) nebo upravte hodnoty SecRequestBodyLimit a SecRequestBodyNoFilesLimit .
Upozornění :Není dobrým zvykem deaktivovat mod_security, protože je to brána firewall webových aplikací, která zabraňuje vkládání SQL, útokům skriptování mezi weby, únosům relací, špatným uživatelským agentům a dalším škodlivým robotům. Místo toho upravte níže uvedené proměnné.
SecRequestBodyLimit 13107200 #12.5 MB SecRequestBodyNoFilesLimit 131072 #128kb
Po dokončení musíte restartovat webový server Apache
# /etc/init.d/httpd restart
V případě, že používáte sdílený webhosting a nemáte oprávnění správce restartovat webový server, můžete vytvořit .htaccess soubor, jak je uvedeno níže.
#Použití souboru .htaccess k vypnutí SecRuleEngine
<IfModule mod_security.c> <Files async-upload.php> SecFilterEngine Off SecFilterScanPOST Off </Files> </IfModule>
Výše uvedený úryvek se změní na async-upload.php. To je ono!