方法 1
CakePHP のドキュメントに pdo_mysql 拡張機能のインストールが必要であることがわかったので、インストールしてみました。
ここでの私のシステムはCentOS 6.0です。お使いのシステムが Linux/Unix の別のバージョンである場合は、それを参照できます。お使いのシステムが Windows の場合、申し訳ありませんが、次の内容はあなたには適していません。次に進んでください。
最初のステップは、pdo_mysql 拡張機能のソース コード パッケージをダウンロードすることです。ダウンロード ページは http://pecl.php.net/package/PDO_MYSQL にあります。まずダウンロードしてから、FTP を使用してサーバーに転送できます。
ダウンロードアドレスをコピーして、wgetを使ってサーバーに直接ダウンロードしました。
# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
それでは解凍します。
# tar -zxvf PDO_MYSQL-1.0.2.tgz
解凍したディレクトリに移動し、phpizeを実行します。
# /usr/local/php/bin/phpize
設定:
PHP API バージョン: 20100412
ZendモジュールAPI番号:20100525
Zend Extension API No: 220100525
以下にMakefileが生成されます。最後の 2 つのパラメータは追加する必要があります。最初は追加しませんでしたが、結果として php-config と mysql のヘッダー ファイルが見つかりませんでした。
# ./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
作成する前に、mysql ヘッダー ファイルへのソフト接続を行う必要があります。 MySQL のインストール時にディレクトリが指定されるため、ソフト接続を行わないとヘッダー ファイルは見つかりません。
# ln -s /usr/local/mysql/include/* /usr/local/include/
それではmakeしてmake installします。
#作る
#make install
以下のプロンプトが表示されます。これは、拡張機能が以下のディレクトリにインストールされていることを意味します。
共有拡張機能のインストール: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
便宜上、pdo_mysql.so ファイルを拡張ディレクトリに移動しました。
# 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/”
ここでテストした結果、php はこのディレクトリから拡張子のみを検索し、このディレクトリの下のサブディレクトリは検索しないことがわかりました。そこで以前は、統合管理のためにすべてのファイルをこのディレクトリに移動しました。
extension=php_pdo_mysql.dll という行を見つけてコメントを削除し、次のファイル名を変更します。
拡張子=pdo_mysql.so
ファイル名が異なります。ここで php_ 接頭辞を削除する必要があります。そうしないと、ファイルが見つかりません。以下の dll は Windows でのファイル名ですので、これに変更します。
最後にApacheを再起動します。 phpinfo() を使用して、それが有効になっていることを確認します。
方法 2
PDO_MYSQL 以下の操作はすべて Linux システム上で実行されます
1. ファイルをダウンロードするか、PHP ソースパッケージに ext/pdo_mysql を入力します
http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
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
作る
メイクインストール
注: 私の PHP は、/usr/local/php/ にインストールされています。 mysql は、/usr/local/mysql にインストールされています。コンパイルするときは、自分のインストール ディレクトリがどこにあるかに注意してください
3. PHP構成にインストールします
これを記憶してから、php.ini ファイルを開きます
そして一行追加
拡張子=pdo_mysql.so
Windows PDO MYSQL 拡張機能のインストール
PDO は php.ini で有効になっていないため、php.ini を変更し、次のようにコードの先頭からセミコロンを削除します。 変更は次のとおりです。
extension_dir="E:/amp/php/ext" //これを独自の ext ディレクトリ パスとして設定します……
拡張子=php_mysql.dll
……
拡張子=php_pdo.dll
……
拡張子=php_pdo_mysql.dll
Apache を再起動した後も、アクセスにより次のエラーが報告され続けます:
CDbConnection がデータベース接続を開けませんでした: ドライバーが見つかりませんでした
データベースドライバーが見つからないことを意味します。phpinfoで再度確認すると確かに有効になっていますが、PDOでサポートされているデータベースには値が表示されず、php_pdo_mysql.dll拡張機能をロードできないことがわかります。 phpのバージョンを変更したり、mysqlのバージョンを変更したりするなど、何度も試みた後。しかし、どれもうまくいきませんでした。 php の mysql pdo 拡張機能を有効にすることは本当に不可能ですか?
オンラインで検索して検索して、ついに解決策を見つけました
方法 1: 問題を解決するには、PHP インストール ディレクトリのパスをシステム環境変数 PATH に追加する必要があります。
方法 2: サーバーにデプロイし、サーバーが実行されているため再起動できません。そのため、PHP インストール ディレクトリにある libmysql.dll を Windows ディレクトリにコピーすることもできます
Apacheを再起動します