我正在使用 MAMP 开发一个 symfony 项目。
我正在尝试使用此脚本从终端将数据加载到 sql 中:
php symfony doctrine:insert-sql
我收到这个错误:
找不到名为 mysql 的驱动程序
论坛已经解释了你应该启用
pdo_sql
。
这在
MAMP/conf/php5.2/php.ini
和MAMP/conf/php5.3/php.ini
中启用
经研究的文档指出,CLI 中的
php.ini
文件与位于 apache 中的 php.ini
文件不同。
如何在 CLI 中定位和编辑
php.ini
文件,它明显不同于位于 MAMP 目录中的文件?
在命令行上运行:
php -info | grep Confi
它应该给你这样的输出
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => (none)
但您不必编辑它。您可以简单地使用 MAMP 使用的那个:
php -c /path/to/your/php.ini symfony doctrine:insert-sql
OK,我对多个文件做了多次修改。我不确定它从哪里开始工作,但现在可以开始了。我将完成我的编辑,希望它能帮助其他人解决这个问题。
首先,我在终端中使用此脚本使文件在 Finder 中可见:
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
其次,我使用终端(感谢 Cassy)使用他提供的脚本找到了我的 CLI php.ini 文件所在的位置:
php -info | grep Confi
这输出类似于:
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /private/etc/php.ini
此位置不 正确激活 symfony 使用 MAMP 所需的 pdo_mysql.so 文件。
所以,在锤击家蝇时尚的过程中,我介绍了这些步骤:
打开 /Applications/MAMP/conf/php5.3/ 中的 php.ini 并复制以下行:
extension=pdo_mysql.so
打开 /private/etc/ 中的 php.ini(此处必须将隐藏文件设置为可见),并将上述代码(扩展名=pdo_mysql.so)粘贴到该文件中。我把它粘贴在注释掉的扩展名下,但我认为这不重要。
在 Users 目录中打开 .bash_profile(这通常是您的计算机名称,即 Carey、Steve、Holly)
插入以下代码:
导出路径=:/Applications/MAMP/bin/php5.3/bin
最后,打开httpd.conf并粘贴以下代码:
php_value include_path "/Applications/MAMP/conf/php5.3/php.ini" PHPIniDir "/Applications/MAMP/conf/php5.3/php.ini"
重启 Apache 后,我在终端中查看了我的 php 信息:
php -i
它是这样说的:
Configuration File (php.ini) Path => /Applications/MAMP/conf/php5.3
Loaded Configuration File => /Applications/MAMP/conf/php5.3/php.ini
现在在终端中,输入 php -m,它会给你一个 php 模块列表。在列表中查找 pdo_mysql。
如果它在那里,使用 symfony 来构建和填充你的数据库应该可以工作。