PDO_MYSQLをインストールする方法
PDO_MYSQLをインストールするには事前にMySQLクライアントのインストールが必要です。
[参考記事] MySQLのインストール
[参考記事] WindowsでMySQLをインストールする方法
[参考記事] PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
yum -y install mysql yum -y install mysql-devel
MySQLサーバもインストールするなら次のyumも必要になります。
yum -y install mysql-server
PHPをソースからインストールする場合
yumでインストールする場合
PECLからインストールする場合
インストールの確認
PHPをソースからインストールする場合
PHPをソースからインストールする場合はconfigureで『--with-pdo-mysql』を追加します。
$ ./configure --with-pdo-mysql 既存のオプション………
ここでPHPを更新する場合に注意が必要なのが、『--with-pdo-mysql』のみをオプションで付けるのではなく、phpinfo()などで既存に設定されているオプションを調べ、追加する形で『--with-pdo-mysql』を指定します。
yumでインストールする場合
yumでインストールする場合はphp-pdoとphp-mysqlをインストールするとインストールできます。
yum -y install php ← phpがインストールされていないなら yum -y install php-pdo yum -y install php-mysql
変更をApacheに反映させるにはApacheを再起動します。
service httpd restart または /etc/init.d/httpd restart
PECLからインストールする場合
PECLからダウンロードしてインストールする場合は次のようにします。
peclコマンドが使えるようにするにPEARをインストールします。
[参考記事] Unix・Linux版PHPにPEAR・PECLをインストールする方法
[参考記事] Windows版PHPにPEAR・PECLをインストールする
[参考記事] PEARを更新する方法
[参考記事] コマンドラインからpearを実行するとエラーが出る 環境変数PHP_PEAR_PHP_BINの設定
peclでダウンロードやインストールを行う前にチャネルを更新しておきます。
# pecl channel-update pecl.php.net Updating channel "pecl.php.net" Update of Channel "pecl.php.net" succeeded
PDO_MYSQLをダウンロードします。
$ pecl download PDO_MYSQL downloading PDO_MYSQL-1.0.2.tgz ... Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes) .....done: 14,778 bytes File PDO_MYSQL-1.0.2.tgz downloaded
次のように直接 peclのサーバから取得することも可能です。
$ wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tgz圧縮形式でダウンロードされるので解凍します。
$ tar xvf PDO_MYSQL-1.0.2.tgz package2.xml PDO_MYSQL-1.0.2/config.m4 PDO_MYSQL-1.0.2/CREDITS PDO_MYSQL-1.0.2/mysql_driver.c PDO_MYSQL-1.0.2/mysql_statement.c PDO_MYSQL-1.0.2/pdo_mysql.c PDO_MYSQL-1.0.2/php_pdo_mysql.h PDO_MYSQL-1.0.2/php_pdo_mysql_int.h PDO_MYSQL-1.0.2/php_pdo_mysql_sqlstate.h package.xml
解凍されたディレクトリに移動します。
$ cd PDO_MYSQL-1.0.2
このディレクトリにはconfigureは含まれていません。
$ ls CREDITS config.m4 mysql_driver.c mysql_statement.c pdo_mysql.c php_pdo_mysql.h php_pdo_mysql_int.h php_pdo_mysql_sqlstate.h
拡張モジュールのビルド環境を準備するために、phpizeコマンドを実行します。
$ phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 config.m4:104: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from... aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from... config.m4:104: the top level config.m4:104: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from... aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from... config.m4:104: the top level
これでビルドに必要なconfigureファイルなどが作成されます。
$ ls CREDITS acinclude.m4 autom4te.cache config.guess config.m4 configure install-sh missing mysql_driver.c pdo_mysql.c php_pdo_mysql_int.h run-tests.php Makefile.global aclocal.m4 build config.h.in config.sub configure.in ltmain.sh mkinstalldirs mysql_statement.c php_pdo_mysql.h php_pdo_mysql_sqlstate.h
あとはオプションを指定してインストールします。
$ ./configure --with-pdo-mysql=shared,/usr/local/mysql $ make $ make test $ su # make install
ここで次のようなエラーが出る場合はmysql-develがインストールされていません。
# configure: error: mysql_query
次のようなエラーが出る場合はパスが通っていません。
configure: error: Cannot find php_pdo_driver.h.
PHPがインストールされている場所から/usr/includeにシンボリックリンクを張ります。
ln -s /usr/include/php5 /usr/include/php
pecl installでダウンロードからインストールまでまとめて行うこともできます。
# pecl install PDO_MYSQL
インストールが終わったら、php.iniで拡張モジュールの設定をします。(yumでインストールした場合には不要)
php.iniに追記します。
; Enable pdo extension module extension=pdo.so ; Enable pdo_mysql extension module extension=pdo_mysql.so
または/etc/php.dにファイルを作成します。
/etc/php.d/pdo.ini
; Enable pdo extension module extension=pdo.so
/etc/php.d/pdo_mysql.ini
; Enable pdo_mysql extension module extension=pdo_mysql.so
php.iniの変更をApacheに反映させるにはApacheを再起動します。
service httpd restart または /etc/init.d/httpd restart
インストールの確認
phpinfo()でpdo_mysqlが含まれていればインストール完了です。
コマンドラインから確認する場合にはphp -iでpdo_mysqlが含まれているか確認します。
php -i | grep pdo /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, pdo_mysql pdo_sqlite
関連記事
- 1ファイルにclassを記述して実行する方法
- PHP Startup: Unable to load dynamic libraryのエラーの解決方法
- CakePHP1系(CakePHP1.3)をPHP7・PHP8以降に対応させる方法
- Composerコマンドでウクライナへのメッセージが表示されたことがあります
- Composerをインストールする方法と使い方
- PHPのPEARは2019年に改ざんされたことがあります
- PostgreSQLでSCRAM authentication requires libpq version 10 or aboveと出るとき
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- PCやスマホがネットワーク内にあるかどうかを調べる(在宅かどうかの判断)
- プログラムでもっとも正確に日本の祝日を求める方法(内閣府公表CSVの過去3度の改訂履歴)
- EC-CUBE2系で商品を大量にカートに入れると注文情報が抜けたりカートが消えたりする
- Smarty2をPHP7に対応させる方法(The /e modifier is no longer supported Smarty_Compiler.class.php, line 270)
- CakePHPのバージョンごとのシステム要件
- yumのius(iuscommunity.org)でエラーが出る場合
- iusリポジトリで公開されているパッケージの一覧
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- さくらサーバ(さくらのレンタルサーバ)でcronを使ってPHPを定時実行する
- php.ini が見つからない時
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- PHP Strict Standards: Non-static method と出る場合の対処法
- mb_send_mail、mb_encode_mimeheaderの文字化けのまとめ(半角カタカナなど)
- Twitter APIでのエラーの一覧
- CakePHPでカラムを比較してSELECTする方法
- ImageMagick更新で『PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so'』エラーが出る場合
- コマンドやphpMyAdminで複数のデータベースに接続できるユーザーを作成する方法
- phpMyAdminで『information_schema』などを非表示にする方法
- ディレクトリが存在するにもかかわらず、『No such file or directory』エラーが出る
- PEAR・PECLをインストールする方法
- file_get_contentsで$http_response_headerを使用するときの注意点
- サイトの更新情報をPINGサーバに送信する方法
- インクルードパスを設定する方法
- HEADリクエストを排除してサーバ負荷を軽減させる
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- 日本語名のフォルダを作成する場合の注意点
- rename()を実行すると『Operation not permitted』とエラーが表示される
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- 「ID」や「ID_xxxx」という文字列があるCSVファイルをExcelで開くとSYLKエラーが出る
- Excelの日付が数字になるときの対処法
- PHPでfacebook投稿時に公開範囲を指定する方法
- PHPで複数の画像をfacebookに投稿する方法
- PHPでfacebookのフィード(ウォール)に投稿する方法
- PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
- facebook APIを使用する時にfacebook Appsでアプリを登録するまでの流れ
- SELECTタグで色を選択する場合のサンプル
- POSTでアップロードできるファイルサイズの制限を変更する方法
- Zend Optimizerのインストール
- Zend Serverとは
- Live Commerceとは
- SSL(HTTPS)でファイルのダウンロードができない場合
- ファイルダウンロード時のファイル名が文字化けする対処法
- simplexml_load_file()、simplexml_load_string()でparser error : Input is not proper UTF-8, indicate encoding !
- Deprecatedエラーを消す方法 (php.iniや.htaccess)
- Cactiのインストール RRDToolを利用したサーバ監視ツール
- JISコードでstrlenの文字数が合わない(目視の文字数とstrlenの文字数が異なる)
- echoしても文字は表示されないのに、emptyがtrueにならない
- [暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV)
- == と === の違い(比較演算子)
- Firefox、Chromeなどで文字化けを防ぐ方法 ヘッダー情報に文字コードを指定
- CakePHP、Symfony、Zend Frameworkの比較
- ブラウザの中止ボタンを押した後も処理を実行させる方法 タイムアウト以外の停止
- HTMLファイルのエンコードを『内容から判別する』にしない方法
- SQL Buddy ブラウザベースのMySQL管理ツール
- Twitter APIを使用する (Twitterアプリケーション登録)
- Mantisのインストール
- Mantisのユーザー管理テーブル(mantis_user_table)
- create_functionでメソッドを使用する方法
- strtotimeでmonthを使用するときの注意点
- コマンドラインからpearを実行するとエラーが出る 環境変数PHP_PEAR_PHP_BINの設定
- PEARを更新する方法
- zend_mm_heap corrupted とは
- switch文とif文の違い
- fgetcsv関数を文字化け対応 setlocaleの文字コード指定
- Deprecatedの修正例(POSIX)
- Fatal error: Call to undefined function imagecreatefromjpeg() の対処法
- PHPをyumでインストールする
- php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolutionの対応
- fsockopenでSSLサーバに接続する
- PHPでPDFファイルを作成する FPDF FPDI TCPDF
- 『このインターネットのサイトを開くことができません。』と出て、ファイルをダウンロードできない
- 複雑なExcelファイルをプログラムで作成する方法
- Excelで保存したときのCSVファイルの仕様
- フォーム要素の属性名の『ドット( . )』は『アンダーバー( _ )』に変わります
- サブドメインにアンダーバーがあるとクッキーは使えない
- アンダーバーのあるドメインではセッションクッキーは使用できません
- NetBeans6のインストール(JavaだけでなくRuby、PHP、C/C++に対応した統合開発環境)
- memcachedを使用する(memcacheライブラリ)
- date.timezoneを設定するとPHPが早くなる
- PHPフレームワークの一覧
- mbstringエミュレータ
- Fatal error: Maximum execution time of 30 seconds exceededの対処法
- PHPのインストール
- 例外処理(Exception)
- Windows版PHPにPEAR・PECLをインストールする
- PHPをコマンドラインから使用する方法
- 画像の保存やメール転送を制限する方法
- PHPの閉じタグは書いてはいけない
- $_SERVER['PHP_SELF']は危険?
- Net_UserAgent_Mobile 携帯判別PEARパッケージの使い方と注意点
- stdClassクラスとは
- ユーザーエージェントからのキャリア、世代判別
- クラスとオブジェクト
- str関数、preg関数、ereg関数の速度比較
- 配列値格納の構文と組み込み関数による速度比較
- 正規表現のパターン文字列に日本語文字を使うときの注意
- ダブルクオート/シングルクオート/ヒアドキュメント、echo/printの速度比較
- forとforeachの速度比較
- SJISじゃなくてSJIS-win、EUC-JPじゃなくてeucJP-winを使おう
- 文字列の一部を得る関数mb_substrとmb_strcutの違い
- mb_strlenやmb_strimwidthの注意点
- failed: No space left on device
- VGA端末用に出力画像を拡大縮小する方法
- VGA端末の画像表示対応
- SSL通信かどうか
- docomo端末でCSSを使うには
- yumで、より新しいパッケージをインストールする方法(CentOS)
- 住所や駅名などから緯度経度を取得する
- empty関数について
- $_REQUESTに入る値と、その優先順位
- mail関数やmb_send_mail関数でReturn-Pathを設定する方法
- 携帯サイトのmailtoを端末ごとに書き換える関数
- MySQLのソケットエラー
- EclipseでPHPプロジェクトにする方法
- Softbankの携帯で文字の色を白にするときは注意
- mailtoの使い方
- 携帯サイトでのmailtoの使い方
- mailto本文での改行 ドコモのN、Pで送信に失敗します
- 数字(0〜9)のみかどうかを調べる正しい方法
- PCからデコメールを送るときの仕様
- PHPのバージョン表記の隠蔽
- quoted-printable文字列の変換
- Mantisのメール文字化け
- Issue-Tracker [バグ追跡システム]
- phpBugTracker [バグ追跡システム]
- eGroupWare [バグ追跡システム]
- OpenTask [バグ追跡システム]
- <docomo>タグ、<au>タグ、<softbank>タグの使用例
- 動的ページを静的ページに偽装する方法
- 『サイトが移動しました』を出さない方法
- セッション固定攻撃(session fixation)
- Softbankで絵文字を表示させる
- 位置情報・GPS情報の取得方法
- サイトを公開するときの設定
- クッキー(cookie)について
- セッションの有効期間とか設定とか挙動とかを調べました
- 携帯電話端末の判別ライブラリ Net_UserAgent_Mobile
- 個体識別情報・UIDの取得方法
- OpenPNEのツッコミどころ
- magic_quotes_gpc = On の対策
- Windows版PHPのインストール
- Mantis(マンティス) バグ管理システム
- CakePHP
- Symfony(シンフォニー)
- EC-CUBE
- Zen Cart(ゼン・カート)
- OsCommerce
- OpenPNE
- PukiWiki
- MediaWiki
- Wordpress
- Nucleus
- Movable Type
- NetCommons(ネットコモンズ)
- Joomla(ジュームラ)
- Drupal(ドルーパル)
- XOOPS Cube
- Geeklog(ギークログ)
- UTF-8からSJISで文字化け
- ファイル操作
- Smarty
- 正規表現
- ちいたん
- Symfony
- サンプルコード
- EC-CUBE
- Zend Framework
- Ethna
- OpenPNE
- CakePHP
- WordPress
- XOOPS Cube
- Drupal(ドルーパル)
- FPDF 1.52 リファレンス
- Doctrine
- 講座
- Yii
- Live Commerce
- SOAP拡張モジュール
- PEAR
- Composer
スポンサーリンク