MENU

【WordPress】スマイルサーバーで「チェックサムが一致しません」エラーが出た時の対処法

WordPress の本体アップデートしようとしたら「チェックサムが一致しません」って出て更新できない…!!🐧

スマイルサーバーの案件でこれにハマったので、原因と対処法をまとめました。

目次

まず結論

wp-config.php に1行追加して、一時ディレクトリを変更するだけ!!

// スマイルサーバーの /tmp 容量制限対策
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-tmp/');

あとは WordPress 直下に wp-tmp フォルダ(パーミッション 755)を作ればOK。
これだけで本体の自動更新が正常に動くようになります!

何が起きたか

スマイルサーバーで運用してるWordPressサイトで、本体のアップデートをかけたらこんなエラーが。

「チェックサムが一致しません」

え、なにこれ。ファイル壊れてる…?

しかもプラグインの更新は普通にできる。
WordPress 本体だけがダメ。

「本体だけ失敗するってどういうこと?」ってなりました。

原因:スマイルサーバーの /tmp 容量制限

調べたら、スマイルサーバーは /tmp ディレクトリの容量に制限がある んですね。

WordPress が本体を更新するとき、ZIPファイルを /tmp にダウンロードして展開する流れなんですが、WordPress本体のZIPはサイズが大きい。

なので途中でダウンロードが欠損しちゃう → チェックサムが合わない、というわけ。

プラグインのZIPは小さいから影響を受けなかった。
本体だけ失敗してた理由はこれでした。

解決策の解説

やることは3つ。

① wp-config.php に一時ディレクトリの設定を追加

// スマイルサーバーの /tmp 容量制限対策として、WordPressの一時保存先を変更
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-tmp/');

WP_TEMP_DIR を定義すると、WordPress が一時ファイルの保存先としてそのパスを使ってくれます。
サーバーの /tmp ではなく、自分のディレクトリ配下に保存するので容量制限を回避できる!

② wp-tmp フォルダを作成

  • 場所:WordPress インストールディレクトリ直下
  • パーミッション:755

FTPでフォルダ作って、パーミッション設定するだけ。

③ README.txt を置いておく(おすすめ)

後から見た人(自分含む)が「なにこのフォルダ?消していいの?」ってならないように、中にREADMEを置いておくのがおすすめ。

このフォルダは WordPress の一時ファイル保存用ディレクトリです。

スマイルサーバーでは /tmp の容量制限により、
WordPress本体の自動更新時にエラーが発生することがあるため、
wp-config.php にて WP_TEMP_DIR を本フォルダに変更しています。

削除しないでください。

README.txt があっても更新処理には一切影響しないので安心。

やりがちなNG

対応する時に注意すべきポイントも整理しておきます。

やりがちなこと結果
何もせず手動で毎回更新する❌ 手間だし、忘れてセキュリティリスクに
wp-tmp のパーミッションを 777 にする❌ セキュリティ上よくない。755 で十分
wp-tmp を作り忘れる❌ ディレクトリがないとエラーになる
READMEを置かずに放置❌ 後任が「不要フォルダ?」と消しちゃう可能性

まとめ

  • スマイルサーバーは /tmp に容量制限がある
  • WordPress本体のZIPが大きいため、ダウンロード途中で欠損 → チェックサムエラー
  • WP_TEMP_DIR で一時ディレクトリを自前のフォルダに変更すれば解決!!
  • 制作ミスじゃなくサーバー仕様起因なので、同じ環境なら標準対応として入れてOK

スマイルサーバーの案件では、最初からこの設定入れておくのが安心ですね。

参考

以上!!
誰かのお役に立てれば嬉しいです🐧

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次