2016-08-08 155 views
0

我試圖運行一個Symfony 3應用程序與從源7安裝的PHP 7,我得到一個丟失的PDO驅動程序異常。根據http://pecl.php.net/package/PDO_MYSQL,PDO_MYSQL擴展現在是PHP內核的一部分。如果我有PDO_MYSQL擴展(我必須,因爲它的核心),這是否意味着我也有mysql pdo驅動程序?PHP是缺少mysql pdo驅動程序

Q2.b)是否還需要進一步的運行時配置以確保驅動程序得到使用?

我已經嘗試添加

延長= php_pdo.so

延長= php_pdo_mysql.so

到我的加載php.ini文件。

Q2.a)這些是正確的擴展名嗎?我怎麼知道?
Q2.b)我甚至需要爲核心php元素提供擴展引用嗎?

最後:

Q3。我如何檢查我的PHP安裝是否包含mysql pdo驅動程序,以及如何確保它在運行時被加載?

感謝您的輸入。

編輯1:我在Linux Mint上運行。
編輯2:這裏有一對夫婦更多的細節我所看到的在我結束:

「在啓動內置的PHP服務器我得到以下信息: PHP的警告:PHP啓動:無法加載動態庫'/usr/local/lib/php/extensions/no-debug-non-zts-20151012/php_pdo.so' -/usr/local/lib/php/extensions/no-debug-non-zts-20151012/php_pdo.so:無法打開共享目標文件:沒有這樣的文件或目錄在未知的行0 PHP警告:PHP啓動:無法加載動態庫'/ usr/local/lib/php/extensions/no-debug-non- zts-20151012/php_pdo_mysql.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20151012/php_pdo_mysql.so:無法打開共享對象文件:第0行中未知的文件或目錄「

此消息向我建議擴展引用不正確或擴展名不存在。我使用了「dpkg -L php-mysql」,發現該軟件包安裝在「/ usr/share/doc/php-mysql」中,但是當我檢查php-mysql目錄時,我看到的只是一個更新日誌和一個版權文件(顯示隱藏)。這是包的真正安裝位置嗎?如果是這樣的話,應該在這個目錄中有更多的位置?

+0

取決於打包器'pdo_mysql'可能是一個額外的軟件包。就像dotdeb的jessie包一樣。 –

+0

看看'phpinfo'並尋找PDO MySQL。 ''?php phpinfo();' –

+0

'php -m'或'php -i | grep PDO'說? – Ekin

回答

2

。這意味着你在Linux上 - 你是否安裝PHP作爲一個包。您可能需要安裝pdo/mysql包 - PHP庫可能是「核心」,但不一定在主包中(令人困惑,但這僅僅意味着它不是PEAR交付的)。

sudo apt-get install php5-mysql 

或者,如果你正在運行PHP7:

sudo apt-get install php-mysql 

這應該會自動重新啓動Apache,但可以肯定,你可以這樣做:

sudo service apache2 restart 

的包安裝PHP -mysql應該把.so庫放在/usr/lib/php/yyyymmdd/之內 - 如果你已經安裝了PHP作爲一個包,它會在這裏尋找。

但是,由於您是從源代碼安裝的,似乎PHP正在尋找其他庫。您可以創建從/usr/local/lib/php/extensions/no-debug-non-zts-20151012/到軟件包安裝庫的符號鏈接。

+0

這是解決方案之一在發佈這個問題之前嘗試。我再次嘗試過,沒有任何效果。安裝此軟件包以使其正常工作後,我需要做些什麼? dpkg命令說它已成功安裝。 –

+0

@allen您需要重新啓動網絡服務器。如果ubuntu上的apache 2.4,'sudo service apache2 restart' –

+0

Hi @JeffPuckettII。好想法,但我已經做到了。我將在短期內發佈一些關於主要帖子的更多信息,希望能夠縮小可能的原因列表。 –

相關問題