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

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

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

12134閲覧

cakephp mysqlが使えないというエラー

navca

総合スコア44

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2017/08/02 12:14

編集2017/08/02 14:21

初心者で恐縮ですがよろしくお願いします。

環境 centos7 cakephp3 mysql5.7


追記しました。

出ているエラーはcakephpの
Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency
のみです。

windows上でのコマンドの結果は載せておりません。すべてcentos7上での結果です。


現在cakephpのエラーとして↓が出ています。
Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency

このエラー文で調べて、https://teratail.com/questions/22662

sudo yum install php56-php-mysqlnd

としましたが、解決できませんでした。(Apache再起動しました。)

mysqlのインストールはこちらの手順で行いました。↓
https://weblabo.oscasierra.net/installing-mysql57-centos7-yum

$ yum list installed | grep mysql mysql-community-client.x86_64 5.7.19-1.el7 @mysql57-community mysql-community-common.x86_64 5.7.19-1.el7 @mysql57-community mysql-community-libs.x86_64 5.7.19-1.el7 @mysql57-community mysql-community-server.x86_64 5.7.19-1.el7 @mysql57-community mysql57-community-release.noarch el7-10 @mysql57-community php56-php-mysqlnd.x86_64 5.6.31-1.el7.remi @remi-safe

↓こちらも参照しましたが、OSが明示されてないため善し悪しがよくわからないのですが、
php.iniにextension="php_mysql.dll"という記述がありません。
http://www.phpbook.jp/tutorial/mysql/index1.html

又、xammp(自分のです。以前使っていた)のphp.iniを見るとmysql、mysqli、mysqlndといったディレクティブがありますが、centos上のphp.iniにはそれらがありません。

↓も参照しましたが
https://stackoverflow.com/questions/29403450/cakephp-3-is-not-able-to-connect-to-the-database-due-to-a-missing-php-extension

extension = php_intl.dll extension = php_pdo_mysql.dll intl.default_locale = en_utf8 intl.error_level = E_WARNING

を追記しても変わらずでした。

よろしくお願いします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hotta

2017/08/02 13:19

やったことを記載する場合、コマンドだけじゃなくて表示されたエラーも記載してください。Windows と CentOS の情報が混ざっていてよくわからないです。
coba-coba

2017/08/02 14:04

php -mを実行して結果を載せていただけますか?PHPのバージョンは5.6ですか?PHPはどのようにインストールしましたか?
navca

2017/08/02 14:09

>hottaさん 回答ありがとうございます。失礼しました。追記します。
navca

2017/08/02 14:11

>coba-cobaさん 回答ありがとうございます。  phpのバージョンは5.6です。 php -mの結果です----->]$ php -m PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_intl.dll' - /usr/lib64/php/modules/php_intl.dll: cannot open shared object file: No such file or directory in Unknown on line 0 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 [PHP Modules] bz2 calendar Core ctype curl date dom ereg exif fileinfo filter ftp gd gettext hash iconv intl json libxml mbstring mcrypt mhash openssl pcntl pcre PDO pdo_sqlite Phar readline Reflection session SimpleXML sockets SPL sqlite3 standard tokenizer wddx xml xmlreader xmlwriter xsl zip zlib [Zend Modules]
navca

2017/08/02 14:12

phpインストール時のコマンドをhistoryコマンドで確認しました。sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-intl
hotta

2017/08/02 14:13

ここに情報を書くのではなく、問題文を修正してください。
guest

回答1

0

ベストアンサー

確かにphp -mの結果にmysqlndが入っていませんね。
でも、sudo yum install php56-php-mysqlndは少し違います。

そもそもremi,remi-php56リポジトリには2種類のパッケージが存在します。
PHPのインストールでは、PHPの指定はphpphp56で異なるパスにインストールされます。

navcaさんのPHPインストール時のコマンドはsudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-intlですよね。

今回はPHPのインストール時にphpを指定しているので、mysqlndもそれに合わせてインストールします。
具体的には、yum --enablerepo=remi,remi-php56 install php-mysqlndのようにします。

(蛇足ですが、今からPHPをインストールするなら、特に理由がないならPHP7を使うべきだと思います。)

投稿2017/08/02 15:54

coba-coba

総合スコア1409

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

navca

2017/08/03 15:06

回答ありがとうございます。できました!よく考えれば分かりそうなことでした。精進します。phpのバージョンについてはリポジトリの安全性について調べて5.6が妥当かと思ったのですが、7にしてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問