wordpressでプラグインをインストールしようとした際に「pclzip_err_missing_file (-4) missing archive file」とエラーが出てインストールできない事態になったので解消方法をまとめました。
はじめに
このエラーは何個かエラーのパターンがあるような記述があったので今回記事にしたのは管理人が実際に修正したエラーの解消方法になります。
他のパターンでのエラーと解消方法が分かった場合、その都度追記しようかと思います。
原因
始めにこのエラーの原因を調べてみました。
まずエラーメッセージの全文を見てみましょう
インストールに失敗しました: パッケージをインストールできませんでした。 PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file '/tmp/〇〇〇〇.tmp'
メッセージだけ見ると「/tmp/〇〇〇〇.tmp’」の部分が気になります。
とりあえずエラーコードのようになっている「PCLZIP_ERR_MISSING_FILE (-4)」で検索してところ次のようなことがわかりました。
プラグインをインストールする際に一時ディレクトリにzipファイルをダウンロードしている
プラグインをインストールする際、一時ファイルにzipファイルをダウンロードする必要があります。ですがこの一時ファイルが存在しない場合、エラーが発生するようです。
それでは原因が分かったところで次にエラーを解消しましょう。
修正方法
一時ファイル用ディレクトリの作成
cd {wordpress path}/wp-content
mkdir tmp
{wordpress path}はワードプレスのルートディレクトリになります。
一時ファイル用ディレクトリの権限を変更
新規で作成したディレクトリは所有者とグループが作成したユーザーの物になるため変更します。
chown apache:apache tmp
この時「apache」としている箇所はwebサーバを実行しているユーザにする必要があります。
一般的にapacheならapache、nginxならnginxになっていると思います。
レンタルサーバなどは何になっているかわからないので調べてからやるようにお願いします。
wp-config.phpの修正
今の状態だとディレクトリを作成しただけなので実際にwordpressが一時ファイル用ディレクトリを認識していない状態です。
なのでwp-config.phpに次のコードを追記してください。
define('WP_TEMP_DIR', ABSPATH . 'wp-content/tmp');
wp-config.phpはwordpressのルートディレクトリにあると思います。
これで修正は終わりです。
恐らく直っていると思うのでプラグインを再度インストールしてみましょう。
コメント