2017-05-23 5 views
0

MantisBT ne me laissera pas télécharger un fichier qui est plus grand que 1MB, il dit que le fichier est plus grand que la limite de PHP. MantisBT fonctionne sur un NAS Synology avec le DSM 6.1 actuel, il est installé via le centre de paquets. Ce paquet a une dépendance sur PHP 5.6, qui est installé à côté de PHP 7.0. Il est possible de se connecter via SSH et d'exécuter un sudo su.Augmenter la taille de téléchargement max pour MantisBT sur Synology NAS

Je /volume1/web/mantisbt/index.php modifié pour exécuter phpinfo() and die();, il montre le chemin de configuration /usr/local/etc/php56/php.ini qui dit 32MB pour les upload_max_filesize et post_max_size.

Sur la base de données back-end MariaDB j'ai couru ces requêtes via phpMyAdmin:

SET GLOBAL max_allowed_packet = 32000000; 
SHOW VARIABLES WHERE Variable_name = "max_allowed_packet"; 

Dont le résultat est 32000000, mais avec un autre SQL-client (et MantisBT probablement trop) je lis encore une valeur par défaut de 1048576 . Ce comportement est nouveau

Appliqué la réponse que j'ai donnée ci-dessous. L'erreur est toujours là. Édité le code MantisBT au point de l'erreur (file_api.php: 849), PHP renvoie l'erreur UPLOAD_ERR_FORM_SIZE dans $_FILES, ce qui signifie Valeur: 2; Le fichier téléchargé dépasse la directive MAX_FILE_SIZE spécifiée dans le formulaire HTML. Je rappelle qu'il n'y avait pas de ligne max_file_size dans php.ini ...

Édité à nouveau le code MantisBT. var_dump(config_get('max_file_size')); renvoie int(1000000). Bingo! Mais max_file_size n'est pas un ini-directive, où le définir? This post n'aide pas non plus. Mais this one fait.

La solution est d'éditer manuellement config_defaults_inc.php et de définir $g_max_file_size = 1000000; par ex. $g_max_file_size = 33554432;. Eh bien, n'était-ce pas une expérience amusante et prenante ...

Répondre

0

Pour modifier le MariaDB configuration file, utilisez un client SSH pour vous connecter au NAS (SSH doit être activé dans le panneau de configuration).

Dans la CLI, tapez:

sudo vi /etc/mysql/my.cnf 

Le mot de passe est le même que votre mot de passe admin. Ensuite, dans la section [mysqld], remplacez max_allowed_packet par la valeur souhaitée, par ex.

max_allowed_packet=32M 

Avec vi, vous pouvez activer le mode d'insertion en tapant i. Une fois terminé, tapez [ESC], :, wq suivi de [ENTER] (ou [RETURN]).

Ensuite, utilisez l'interface graphique du NAS pour redémarrer le package MariaDB via Package Center. Les modifications prennent effet après le redémarrage.