Vagrant+VirtualBoxで仮想サーバを立ち上げ、CentOS7環境を構築。ApacheとMySQLをインストールし、ローカルのFuelPHPプロジェクトとMySQLを接続する。
実行環境
実行環境は以下の通り。Apacheは既に起動し、MySQLの設定が完了した前提。
- Window7(ホスト)
- VirtualBox5.0.16
- Vagrant1.9.6
- CentOS7(ゲスト)
- FuelPHP 1.7.2
- PHP 7.0.31
- MySQL 5.6.40
- Apache 2.4.6t
db.phpの編集
ローカルで開発しているFuelPHPプロジェクトとMySQLを接続するための設定を行う。作成したデータベースやMySQLユーザの情報を以下のように記述する。
・fuel\app\config\development\db.php
1 2 3 4 5 6 7 8 9 10 11 | <?php return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ), ), ); |
1 | $ systemctl restart httpd.service |
Apacheを再起動し、アプリケーションを動かしてみるもエラー。
「PDOException: could not find driver」エラーと対処法
早速ログを確認してみると「PDOException: could not find driver」で、ドライバーが見つからないとのこと。
1 2 | C:\sample\fuel\app\logs\ ERROR - 2018-07-24 09:11:39 --> PDOException: could not find driver in /sample/fuel/core/classes/database/pdo/connection.php:96 |
FulePHPプロジェクトのindex.php上部に以下を書き込み、PHPの環境設定情報を表示する。
・index.php
1 2 | <?php echo phpinfo();exit; |
再起動して、あらためてブラウザで開くとPHPの環境設定情報が表示される。
案の定PDO driversに「mysql」がなかったため、こちらを参考にphp-mysqlndを入れた。
参考:PHP7+Nginx+MariaDBでPDO接続したとき”could not find driver”が出た際にやったこと
php-mysqlndをインストール
1 | $ yum install --enablerepo=remi-php70 php-mysqlnd |
正常にインストールされたか確認
1 2 | $ yum list installed | grep mysqlnd php-mysqlnd.x86_64 7.0.31-1.el7.remi @remi-php70 |
php-fpmとApacheを再起動
1 2 | $ systemctl restart php-fpm $ systemctl restart httpd.service |
PDO driversに「mysql」入っていることを確認し、再度開くと無事接続されました。