蛋糕控制台2.2.1:烘烤的错误(cake console 2.2.1: Bake errors)

2019-09-20 17:43发布

OSX机器运转甲基苯丙胺。 2.2.1 CakePHP的正确安装和配置(意思是我有所有的绿色吧,当我浏览到index.php文件,我已经完成了博客教程和我的工作在我与脚手架已经启动并运行第二应用程序)。 现在,我想烤首次。

每菜谱(及其他),我装蛋糕的全新副本到一个目录(我的用户目录),然后把路径变量在我的.bash_profile文件中export PATH="$PATH:/Users/p_scott/cake221/app/Console"之后,我才得以进入终端上使用cake ,并有控制台上来。 你可以看到,到这一点,我是从app目录调用控制台。

我第一次尝试运行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] >

不管是什么,我把数据库(如果我留空白,再次问我),但任何回答给了我下面的错误:

    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文件夹,从我的应用程序/ s的范围内尽量控制台。 我要么得到同样的错误,或者问我不同的问题,如:

    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

我没有在Apache的一个php.ini文件(因为我在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

休息一会后,我发现,谈论控制台的位置在2.0变化的文章(http://www.dereuromark.de/2011/10/31/freshly-baked-cake2-0-tips/)。 我应该尝试使用它从该位置( <cake installed dir>/lib/Cake/Console )。 有一次,我想这一点,我不是得了什么布局我想用或问题...有一次,我是能够得到烘烤应用来问我创建一个数据库配置。 我一步步走到它筋疲力尽在结束这个错误:

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

这使我多了一个一块信息。 这是我的默认DB配置<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相关的,但我就是不明白,我需要后来改变一些东西,几个小时,我需要协助。

帮我欧比旺,你是我唯一的希望

Answer 1:

问题是你正试图通过在命令行数据库进行交互,但是PHP-CLI是一个不同的安装比一个由MAMP proveided所以它不知道数据库服务器。

请尝试更改localhost127.0.0.1在您的app/Config/database.php文件和应该做的伎俩。



Answer 2:

这样的事情发生在我身上,而最简单的方法,我发现使它工作,我看不出这里正在改变本地主机为127.0.0.1,并在结尾处增加的端口号,例如,甲基苯丙胺使用端口号8899,那么:

“MySQL的:主机= 127.0.0.1:8889”



文章来源: cake console 2.2.1: Bake errors