2026年10月17日
2026年10月17日
WordPressで「このファイルの種類はセキュリティ上の理由」エラーを解決
はじめに
この記事では、WordPressサイトで発生する「このファイルの種類はセキュリティ上の理由により許可されていません」という警告メッセージを解消するための対策と具体的な手順について解説します。これらのエラーは、通常、アップロードされるファイルタイプがサーバー設定やWordPress自体のセキュリティポリシーによって制限されている場合に発生します。
症状・背景
このテーマが必要になる主な場面:
- サイト管理者が特定のファイル形式(例えば、.exe, .batなど)をアップロードしようとした時
- ファイルサイズやその他の設定がサーバーによって制限されている場合
- WordPressプラグインやテーマが独自にファイルタイプを制限している場合
手順・設定方法
ステップ1: 許可するファイルタイプの追加
# wp-config.phpを編集して、アップロード可能なファイルタイプを拡張します。
# 以下の行をwp-config.phpに追加または編集してください。
define('ALLOW_UNFILTERED_UPLOADS', true);
# .htaccessを編集し、サーバー側の制限を緩和します。
# ファイルの最初か最後に以下を追加します。
php_flag file_uploads on
AddType text/plain .exe
AddType application/octet-stream .bat
ステップ2: wp-config.phpでのファイルサイズの調整
# wp-config.phpを開き、以下の行を追加または編集して最大アップロードサイズを増やします。
define('WP_MEMORY_LIMIT', '64M');
@ini_set( 'upload_max_size' , '100M' );
@ini_set( 'post_max_size', '100M');
# ファイルの送信制限も考慮して、php.iniファイルを編集します。
file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
ステップ3: .htaccessでの追加設定
# .htaccessファイルを開き、以下の行を追加してファイルタイプの制限を緩和します。
<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>
# また、以下のようにリクエストスイッチを無効化することでセキュリティ設定を調整できます。
php_flag magic_quotes_gpc off
ステップ4: ファイルの監視とトラブルシューティング
# エラーが解決したかどうか確認するために、ファイルアップロードテストページを作成します。
# 以下のPHPスクリプトをサーバーにアップロードし、アクセスしてみます。
<?php
$uploaddir = '/var/www/example.com/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "ファイルがアップロードされました。\n";
} else {
echo "エラー: ファイルは正常にアップロードされませんでした。\n";
}
?>
注意事項
- 安全な設定変更を行うため、必ずバックアップを取ってから実施してください。
- 信頼できるファイルのみをアップロードし、常に最新のセキュリティパッチを適用するようにしましょう。
- サーバー設定を適切に管理することで、サイトのパフォーマンスと安定性を維持します。
まとめ
1. 安全な設定変更: ファイルタイプやファイルサイズを制限する前に、まずセキュリティ上のリスクを考えることが重要です。
2. 詳細なトラブルシューティング: 各ステップで問題が発生した場合は、ログファイルなどを確認して原因を探ります。
3. 定期的なバックアップと更新: セキュリティパッチを適時適用し、データの安全性を維持します。
4. アクセス制御の強化: ファイルのアクセス権限や共有設定を見直すことでセキュリティが向上します。
関連記事: