Вся документация Drupal, которую я могу найти, имеет шаг "движения к браузеру и продолжения установки там".
Как я могу выполнить эти шаги от своей командной строки?
Я пытаюсь иметь сайт, где я могу разжечь экземпляр AWS и установить Drupal и т.д. командной строкой.
Вы хотите использовать сценарий условия Drush.
Drush является оболочкой командной строки и пишущий сценарий интерфейса для Drupal, истинный швейцарский нож, разработанный для создания жизни легче для тех из нас, кто проводит часть нашего рабочего времени, взламывая далеко в командной строке.
Это - немного боли для установки drupal от завихрения из-за всех различных перенаправлений, которые делает сценарий установки. Также необходимо считать и записать cookie в точные моменты. Однако: Я сделал вихревой сценарий, который установит drupal из командной строки :) Отметьте: Только протестированный с drupal-6.x, php5 и php завихряются расширение.
Как примечание сайта прежде, чем сделать это, необходимо действительно рассмотреть использование drush команды установки сайта!
Это было протестировано на drupal-6.20 с PHP 5.3. Druapl 7 нужно было включить JavaScript насколько я вижу. И для этого не установит от завихрения! Необходимо также отметить, что корректные файлы для settings.php и папки должны быть приведены в порядок для создания этой работы (иначе, мы получим ошибки, и завихрение не будет compleate!)
Сначала мы добавляем вихревой класс.
<?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; } }
И теперь мы создаем сценарий с вихревым классом.
<?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(); ?>
Вы могли написать сценарий шагов URL с помощью ЗАВИХРЕНИЯ.
Рабочий Вихревой сценарий может быть найден здесь: http://www.os-cms.net/content/article/view/1
Вы могли использовать расширение под названием Densite. Это сделает, это для 6.x и 5.x - тестирует только на человечности все же.
Связь на установку drupal с завихрением разорвана.
Установка Drupal 6 с помощью Командной строки с Drush и Twill
Не стесняйтесь проверять модуль drush_site_install6 drush, доступный здесь: http://drupal.org/project/drush_site_install6
Что относительно того, чтобы использовать текстовый браузер Lynx?