PHP中PDO_MYSQL擴展安裝的2種方法

字號:


    方法一
    看到CakePHP文檔要求安裝pdo_mysql擴展,于是就嘗試安裝了一下。
    這里我的系統(tǒng)是CentOS 6.0。如果你的系統(tǒng)是其他版本的Linux/Unix,可以參考。如果你的系統(tǒng)是Windows的,抱歉,以下內(nèi)容不適合你,請移步。
    首先是下載pdo_mysql擴展的源碼包。下載頁面在這里:??梢韵认螺d了然后用FTP傳到服務(wù)器。
    我是在復(fù)制了下載地址以后使用wget直接下載到服務(wù)器端的。
    # wget
    然后是解壓縮。
    # tar -zxvf PDO_MYSQL-1.0.2.tgz
    進入解壓后的目錄,然后執(zhí)行phpize。
    # /usr/local/php/bin/phpize
    Configuring for:
    PHP Api Version: 20100412
    Zend Module Api No: 20100525
    Zend Extension Api No: 220100525
    下面生成makefile。后面的兩個參數(shù)必須要添加,一開始我沒有添加,結(jié)果分別都提示找不到php-config和mysql的header文件。
    # ./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
    在make之前還要做一個mysql的header文件的軟連接。因為mysql安裝的時候指定了目錄,不做軟連接的話,還是找不到header文件。
    # ln -s /usr/local/mysql/include/* /usr/local/include/
    然后make和make install。
    # make
    # make install
    之后會提示如下,意思是擴展被安裝到了如下目錄里。
    Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
    為了方便,我把pdo_mysql.so文件移動到extensions目錄下。
    # mv /usr/local/php/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so /usr/local/php/lib/php/extensions/
    隨后就可以修改php.ini文件了。
    找到; extension_dir = “./”這一行,去掉注釋,并修改路徑。
    extension_dir = “/usr/local/php/lib/php/extensions/”
    這里經(jīng)過我測試,發(fā)現(xiàn)php只會從該目錄尋找擴展so,而并不尋找該目錄下的子目錄。所以之前我為了統(tǒng)一管理,把so文件都移動到該目錄下。
    找到; extension=php_pdo_mysql.dll這一行,去掉注釋,并修改后面的文件名。
    extension=pdo_mysql.so
    文件名不太一樣,這里要把php_前綴去掉,否則找不到文件。后面的dll是windows下的文件名,我們改成so。
    最后重啟apache就可以了。用phpinfo()查看發(fā)現(xiàn)已經(jīng)生效了。
    方法二
    PDO_MYSQL以下操作都在Linux 系統(tǒng)下操作
    1、下載 文件 或者 進入 在PHP源碼包中進入ext/pdo_mysql
    2、解壓文件
    tar zxvf PDO_MYSQL-1.0.2.tgz
    3、配置和編譯文件
    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
    注: 我的PHP安裝在 : /usr/local/php/ mysql 安裝在 : /usr/local/mysql 編譯的時候注意你自己的安裝目錄在哪里
    3、安裝到PHP配置下
    把這個記住,然后打開 php.ini文件,
    并添加一行
    extension=pdo_mysql.so
    windows PDO MYSQL擴展安裝
    php.ini中沒有開啟pdo,故修改php.ini,將形如下面的代碼前面去掉分號,修改后如下:
    extension_dir="E:/amp/php/ext" //這里配置為你自己的ext目錄路徑
    ......
    extension=php_mysql.dll
    ......
    extension=php_pdo.dll
    ......
    extension=php_pdo_mysql.dll
    重啟apache后訪問又繼續(xù)報以下錯誤:
    CDbConnection 無法開啟數(shù)據(jù)庫連線: could not find driver
    意思是無法找到數(shù)據(jù)庫驅(qū)動,我又用phpinfo看了一下,PDO確實是開啟了,但是PDO那一項中支持的數(shù)據(jù)庫顯示no value,說明無法加載php_pdo_mysql.dll這個擴展。經(jīng)過多次嘗試,包括更換php的版本,更換mysql的版本。但是均不奏效。難道真的無法開啟php的mysql pdo擴展了嗎?
    在網(wǎng)上查了又查,終于找到解決方案
    方法一:需要把php安裝目錄的路徑加入到系統(tǒng)環(huán)境變量PATH中,這樣就可以解決問題。
    方法二:因為我是在服務(wù)器上部署的,正在運行著的服務(wù)器,所以無法重啟,故也可將php安裝目錄下的libmysql.dll復(fù)制到windows目錄下
    重啟apache