我的CLI中的pdo_mysql扩展有问题。我正在使用本地LAMPP安装并制作一个info.php文件我可以看到我已经启用了PDO和mysql驱动程序。但是当我在命令行中写php --ri mysql
时,它返回扩展'mysql'不存在。
我已经阅读了php.ini,一个用于CLI,另一个用于浏览器,我看不到pdo配置的差异。 PDO被激活用于CLI,但是pdo_mysql没有激活,我找不到任何pdo_mysql.so文件或任何其他文件或行,告诉我它为什么在浏览器而不是从cli工作。有什么帮助吗?
非常感谢。
答案 0 :(得分:6)
我正在通过apt sudo apt-get install php5-cli
使用ubuntu + mysql(单独安装非灯泡)和php cli。 PDO默认安装,但没有安装相应的db驱动程序(在我的情况下为mysql)。这可以从命令行php --ri pdo
验证,这会导致PDO支持=>启用,PDO驱动程序=>(空白)
通过sudo apt-get install php5-mysql
解决这个问题,为mysql安装php5-mysql模块。显然,在安装php5-cli后执行此操作。如果您正在使用另一个数据库(例如postgres或odbc),请通过sudo apt-cache search php5
答案 1 :(得分:1)
问题解决了。我有两个php安装,一个由LAMPP安装,具有所有必需的pdo驱动程序和一个安装在系统中(我不知道它是默认配备ubuntu还是我在某些时候安装它)启用了PDO但没有PDO驱动程序。 CLI使用第二个PHP,除非你告诉他。我正在使用CLI中的Doctrine,但我正在执行一个调用一些php代码的bash文件。在.doctrine文件的第一行,我可以告诉系统我想要使用什么PHP:
#!/root/to/lampp/php
它有效(实际上它并没有创建它应该创建的数据库表,但这是一个不同的问题,我仍然需要解决。