Как установить Drupal только из командной строки?

1797
hortitude

Вся документация по Drupal, которую я могу найти, содержит шаг «перейти к браузеру и продолжить установку там».

Как я могу выполнить эти шаги из моей командной строки?

Я пытаюсь создать сайт, на котором я могу запустить экземпляр AWS и установить Drupal и т. Д. Из командной строки.

0
Я не знаю, что такое «экземпляр AWS», но вы знаете, что можете (должны) перейти по URL-адресу * public * будущего веб-сайта? (Как и любой *, кто перейдет по этому URL, сможет продолжить установку.) Arjan 14 лет назад 0
Веб-сервисы Amazon. Nissan Fan 14 лет назад 1
Хм, я подумал, что этого не может быть ... Тогда я просто не понимаю вопроса. :-) Arjan 14 лет назад 0
Из любопытства почему установка браузера невозможна? Drupal - это веб-фреймворк, поэтому, по-видимому, в какой-то момент вам понадобится веб-доступ к нему. Почему бы не сделать стандартную установку с помощью браузера? Doug Harris 13 лет назад 0

7 ответов на вопрос

4
Ben

Вы хотите использовать сценарий обеспечения Drush .

Drush - это оболочка командной строки и интерфейс сценариев для Drupal, настоящего швейцарского армейского ножа, призванного облегчить жизнь тем из нас, кто проводит часть рабочего времени, взламывая командную строку.

2
Tom Wijsman

Установка drupal из curl немного затруднителен из-за различных перенаправлений, которые делает скрипт установки. Вы также должны читать и писать куки в определенные моменты. Однако: я создал скрипт curl, который установит drupal из командной строки :) Примечание: Проверено только с drupal-6.x, php5 и расширением php curl.

Как примечание сайта, прежде чем делать это, вы должны рассмотреть возможность использования команды drush site-install!

Это было проверено на drupal-6.20 с PHP 5.3. Насколько мне известно, в Druapl 7 должен быть включен Javascript. И поэтому не будет устанавливать с локон! Вы также должны отметить, что для этой работы необходимо установить правильные файлы для settings.php и папки с файлами (в противном случае мы получим ошибки, а curl не завершится!)

Сначала мы добавляем класс curl.

<?php  // class found on php.net // http://php.net/manual/en/book.curl.php  class mycurl { protected $_useragent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'; protected $_url; protected $_followlocation; protected $_timeout; protected $_maxRedirects; protected $_cookieFileLocation = './cookie.txt'; protected $_post; protected $_postFields; protected $_referer ="http://www.google.com";  protected $_session; protected $_webpage; protected $_includeHeader; protected $_noBody; protected $_status; protected $_binaryTransfer; public $authentication = 0; public $auth_name = ''; public $auth_pass = '';  public function useAuth($use){ $this->authentication = 0; if($use == true) $this->authentication = 1; }  public function setName($name){ $this->auth_name = $name; } public function setPass($pass){ $this->auth_pass = $pass; }  public function __construct($url,$followlocation = true,$timeOut = 30,$maxRedirecs = 4,$binaryTransfer = false,$includeHeader = true,$noBody = false) { $this->_url = $url; $this->_followlocation = $followlocation; $this->_timeout = $timeOut; $this->_maxRedirects = $maxRedirecs; $this->_noBody = $noBody; $this->_includeHeader = $includeHeader; $this->_binaryTransfer = $binaryTransfer;  $this->_cookieFileLocation = dirname(__FILE__).'/cookie.txt';  }  public function setReferer($referer){ $this->_referer = $referer; }  public function setCookiFileLocation($path) { $this->_cookieFileLocation = $path; }  public function setPost ($postFields) { $this->_post = true; $this->_postFields = $postFields; }  public function setUserAgent($userAgent) { $this->_useragent = $userAgent; }  public function createCurl($url = 'nul') { if($url != 'nul'){ $this->_url = $url; }  $s = curl_init();  curl_setopt($s,CURLOPT_URL,$this->_url); curl_setopt($s,CURLOPT_HTTPHEADER,array('Expect:')); curl_setopt($s,CURLOPT_TIMEOUT,$this->_timeout); curl_setopt($s,CURLOPT_MAXREDIRS,$this->_maxRedirects); curl_setopt($s,CURLOPT_RETURNTRANSFER,true); curl_setopt($s,CURLOPT_FOLLOWLOCATION,$this->_followlocation); curl_setopt($s,CURLOPT_COOKIEJAR,$this->_cookieFileLocation); curl_setopt($s,CURLOPT_COOKIEFILE,$this->_cookieFileLocation);  if($this->authentication == 1){ curl_setopt($s, CURLOPT_USERPWD, $this->auth_name.':'.$this->auth_pass); } if($this->_post) { curl_setopt($s,CURLOPT_POST,true); curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields);  }  if($this->_includeHeader) { curl_setopt($s,CURLOPT_HEADER,true); }  if($this->_noBody) { curl_setopt($s,CURLOPT_NOBODY,true); } /* if($this->_binary) { curl_setopt($s,CURLOPT_BINARYTRANSFER,true); } */ curl_setopt($s,CURLOPT_USERAGENT,$this->_useragent); curl_setopt($s,CURLOPT_REFERER,$this->_referer);  $this->_webpage = curl_exec($s); $this->_status = curl_getinfo($s,CURLINFO_HTTP_CODE); curl_close($s);  }  public function getHttpStatus() { return $this->_status; }  public function __tostring(){ return $this->_webpage; } } 

И теперь мы создаем скрипт с классом curl.

<?php  include_once "curl.inc";  // your site $site_url = 'http://drupal';  // profile $profile = 'default';  // locale $locale = 'en';  // database $db_path = 'drupal';  // database user $db_user = 'root';  // database pass $db_pass = 'password';  // database host $db_host = 'localhost';  // name of site $site_name = 'site_name';  // site email $site_mail = 'site_mail@site.com';  // admin account name $account_name = 'admin';  // admin account email $account_mail = 'admin@admin.dk';  // admin account pass $account_pass = 'admin1234';  // date time zone $date_default_timezone = '-39600';  // use clean url. $clean_url = '1';  // update status module $update_status_module = '1';  // end of settings // create a url for curling db settings $url_str = "db_path=$db_path&"; $url_str.= "db_user=$db_user&"; $url_str.= "db_pass=$db_pass&"; $url_str.= "db_host=$db_host&"; $url_str.= "db_prefix=&"; $url_str.= "db_port=&"; $url_str.= "op=Save and continue" . "&"; $url_str.= "form_id=install_settings_form"; $url_str = urlencode($url_str);  $url = "$site_url/install.php?profile=$profile"; $curl = new mycurl($url, true); $curl->createCurl(); echo $curl;  $url = "$site_url/install.php?profile=$profile&locale=$locale"; $curl = new mycurl($url, true); $curl->setPost($url_str); $curl->createCurl(); echo $curl;  $url = "$site_url/install.php?profile=$profile&locale=$locale&op=do_nojs&id=1";  $curl = new mycurl($url, true); $curl->setPost($url_str); $curl->createCurl(); echo $curl;  $url = "$site_url/install.php?profile=$profile&locale=$locale&op=finished&id=1";  $curl = new mycurl($url, true); $curl->setPost($url_str); $curl->createCurl(); echo $curl;   // set settings for loading database with site base settings $url_str = "site_name=$site_name&"; $url_str.= "site_mail=$site_mail&"; $url_str.= "account[name]=$account_name&"; $url_str.= "account[mail]=$account_mail&"; $url_str.= "account[pass][pass1]=$account_pass&"; $url_str.= "account[pass][pass2]=$account_pass&"; $url_str.= "date_default_timezone=$date_default_timezone&"; $url_str.= "clean_url=$clean_url&"; $url_str.= "form_id=install_configure_form&"; $url_str.= "update_status_module[1]=$update_status_module";   $url = "$site_url/install.php?profile=default&locale=en"; $curl = new mycurl($url, true); $curl->setPost($url_str); $curl->createCurl(); echo $curl;  die(); ?> 

- Установите Drupal с помощью cURL

1
Nissan Fan

Вы можете записать шаги URL с помощью cURL .

Как это сделать? Tom Wijsman 12 лет назад 0
0
Annan

Вы можете использовать расширение под названием Densite . Это будет сделано для 6.x и 5.x - тестируйте только на Ubuntu.

Ссылка на установку drupal с curl не работает.

Установка Drupal 6 с помощью командной строки с Drush и Twill

0
databrace

Рабочий скрипт Curl можно найти здесь: http://www.os-cms.net/content/article/view/1

0
Catalin Balan

Не стесняйтесь проверить модуль drush_site_install6, доступный здесь: http://drupal.org/project/drush_site_install6

0
Pitto

Как насчет использования текстового браузера Lynx ?