php-скрипт Drush|функции Drupal, такие как загрузка узла(), не найдены
Я успешно установил Drush в Ubuntu 12.04 и создал скрипт, содержащий следующую строку.
print_r(node_load(10));
Я вызываю скрипт с помощью drush php-script --uri=http://localhost myscript.php
Drush возвращает следующую ошибку.
Неустранимая ошибка PHP: Вызов неопределенной функции node_load()
Я также пытался использовать drush --uri=http://localhost cache-get
, но я получаю следующую ошибку.
Кэш команд - для запуска get требуется более высокий уровень начальной загрузки - вам нужно будет вызвать drush из более функциональная среда Drupal для выполнения этой команды.
Не удалось выполнить команду drush "кэш-получить".
Drush не смог запустить (загрузочную) базу данных Drupal.
Подсказка: Это может произойти, когда Drush пытается:
- загрузите сайт, который не был установлен или не имеет настроенной базы данных. В этом случае вы можете выбрать другой сайт с рабочей настройкой базы данных, указав URI для использования с параметром --uri в командной строке. Подробнее см.
drush topic docs-aliases
.- подключите базу данных через сокет. Файл сокета может быть неправильным, или php-cli может не иметь к нему доступа в закрытой оболочке. См. http://drupal.org/node/1428638 подробнее. Друш пытался подключиться к: Версия для Drupal: 7.26
URI сайта:http://localhost
Драйвер базы данных: mysql
Имя хоста базы данных: 127.0.0.1
Имя пользователя базы данных: имя пользователя// Это показано правильно
Имя базы данных: имя_базы_данных//Это показано правильно
Исполняемый файл PHP: /usr/bin/php
Конфигурация PHP: /etc/php5/cli/php.ini ОПЕРАЦИОННАЯ СИСТЕМА PHP: Linux
Версия Drush: 7.0-дев
Временный каталог Drush: /tmp
Конфигурация Drush:
Файлы псевдонимов Drush:
Корневой каталог Drupal: /opt/lampp/htdocs
Путь к сайту: сайты/по умолчанию
2 answers
Наконец-то я понял, чего не хватало.
В моем случае мне пришлось установить пакет mysql-client-core-5.5 с sudo apt-get install mysql-client-core-5.5
.
Я столкнулся с той же проблемой (user_load() и другие функции не были найдены), но у меня было другое решение.
Для меня оказалось, что мои привилегии sql в базе данных были неправильными.
Я обнаружил ошибку, запустив свой скрипт с опцией -d:
drush -d scr /path/to/my/script.php
Я заметил в журнале, что он выдал сообщение об ошибке при подключении к базе данных. Очевидно, я перепутал привы, когда устанавливал их. Я sql grant
изменил привилегии, и мой скрипт просто запустился хорошо.
Сообщение об ошибке о невозможности найти функцию было полным отвлекающим маневром.