Контейнер для тортов 2.2.1: Ошибки испеки

OSX работает под управлением MAMP. CakePHP 2.2.1 установлен и настроен должным образом (это означает, что у меня есть все зеленые полосы, когда я просматриваю файл Index.php, я завершил учебник по блогам и работаю над своим вторым приложением, с которым работают строительные леса). Теперь я пытаюсь испечь в первый раз.

В кулинарной книге (и других) я установил новую копию торта в каталог (каталог моих пользователей), а затем поместил переменную пути в мой файл .bash_profile export PATH="$PATH:/Users/p_scott/cake221/app/Console" после чего я смог войти в Терминал, напечатать cake и принести консоль. Вы можете видеть, что до этого момента я вызывал консоль из каталога приложений.

Сначала я попытался cake bake с терминала с помощью параметра -app и обозначил путь к моим практическим приложениям. В первый раз, когда я это сделал, я получил следующее

  Welcome to CakePHP v2.2.1 Console ------------- App : app Path: /Applications/MAMP/htdocs/blog/app/ ------------- Interactive Bake Shell --------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) > c -------------------- Bake Controller Path: /Applications/MAMP/htdocs/blog/app/Controller/ -------------------- \Use Database Config: (default/test) [default] > ,  Welcome to CakePHP v2.2.1 Console ------------- App : app Path: /Applications/MAMP/htdocs/blog/app/ ------------- Interactive Bake Shell --------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) > c -------------------- Bake Controller Path: /Applications/MAMP/htdocs/blog/app/Controller/ -------------------- \Use Database Config: (default/test) [default] > 

Независимо от того, что я вложил в базу данных (если я оставлю ее пустой, она снова спрашивает меня), но любой ответ дает мне следующую ошибку:

  Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/p_scott/cake221/lib/Cake/Model/Datasource/Database/Mysql.php, line 149] Error: Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created. #0 /Users/p_scott/cake221/lib/Cake/Model/Datasource/DboSource.php(260): Mysql->connect() #1 /Users/p_scott/cake221/lib/Cake/Model/ConnectionManager.php(101): DboSource->__construct(Array) #2 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ModelTask.php(906): ConnectionManager::getDataSource('default') #3 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(396): ModelTask->getAllTables('default') #4 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(419): ControllerTask->listAll(NULL) #5 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(136): ControllerTask->getName() #6 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(61): ControllerTask->_interactive() #7 /Users/p_scott/cake221/lib/Cake/Console/Command/BakeShell.php(113): ControllerTask->execute() #8 /Users/p_scott/cake221/lib/Cake/Console/Shell.php(393): BakeShell->main() #9 /Users/p_scott/cake221/lib/Cake/Console/ShellDispatcher.php(201): Shell->runCommand(NULL, Array) #10 /Users/p_scott/cake221/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch() #11 /Users/p_scott/cake221/app/Console/cake.php(33): ShellDispatcher::run(Array) #12 {main} 

Как только я начал получать эту ошибку, я попытался перейти на терминал в папку <cake install dir>/app/Console и <different instance of cake install dir>/app/Console папки <different instance of cake install dir>/app/Console чтобы попробовать консоль из моих приложений. Я либо получаю те же ошибки, либо задает мне разные вопросы, например:

  What is the path to the project you want to bake? [/Users/p_scott/myapp] > /Applications/MAMP/htdocs/history/app What is the path to the directory layout you wish to copy? [/Applications/MAMP/htdocs/history/lib/Cake/Console/Templates/skel] > 

PHP CLI установлен и, похоже, работает

  PHP 5.3.8 (cli) (built: Dec 5 2011 21:24:09) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies 

Моя поддержка PDO, похоже, включена. В терминале я набрал:

  php --ri pdo PDO PDO support => enabled PDO drivers => mysql, sqlite, sqlite2 

У меня нет файла php.ini в Apache (потому что я нахожусь на Mac), но в каталоге PHP 5.36 у меня есть следующие расширения:

  extension=imap.so extension=yaz.so extension=mcrypt.so extension=gettext.so extension=pgsql.so extension=pdo_pgsql.so extension=pdo_mysql.so 

После перерыва я нашел статью (http://www.dereuromark.de/2011/10/31/freshly-baked-cake2-0-tips/), в которой говорится об изменении местоположения консоли в версии 2.0. Я должен попытаться использовать его из этого места ( <cake installed dir>/lib/Cake/Console ). Как только я попробовал это, у меня возникли вопросы о том, какой макет я хотел использовать, или … ОДНАЖДЫ, я смог заставить приложение bake попросить меня создать конфигурацию базы данных. Я прошел через этапы, и это закончилось этой ошибкой в ​​конце:

Fatal error: Class 'DATABASE_CONFIG' not found in /Applications/MAMP/htdocs/history/lib/Cake/Console/Command/Task/DbConfigTask.php on line 264

Это приводит меня к еще одной информации. Это моя конфигурация БД по умолчанию в файле <cake installation dir>/history/app/Config/database.php .

  class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cakeHistoryUser', 'password' => 'cakeHistoryPassword', 'database' => 'cake_history', 'prefix' => '', //'encoding' => 'utf8', ); 

Прежде чем публиковать этот вопрос (и всю эту информацию), я трачу некоторое время на качественное время, и, похоже, большинство моих проблем связаны с CLI, но я просто не вижу, где мне нужно что-то менять и часов и часов позже, Мне нужна помощь.

Помоги мне Оби Ван, ты моя единственная надежда

    Проблема в том, что вы пытаетесь взаимодействовать с базой данных через командную строку, однако PHP-CLI – это другая установка, чем тот, который подтвержден MAMP, поэтому он не знает о сервере базы данных.

    Попробуйте изменить localhost на 127.0.0.1 в файле app/Config/database.php и это должно сделать трюк.

    Что-то подобное произошло со мной, и самый простой способ заставить его работать, который я не вижу здесь, – это изменить localhost на 127.0.0.1 и добавить номер порта в конце, например, MAMP использует номер порта 8899, так что:

    "MySQL: хост = 127.0.0.1: 8889"