web-dev-qa-db-ja.com

Bash vs WP-CLIからの異なる出力 PHP exec()

私は このパッケージ をWP-CLIにインストールしました。bashwp login createを実行すると問題なく動作しますが、PHP scriptWP-CLIexec("wp login create")を実行するとこのエラーが返されます。

エラー: 'login'は登録されているwpコマンドではありません。利用可能なコマンドについては 'wp help'を参照してください。

あなたは「プラグイン」を意味しましたか?

私はexec("whoami")からユーザーをチェックしました、そしてそれは同じです。どうやって問題を見つけることができますか?

編集

PHPでwp package listを実行すると、次のように返されます。

Error:パッケージ用のComposerディレクトリ '/.wp-cli/packages'を作成できませんでした。mkdir():権限が拒否されました

1
Ali Sh

アランシュレッサー によると/ワードプレススラックで:

パッケージがインストールされるフォルダは、サーバーユーザーのホームフォルダを使用するように設定されています。しかし、PHPからこのコマンドを実行しようとすると、Webサーバーのユーザーによって実行されていることになり、おそらく別のホームフォルダーがあり、そこにパッケージはインストールされません。

パッケージをシステムの一部として手動でロードするか(たとえば、サイトのComposerスタックに必要)、パッケージフォルダをユーザーとWebサーバーの両方で共有される場所に設定することができます(その後再インストールします)。

WP_CLI_PACKAGES_DIR環境変数でpackagesフォルダを設定することができます: https://make.wordpress.org/cli/handbook/config/#environment-variables

1
Ali Sh