PHP 致命的エラー: crontab で cron-job として WP-CLI コマンドを実行すると、必要な「wp-salt.php」を開けません
P粉253518620
P粉253518620 2024-03-28 09:25:13
0
1
488

幸いにも私はすでに解決策を見つけているので、この質問は他の人が見つけられるように情報を投稿することを目的としています。

Cloudways サーバー上の crontab で cron ジョブとして Wordpress-CLI コマンドを実行してみました。このコマンドはターミナルでは問題なく直接実行されますが、crontab を使用して起動すると致命的な PHP エラーが発生して失敗します。

Wordpress-CLI の基本的なコマンドは次のとおりです。

wp migeratedb 構成ファイル [id]

crontab が実行されるコンテキストは通常​​不明であり、$PATH 変数が使用できない可能性があるため、必要な絶対パスを提供するようにコマンドを変更しました。

/usr/local/bin/wp migeratedb 設定ファイル [id] --path=/absolute/path/to/wordpress/core/files

同様に、この変更されたコマンドもターミナルから起動すると問題なく完全に実行されます。

最終的な crontab エントリは次のようになります:

0 5 * * * /usr/local/bin/wp migeratedb 設定ファイル [id] --path=/absolute/path/to/wordpress/core/files

スケジューラから実行すると、次のエラーが生成されます:

リーリー

いくつかの実験の後、

このエラーは、非常に基本的な を除くすべての WP-CLI コマンドで発生することがわかりました。

wp --info

、次の出力が生成されます:

リーリー

次の適応も試しましたが成功しませんでした:

  • 新しい wp-cli.phar をダウンロードし、コマンドで使用します。

  • 使用フォルダーのすべての権限を表示および変更する

  • 別のユーザーとして cron ジョブを実行してみてください。

  • 使用
  • /usr/bin/php

    wp-cli.phar を実行するようにコマンドを変更します。

P粉253518620
P粉253518620

全員に返信(1)
P粉790187507

私は最終的に、このエラーはホスティングプロバイダー (この場合は Cloudways) が wp-config.php ファイルで WordPress 設定をセットアップする方法に関係していることがわかりました。

ソルト認証キーとシークレット認証キーは、エラー メッセージ内で参照されるwp-salt.php。它可以通过以下方式直接在配置文件中引用:require('wp-salt.php')別のファイルに保存されます。 これは WordPress コアの一部ではなく、crontab は別の環境で実行されているため、ファイルが配置されている正しいディレクトリを判断できず、require() は致命的なエラーで失敗します。

これを修正するには、ファイルが常に設定ファイルと同じディレクトリから参照されるように、wp-config.php 中的行更改为 require(__DIR__.'/wp-salt.php'); の行を require(__DIR__.'/wp-salt.php'); に変更します。

もう 1 つのオプションは、WordPress コアと同様に、行を完全に削除し、wp-salt.php ファイルのコンテンツに置き換えることです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート