5

Web GUI から Drupal をインストールできるサイトを構築しようとしています。

<?php

`drush site-install --yes --db-url=mysql://USER:PASSWORD@localhost:3306/DATABASE --account-name=DRUPAL_USER --account-pass=DRUPAL_PASSWORD --account-mail=contact@email.com --site-name=SiteName`;

?>

上記はスクリプトの抜粋です。ブラウザからスクリプトを実行しても何もしませんが、次のように www-data として実行しようとすると:

php install_script.php

すべてが完璧に機能します!ターミナルでDrushの出力を問題なく取得できます。

PHPスクリプトからDrupalのインストール/セットアップを行うためにDrushをトリガーする方法を誰か教えてもらえますか? 私は完全に道に迷っており、何が間違っているのかわかりません。

これについて何か助けていただければ幸いです!ありがとう。

4

4 に答える 4

3

PHPからこれを行うことで修正したようです:

<?php
exec('/usr/bin/php /var/www/drush/drush.php site-install --yes --db-url=mysql://USER:PASSWORD@localhost:3306/DATABASE --account-name=DRUPAL_USER --account-pass=DRUPAL_PASSWORD --account-mail=contact@email.com --site-name=SiteName');
?>

基本的に Drush pear パッケージを削除し、Drush 5.0 を手動で /var/www/drush にインストールしました。

于 2012-02-27T22:51:43.270 に答える
2

phpexec関数はどうですか?すなわち:

<?php
  exec('drush site-install --yes --db-url=mysql://USER:PASSWORD@localhost:3306/DATABASE --account-name=DRUPAL_USER --account-pass=DRUPAL_PASSWORD --account-mail=contact@email.com --site-name=SiteName');
?>
于 2012-02-27T11:54:01.413 に答える
1

(OSX で Acquia Dev Desktop を実行して) 私たちがシェルで当然と思っているほとんどすべてが利用できないことがわかりました。rules.module php eval() コンテキストで実行すると、結果が得られます。

# When running from web, drush doesn't have any environment set up,
# has no search paths for site-aliases, and maybe can't even find PHP.
$php = "/Applications/acquia-drupal/php5_4/bin/php";
$drush_php = "/Users/dan/.composer/vendor/bin/drush.php";
$drush_options = " --config=/Users/dan/.drushrc.php ";
$command = "$php $drush_php $drush_options $site_alias status";
$result = exec($command, $output, $return);
drupal_set_message(print_r(array($command, $result, $output, $return), 1));

もちろん、必要に応じてパスを調整してください。完全なコマンドは次のようになりました。

/Applications/acquia-drupal/php5_4/bin/php /Users/dan/.composer/vendor/bin/drush.php --config=/Users/dan/.drushrc.php @example.org.nz status
于 2015-03-18T12:36:56.113 に答える