web-dev-qa-db-ja.com

DrushバックエンドAPIはWebアクセス可能なAPIですか?どのようにインストールしますか?

サイトエイリアスを使用して、コマンドラインからDrupal 6サイトを再び動作させるようにDrush 4.5を正常に構成しました。コマンドラインからsql-syncやrsyncなどを正常に実行しています。私が今やりたいのは、これらの関数をAPIを介してWeb上に公開することです。 Drushのドキュメントから、私はこれを実行できると信じるようになりましたが、これを実現する方法の詳細や、意図した設計の一部であるかどうかについては、いくらか不足しています。

ドキュメントを完全に誤解し、CLIのみのAPIがWeb経由で利用できるように設計されていると想定している可能性が非常に高いです。ただし、backend.incファイルは、HTTPを介してアクセス可能なREST AP​​Iについて話しているため、このAPIが実際に行うことについてはあいまいです。

これはほぼRESTful APIです。 @htp://en.wikipedia.org/wiki/RESTを参照
"http:// [server]/[apipath]/[command]?[arg1] = [value1]、[arg2] = [value2]"の代わりに、 "[apipath] [command]を呼び出します-[arg1] = [value1]-[arg2] = [value2] --backend "

これが実際に何を意味するのかは明確ではありません。Web呼び出しの「代わりに」と書かれているためですが、GET引数とPOST引数の違いと、Web呼び出しからどのように渡されるかについて説明します。

Drush APIがWeb経由で呼び出されることを意図している場合。 http://server.com/drush/drush.php/drupal-directory?argv1=@staging Drushが別のPHPソースにある場合、これを有効にするにはどうすればよいですか木? Drupalディレクトリからシンボリックリンクしますか?インクルードファイルをコピーまたはシンボリックリンクし、Drupalがそれを取得することを期待していますか?

3
chiffonade

以前の回答者が言ったように、drushはcliツールです。 Drupal関数をWebサービス経由で呼び出したい場合は、 services モジュールを試してください。複数のDrupalを管理したい場合Web UI経由のサイト、 aegir を試してください。

PHPからリモートでDrush関数を呼び出したい場合:$values = drush_invoke_process('@alias', 'drush-command', $args_array, $options_array);

エイリアスレコードの作成方法の例については、examples/example.aliases.drushrc.phpを参照してください。 '@alias'の代わりに、サイトレコード定義を含む配列を渡すか、[email protected]/path/to/drupal#mysite.comを使用することもできます。 drush_invoke_processの説明と$ values配列の内容については、drushのソースコードのコメントを参照してください。

4
greg_1_anderson

Drush.phpの上部にあるコメント/関数によると、それはCLIのみのツールです。スクリプトがコマンドライン経由でアクセスされない場合は、スクリプトを強制終了することさえあります。

if (!drush_verify_cli()) {
  die('drush is designed to run via the command line.');
}

...

function drush_verify_cli() {
  return (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0));
}
3
Clive

Drushのドキュメントに関する私の理解backend.phpはDrushを比較することです--backendとRESTサーバーはその動作を説明します。DrushはWebアプリケーションではなく、RESTサーバーであり、CLIのみです。

バージョン3以降、DrushはSSHを介したリモートホストでのコマンドの直接実行をサポートします。

drush [email protected]/path/to/drupal#mysite.com status
3
Pierre Buyle

このモジュールはバックエンドAPIを使用しませんが、DrushのWebアクセス可能なAPIを提供できます: https://drupal.org/project/drushweb

1
marion.bron