drupal — фатальные ошибки Drush + Cygwin PHP

Мне пришлось переустанавливать / обновлять Cygwin на Windows 8.1, и у меня есть некоторые проблемы с Drush на моих сайтах Drupal 7.

Ранее я следовал этому руководству Вот Поэтому я попытался выполнить чистую установку drush и заметил, что теперь вы можете установить drush через pear.

pear channel-discover pear.drush.org
pear install drush/drush

Итак, в моем домашнем каталоге:

$ drush --version
Drush Version   :  6.2.0

Кажется, это работает, но когда я захожу в свой каталог, где находится мой веб-сайт Drupal, я получаю фатальные ошибки PHP, это похоже на PATH или что-то не работает, когда я запускаю drush оттуда:

$ cd /cygdrive/c/websites/www.mywebsite.com
$ drush
require_once(c:/websites/www.mywebsite.com/modules/system/system.module): failed to open stream: No such file or directory drupal.inc:21           [warning]
PHP Fatal error:  require_once(): Failed opening required 'c:/websites/www.mywebsite.com/modules/system/system.module' (include_path='.:/usr/share/pear') in /usr/share/pear/drush/includes/drupal.inc on line 21
require_once(c:/websites/www.mywebsite.com/modules/system/system.module): failed to open stream: No such file or directory drupal.inc:21           [warning]
PHP Fatal error:  require_once(): Failed opening required 'c:/websites/www.mywebsite.com/modules/system/system.module' (include_path='.:/usr/share/pear') in /usr/share/pear/drush/includes/drupal.inc on line 21

Моя текущая настройка:

  • Windows 8.1
  • Cygwin
  • Drupal 7
  • Для PHP я использую WAMP, но PHP работает в Cygwin

.

$ php -v
PHP 5.5.16 (cli) (built: Aug 24 2014 01:12:58)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

1

Решение

При использовании версии PHP Cygwin оператор require не распознает пути, начинающиеся с буквы диска. таким образом require 'C:\path-to-file' как правило, потерпит неудачу. Внутренне он видит «C:» как относительный путь и добавляет его в каталог по умолчанию, а не рассматривает его как абсолютный путь.

Если вы переписываете операторы require для использования __DIR__тогда вещи обычно работают.

require __DIR__ . '/modules/system/system.module';

0

Другие решения

Других решений пока нет …