質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Laravel 5

    2388questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

laravel5.3にてmigrateができない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,626

tanamochi

score 75

いつもお世話になっております。
最近は質問ばかりで恐縮ですがよろしくお願いします。

前提・実現したいこと

Laravel5.3,CentOS7,PHP7,MariaDBの環境構築
vagrant1.8.4,virtualbox4.34.4
mac10.11.5 EL Capitan

発生している問題・エラーメッセージ

php artisan migrateで以下のエラーが出ている

[PDOException]
  could not find driver

該当のソースコード

以下の手順で構築しLaravelのトップページが出るところまでは確認できました。
そこからDBを作成しようとしたところmigrateでエラーが出てしまい詰まってしましました。
php artisan make:migration create_tasks_table
等でファイルの生成もできております。
mysqlは起動できます。

sudo yum -y install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

#Apache
sudo yum -y install httpd
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

#firewalld
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

#MariaDB
sudo yum -y remove mariadb*
sudo rm -rf /var/lib/mysql/
sudo yum -y install mariadb.x86_64
sudo yum -y install mariadb-devel.x86_64 mariadb-libs.x86_64 mariadb-server.x86_64
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service

#wget
sudo yum -y install wget

#vim 
sudo yum -y install vim

#PHP
sudo yum -y remove php-*
sudo yum -y --enablerepo=epel,remi,remi-php70 install php php-devel php-pdo php-mcrypt php-mbstring php-fpm php-dom php-gd php-mysql
sudo systemctl restart httpd.service

#git
sudo yum -y install git

#Composer
sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

#Laravel
composer require 'laralib/l5scaffold' –dev
composer global require "laravel/installer=~1.1"

#laraval create
cd /vagrant
composer -n create-project laravel/laravel myapp --prefer-dist
cd /vagrant/my
composer install
cp /vagrant/.env.example .env
chmod -R 777 storage
chmod -R 777 bootstrap
chmod -R 777 bootstrap/cache
setenforce 0

php artisan key:generate
php artisan config:clear

mysql -u root < create_database.sql

#start
php artisan serve --host 192.168.33.11 --port="8010"

試したこと

.envの書き換え

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myapp
DB_USERNAME=root
DB_PASSWORD=


app/config/databese.phpの書き換え

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'myapp'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

php.iniにて、extension=php_pdo_mysql.soが有効になっているか確認してみては如何でしょうか?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/14 15:20

    回答ありがとうございます。
    extension=php_pdoで検索してみたのですが記述がありませんでした。
    追記してみたところ
    PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_pdo_mysql.dll' - /usr/lib64/php/modules/php_pdo_mysql.dll: cannot open shared object file: No such file or directory in Unknown on line 0
    というエラーが出ました

    キャンセル

  • 2016/12/14 15:26

    すいません。拡張子.dllはwindows用なので拡張子.soが正しいです。
    それはさておき…

    extensionを格納しているフォルダに、上述のphp_pdo_mysql.soがある事を確認して下さい。無い場合は、phpにmysql用のドライバーをインストールする必要がありそうですね。
    手順はhttp://php.net/manual/ja/set.mysqlinfo.phpを参照されると良いかと思います。

    キャンセル

  • 2016/12/14 15:31

    私の環境はWindowsなので未検証ですが、
    yum install php php-mysql
    でmysqlの追加パッケージをインストール出来るみたいですね。

    キャンセル

  • 2016/12/14 15:35

    ありがとうございます!
    実行してみたところ以下のようになりました。
    $ yum install php php-mysql
    読み込んだプラグイン:fastestmirror
    Loading mirror speeds from cached hostfile
    * base: ftp.jaist.ac.jp
    * epel: kartolo.sby.datautama.net.id
    * extras: ftp.jaist.ac.jp
    * remi-safe: mirrors.netix.net
    * updates: ftp.jaist.ac.jp
    一致したパッケージ php-5.4.16-42.el7.x86_64 はすでにインストールされています。更新を確認しています。
    依存性の解決をしています
    --> トランザクションの確認を実行しています。
    ---> パッケージ php-mysql.x86_64 0:5.4.16-42.el7 を インストール
    --> 依存性の処理をしています: php-pdo(x86-64) = 5.4.16-42.el7 のパッケージ: php-mysql-5.4.16-42.el7.x86_64
    --> 依存性解決を終了しました。
    エラー: パッケージ: php-mysql-5.4.16-42.el7.x86_64 (base)
    要求: php-pdo(x86-64) = 5.4.16-42.el7
    インストール: php-pdo-7.0.14-1.el7.remi.x86_64 (@remi-php70)
    php-pdo(x86-64) = 7.0.14-1.el7.remi
    利用可能: php-pdo-5.4.16-42.el7.x86_64 (base)
    php-pdo(x86-64) = 5.4.16-42.el7
    問題を回避するために --skip-broken を用いることができます。
    これらを試行できます: rpm -Va --nofiles --nodigest

    キャンセル

  • 2016/12/14 15:40

    「インストール済み」というメッセージが出ていますね。
    /usr/lib64/php/modulesの配下に以下のファイル(もしくは類似したファイル名)がある事は確認できますでしょうか?
    php_mysql.so
    php_mysqli.so
    php_pdo_mysql.so

    また、php.iniのextensionの内容も確認した方が良いと思います。
    上記のファイルを読込む記述(extension=~)が無ければ、追加する必要がありそうですね。

    キャンセル

  • 2016/12/14 15:45

    検索しましたがphpとつくものはありませんでした。
    $ ls /usr/lib64/php/modules/p
    pdo.so pdo_sqlite.so phar.so
    extension=~が無ければ、追加する了解しました。

    キャンセル

  • 2016/12/14 16:16

    この方法を試して頂けますか?
    yum install --enablerepo=remi,remi-php70 php-mysqlnd

    キャンセル

  • 2016/12/14 18:40

    すみません、返事が遅くなりました。
    先ほどのコマンドでpdo_mysql.soをインストールすることができました!
    しかし、migrateはうまく動作しませんでした。
    $ php artisan migrate
    PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0
    Could not open input file: artisan
    php.iniにはextension=pdo_mysql.soを追記しています。

    キャンセル

  • 2016/12/14 21:51

    警告はでてますが実行はされてました!

    キャンセル

  • 2016/12/14 23:05

    良かったです。先ほどのアドバイスとは変わってしまうのですが、extension=pdo_mysql.soをコメントアウトしてみては如何でしょうか?これでワーニングが出なくなり、かつ動けば良いのですが…

    キャンセル

  • 2016/12/14 23:08 編集

    コメントアウトしてみたところワーニング出てません!
    ありがとうございました!!

    キャンセル

同じタグがついた質問を見る

  • Laravel 5

    2388questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。