OpenPNE/ファイルアップロード設定


見出し


前書き (執筆:2008/06/20)

OpenPNEではファイルアップロードの機能を持っているが、デフォルト環境でOpenPNEのconfig.phpだけの設定変更では1MByteまでのファイルしかアップロードできない。

そこでファイルサイズの制限を含めて変更するファイルを覚書として記載。
(注:OpenPNEは 2.12.1で確認)

OpenPNE- config.php の修正

まずはここを変更しないと始まらない。

// ファイルアップロード機能を使用するかどうか
define('OPENPNE_USE_FILEUPLOAD', false);

// アップロードファイルのファイルサイズ制限(KB)
define('FILE_MAX_FILESIZE', 300);

// 許可する拡張子のリスト(カンマ(,)区切り)
// 未指定の場合は全て許可
//define('FILE_ALLOWED_EXTENTIONS', 'pdf,xls,ppt,zip');
define('FILE_ALLOWED_EXTENTIONS', '');

デフォルトでは上記の設定になっているので、各自好みの設定に変更する。
例として、ファイルサイズ上限を10MByteにして、許可するファイルを mp3、pdf とする場合

// ファイルアップロード機能を使用するかどうか
define('OPENPNE_USE_FILEUPLOAD', true);

// アップロードファイルのファイルサイズ制限(KB)
define('FILE_MAX_FILESIZE', 102400);

// 許可する拡張子のリスト(カンマ(,)区切り)
// 未指定の場合は全て許可
//define('FILE_ALLOWED_EXTENTIONS', 'pdf,xls,ppt,zip');
define('FILE_ALLOWED_EXTENTIONS', 'mp3,pdf');

これでOpenPNE側の変更は完了。

PHP - php.ini の修正

PHPの設定ファイル php.ini の設定を変更。
デフォルト設定では、2Mに設定されているので、これを10MByteに変更。

upload_max_filesize = 2M
  ↓↓↓
upload_max_filesize = 10M

これでapacheの再起動、もしくは設定再読み込みを行う。

# service httpd restart
   or
# service httpd reload

MySQL - my.cnf の修正

ここの設定変更が見落としすることが多い。

OpenPNEの場合、アップロードされたファイルもすべてDB上に保存されるため、MySQLで上限を上げなければいけない。

この設定を変更しなければ、どんなに上記2つの設定を変えても、1Mまでのファイルしかアップロードできずに、悩むことになる。

デフォルトでは

max_allowed_packet = 1M

となっている。

ここで一つ注意しなければいけないのが、DBに保存される場合、BASE64に変換されるため実サイズより大きくなる。
約130%ほど変換後のサイズが大きくなるため、それを見越したサイズを設定する。

max_allowed_packet = 14M

これでMySQLも同様に再起動を行う。

# service mysql restart

以上で、ファイルアップロード機能の設定変更は完了。



Last-modified: 2015-04-23 (木) 10:20:04 (966d)