『NextGEN Gallery』はワードプレスで簡単にギャラリー機能を実装できるため導入しているのですが、アプデをしたタイミングで画像ファイルがアップロードできない問題が発生しました。
色々試した結果、解決しましたので解決法をシェアします。
前提条件として僕の環境はWPをサブディレクトリにインストールしてルートディレクトリで表示しています。
『NextGEN Gallery』でファイルをアップすると出るエラーの内容
ファイルをアップすると「There was a problem uploading the file.」というエラーが出てアップできない状態です。
日本語訳:「ファイルのアップロード中に問題が発生しました。」
正直これだけだと何が原因なのかさっぱりです。
このエラーと同じ内容が表示された方は下記の方法で解決するかもしれません。
解決法:画像ファイルがアップできないのは『.htaccess』の記述が原因
早速解決法をご紹介します。
原因は2つあり、ルート上にある.htaccessの記述とWPをインストールしたサブディレクトリにある.htaccessです。
1つ目:ルート上にある.htaccess
「index.html・index.phpなしのURLに統一」する下記の記述を追加しているのが原因でした。
PHP
# index.htmlなしで統一
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://ドメイン名/\ [R=301,L]
これがなければファイルはアップできます。
2つ目:WPをインストールしたフォルダにある.htaccess
WPをインストールしたフォルダに.htaccessがあるか確認してください。ある場合は記述が間違っている可能性があります。
.htaccessがない場合と同様に下記の内容を記述しWPをインストールしているフォルダに入れればOKです。
下記の記述はWPをインストールした際に同フォルダ内にある.htaccessと同じ内容です
PHP
RewriteEngine On
RewriteBase /ワードプレスをインストールしているフォルダ名を入力/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ワードプレスをインストールしているフォルダ名を入力/index.php [L]
つまり
- WPをサブディレクトリにインストールしている
- URLの統一化をしていている
- サブディレクトリ内に.htaccessが無い、もしくは記述が間違っている
この3つが組み合わさっている場合に今回のエラーが起きるようです。
『NextGEN Gallery』でファイルがアップできないエラーが起きた経緯
僕はWPをサブディレクトリにインストールしてルートディレクトリで表示しています。この方がセキュリティーも高いですし、整理されてスッキリします。
WordPressをサブディレクトリにインストールする方法はこちらの記事でご紹介しています。
-
WPをサブディレクトリにインストールしURLは直下にする方法
このようなお悩みを解決する記事をご用意しました。 ワードプレス(WP)をサブディレクトリにインストールするとそのURLは下記のようになります。 https://ドメイン名/サブディレクトリ名/ しかし ...
続きを見る
この「WPをサブディレクトリにインストールしてルートディレクトリで表示」するための設定でWPの中にある.htaccessをルートディレクトリへコピーします。
どうやら僕はコピーではなく移動させてしまっていたようです。
そのため上で説明した条件に当てはまりファイルがアップできない問題が発生してしまいました。
プラグインのアップデート前までは使えていたので、バージョンによっては条件に当てはまっていても大丈夫なようです。
画像ファイルがアップできないエラー解決までに試したこと
Google検索し同じ状況の人がいない調べ、いくつか試したので試したことをまとめておきます。
WordPressのプラグインの停止
エラーになってまず疑うのが他のプラグインとの干渉です。インストールしているプラグインを一つずづ停止しましたが何も変わりませんでした。
.htaccessが原因ではない場合は、プラグインの干渉が原因の場合もあるようです。
パーミッション変更とキャッシュの削除
下記のブログで紹介されている2つの方法を試しました。
- 『NextGEN Gallery』でファイルがアップされるフォルダ『wp-content』の中にある『uploads』のパーミッションを『707』に変更する方法
- プラグインを使ってキャッシュを削除する方法
参考WordPressで画像ファイルがアップロードエラーする場合の2つの解決法
まとめ:もうアプデは怖くない
『NextGEN Gallery』をアップデートしてファイルがアップできなくなるエラーが起きたのは、過去2回ありました。最初は次回のアプデで直るだろうと思っていましたが、一向に直りません。
今後も同じことがあると古いバージョンを使い続けないといけないので、サーバー引っ越しのタイミングで色々比較し原因を突き止めることができました。
同じようにファイルがアップできないエラーになった方はぜひ試してみてください。