標籤:
一、問題
公司有一台老的Linux伺服器,Apache+MySQL+Php結構的, 要把最近做的一個PHP項目部署到上面,做為測試環境,
由於新項目是用PHP的YII架構開發的,而YII架構的資料訪問使用PDO介面的,因此需要PDO_Mysql驅動的支援。
【註:當前,PDO已成為PHP訪問資料庫的主要方式,這也是面向介面編程的設計思想。
PHP高版本也都內建了PDO、PDO-SQLite、PDO-Mysql的支援。相信現在大部分的PHP伺服器上都支援PDO了。
如果您現在還在用老的 mysql mysqli方式的話,不放用用PDO。】
二、思路
為PHP配置PDO-Mysql驅動無非兩種方式,
一種是重新編譯、安裝、配置PHP,在configure的時候加上--with-pdo-mysql參數即可,
另外一種就是在現有PHP的基礎上,增加一個pdo-mysql擴充。
本著方便快速的原則,我們選擇了在現有基礎上增加pdo-mysql driver的方式。
三、具體操作
0、準備
首先要知道自己當前的php安裝在什麼位置,假設位於 /user/local/php
目錄結構大致是這樣的,
bin
etc
include
lib
logs
man
找到這幾個檔案,下面會用到:
lib/php.ini php的設定檔,想必您不會陌生,也有可能在etc目錄下,看您的具體情況
bin/phpize 這是在不重新編輯php的情況下,為php增加新的擴充的
bin/php-config php-config是個指令檔,用來得到一些php的相關資訊,比如php安裝在哪個目錄,擴充庫路徑是什麼等等。 如果您的系統中安裝了不止一個php版本, 這個參數會比較有用,用來指定您的擴充安裝到哪個php版本上。
另外,要知道自己的Mysql安裝在什麼地方,
這裡假設位於 /usr/local/mysql
1、下載pdo-mysql驅動的源碼
網址在 http://pecl.php.net/package/PDO_MYSQL ,從官方網頁可以看到這種方式已經不被鼓勵使用了,
因為PDO都已經整合到PHP核心中了,只需編譯的時候加個參數即可。
以下步驟按順序操作:
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
這時,pdo-mysql驅動就已經編譯完成了,
一般就在這個目錄
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
這裡是php擴充的存放位置,可能已經有了很多其他的擴充了,如memcache.so
查看一下該目錄,應該已經可以看到 pdo_mysql.so 庫檔案了。
2、配置php.ini檔案
vi /usr/local/php/lib/php.ini
找到 extentions 這一個配置段, 接著增加 pdo_mysql.so 就行了
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = "memcache.so"
extension = "pdo_mysql.so"
3、重啟apache伺服器,就算完成了
apache/bin/apachectl restart
4、phpinfo看一下,是否生效
寫一個php檔案,簡單的一句話 phpinfo()
開啟 http://www.aaa.com/test.php
搜尋pdo
會看到如下的提示,說明pdo已經支援mysql驅動了,就可以在php中通過pdo操作mysql資料庫了。
PDO driverssqlite, sqlite2, mysql
php訪問資料庫PDO