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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3845閲覧

Centos7でremiのエラーが表記される

s_user

総合スコア1

MySQL

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/08/29 14:12

前提・実現したいこと

VMWare15player内にCentos7・PHP・mySQLをインストールし、勉強用の環境を構築しました。
php-v
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

mySQL-version
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)

phpからmysqlを接続し、データを取得させて、画面に表記させる

(phpinfo()でphpのステータスを表示することは出来ました)

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

phpからmysqlに接続するにあたって
$db=new PDO("mysql:host=接続元IP or HOST名;dbname=world", "root", "password");
で接続するときに以下のエラーが表示されました。
「Fatal error: Uncaught PDOException: could not find driver in /var/www/html/conect.php:4 Stack trace: #0 /var/www/html/conect.php(4): PDO->__construct('mysql:host=\xE6\x8E\xA5\xE7...', 'root', 'password') #1 {main} thrown in /var/www/html/conect.php on line 4」

Uncaught PDOException: could not find driverを検索し、PDOの設定が出来てないと判断し、
https://qiita.com/oginom/items/5268fb19eeb80debb0ea
上記のサイトで「sudo yum install --enablerepo=remi-php70 php-mysqlnd」を
リナックスコマンドで入力したときに
以下のエラーが表示されました
[root@local etc]# yum install --enablerepo=remi,remi-php72 php-mysql
エラー: 不明な repo : 'remi'
[root@local etc]#

この「remi」がインストールされてなく表示されているエラーだと思い(エラーを検索しても出てこず)
remiをインストールしようと以下のサイトで
https://www.kakiro-web.com/linux/remi-install.html
「Remiのリポジトリのインストール」を実施すると

[root@local etc]# rpm -Uvh remi-release-7.rpm
警告: remi-release-7.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY
エラー: 依存性の欠如:
epel-release = 7 は remi-release-7.8-1.el7.remi.noarch に必要とされています
[root@local etc]#
と表記されインストールが出来ません。

◆欲しい情報は
・PDOをmySQLを設定したい(現在:PDO drivers sqlite)となっている
・そもそもインストールさせているやり方が違うのか?(remiのインストールのやり方が違うのか)

使用OSはwindows10 VMware15 Centos7

お願い致します。

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

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

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

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

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

dameo

2020/09/01 00:51

php -m | grep pdoの結果を貼ってください。(phpはお使いのバージョンに合うようにコマンド名を適宜変更してください)
s_user

2020/09/02 13:54

回答有難う御座います。 [root@local etc]# php -m | grep pdo pdo_sqlite [root@local etc]# 上記が結果です。
dameo

2020/09/02 14:15

phpにPDO_MYSQLモジュールが組み込まれていないようですね。 PDO_MYSQLが入ってる場合は、先のコマンドの出力が違うそうです。 一応確認しないといけないことなので、確認させて頂きました。 このモジュールはphp-mysqlパッケージに含まれているようです。 https://centos.pkgs.org/7/cheese-x86_64/php-mysql-5.4.45-1.el7.x86_64.rpm.html 普通にsudo yum install php-mysqlではダメなのでしょうか?
s_user

2020/09/03 16:05

回答有難う御座います。 はい、そうです。PHPとMYSQLをPDOで接続できればよろしいのですが、 pdoをインストールする際にremiがありませんと表記されてインストールが出来ず下記の質問状態になっております。まだ試してはいませんが、上記のアドレスでインストールするアドレスを設定すればよろしいのでしょうか。 ※金土日は仕事の関係で返信が遅れます。すみません。
dameo

2020/09/03 16:39

> まだ試してはいませんが、上記のアドレスでインストールするアドレスを設定すればよろしいのでしょうか。 いいえ、そういう意味ではありません。 気になっているのは、「remiがありません」と言われてるときにインストールしようとしているパッケージが、「php-mysqlnd」なことです。PDO_MYSQLモジュールをパッケージングしているCentOSのパッケージは、「php-mysql」と「php-mysqlnd」の2つがあります。どちらか1つを選択的に入れるパッケージなのですが、あなたは「php-mysqlnd」を入れようとしてエラーになったという話だったので、「php-mysql」ではどうなんだろう?と思った次第です。 2つのパッケージの違いは、phpのマニュアルで解説されている、libmysqlclientとmysqlndの違いと同じです。 https://www.php.net/manual/ja/mysqlinfo.library.choosing.php libmysqlclient ... php-mysqlに含まれる(正確には依存パッケージに含まれる) mysqlnd ... php-mysqlndに含まれる オススメはphp-mysqlndなんですけどね。エラー回避のためにphp-mysqlも試してみてはどうか?と言った次第なのです。
dameo

2020/09/03 18:24

ちょっと面倒になる可能性があるので、一通り気になっていることを全て書いておきますね。 本来は問題が起きたときは1つ1つエラーを確認し、作業手順を見直し、何が原因なのかを把握することが大事です。「こうではないか?」と決めつけて、「そういうケースならこう対処しよう」という方法で解決しようとすると、傷口が広がってしまったり、その後の原因追求の足枷になることの方が多いです。 今回、エラーになったところはまず、 > 「Fatal error: Uncaught PDOException: could not find driver in /var/www/html/conect.php:4 Stack trace: #0 /var/www/html/conect.php(4): PDO->__construct('mysql:host=\xE6\x8E\xA5\xE7...', 'root', 'password') #1 {main} thrown in /var/www/html/conect.php on line 4」 これになります。ここであなたは、「PDOの設定が出来てないと判断」していますが、この根拠が薄弱です。分かっているのはドライバーが見つからなかった、という情報だけです。そこで私は、最初に「php -m | grep pdo」での調査を依頼しました。これはphpがpdoで使っているモジュールを調べるコマンドです。ここでmysqlが対象になっているモジュールが出てこなければ、ドライバは見つからないことになります。調べた結果、案の定見つからなかったので、PDO_MYSQLモジュールをインストールする必要がある、という判断が出来るようになります。ではPDO_MYSQLモジュールはCentOS7だとどうインストールできるのか?という情報が必要になります。そしてその調査結果が、php-mysqlパッケージ、もしくはphp-mysqlndパッケージのインストールであるという結論になります。 本来の筋で言えばオススメはphp-mysqlndなので、これを入れる必要があるわけですが、普通に入れるなら、 sudo yum install php-mysqlnd で終わりです。インストールしますか?に自動でyを押したことにしたいなら-yを付けてもいいでしょう。しかし、あなたは yum install --enablerepo=remi,remi-php72 php-mysql としていて、 「エラー: 不明な repo : 'remi'」 と怒られています。なぜ「--enablerepo=remi,remi-php72」というオプションを付けているのか?は説明がないので、正確には分かりません。ただ、CentOS7の標準リポジトリではPHP5.Xしかインストールできないので、PHP7.Xをインストールしてある以上、リポジトリの追加が行われている前提はしていいはずです(消してなければ)。そして、「--enablerepo」オプションはリポジトリの追加はしたけど、都度明示的にenableにされなければ、そのリポジトリを有効にしない特殊なリポジトリのときに使うオプションです。恐らく質問者さんは、その特殊な設定をPHP7.Xをインストールするのに使用したリポジトリに行っていたのでしょう(推測)。なのでまずはこの推測を確認する必要があります。一体何のリポジトリをどのように追加し、その後どういう設定をしたのか?ですね。 次にエラーですが、remiが不明なrepoと言われています。追加したリポジトリは、/etc/yum.repos.d/にファイルとして置かれます。例えば質問者さんはmysqlも8を入れてるようなので、恐らくoracleのを使ってて、リポジトリも追加されているのでしょう。その場合は、 /etc/yum.repos.d/mysql-community.repo などになります。今回のエラーはつまり、 /etc/yum.repos.d/remi.repo がないよ、と言われているということです。質問者さんは先のコマンドオプションで、 ・remi ・remi-php72 の2つをenableに指定していましたが、そのうちremiがなかったという話です。remi-php72はあるのかもしれないし、ないのかもしれません。なので、これについても、質問者さんがphpをどのように入れたのかを聞かないと分かりませんし、その上で、/etc/yum.repos.d/の内容を確認し、必要であればファイルの中身を確認しないと、なぜそのエラーになったのか?そしてどう対応すればいいのかは分かりません。 ようは質問者さんの説明と確認の作業が全然足りていないのです。まとめると、 ・PHPのインストール手順を説明してください ・以下のコマンドの結果を貼ってください ls -lAF /etc/yum.repos.d/ ・以下のコマンドの結果を貼ってください for f in /etc/yum.repos.d/remi*.repo;do echo "[$f]";cat $f;done ということです。yukky1201さんの話と同時に進めると、互いに競合しちゃうので、私の方は読むだけで構いませんよ。
s_user

2020/09/07 16:29

ご回答有難う御座います。 多数の指摘助かります。 >質問者さんの説明と確認の作業が全然足りていないのです。 まさしくその通りで御座います。 色々サイト周りすぎて色んなファイルをインストールしてしまい、本質を見失っている状態です。 インストール手順をメモしておくべきでした。今後は手順を記載します。 今後、質問する際のポイントのご教授有難う御座います。 一応解決に辿り着いてきたので、明日の夜にこの質問をクローズ致します。 クローズの間に何かワンポイントアドバイスがありましたら、どうぞよろしくお願いいたします。 至らない回答してすみませんでした、いろいろご回答有難う御座いました。
dameo

2020/09/07 23:22

カーネルのバージョンから、CentOS8をインストールしてるのは間違いないようですね。リポジトリを追加する際に、普通はCentOS8用のパッケージが入ることはありません。またカーネルのバージョンは自分で間違えて上げるということは考えにくいので。ご自身で確認する簡単な方法は cat /etc/redhat-release とすることです。CentOS OS Linux 8.XXXのように出てきていればCentOS 8です。 多分起動直後の画面でCentOS OS Linux 8と出てると思います。あとはyukky1201さんにお任せしますね。
s_user

2020/09/08 11:49

上記の件確認してみます。 色々有難う御座いました。 dameo様もベストアンサーです。
guest

回答2

0

ベストアンサー

下記の通り書いてありますよ

Remiのyumリポジトリを追加するには、EPELのyumリポジトリが追加されている必要があります。

EPELのyumリポジトリの追加方法については、当サイトのCentOS7 64bitのyumリポジトリにEPELを追加のページをご覧ください。

投稿2020/08/29 18:52

yukky1201

総合スコア2751

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

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

s_user

2020/08/30 14:03 編集

回答有難う御座います。 「CentOS7 64bitのyumリポジトリにEPELを追加のページ」で全て対応しました。 (EPELのリポジトリのインストール ~ rpm -qa gpg-pubkey*の確認まで) [root@local etc]# rpm -qa gpg-pubkey* gpg-pubkey-2f86d6a1-5cf7cefb gpg-pubkey-8483c65d-5ccc5b19 [root@local etc]# 上記の状態で 再度rpm -Uvh remi-release-7.rpmしましたが、やはり以下のエラーが出てダメでした。 [root@local etc]# rpm -Uvh remi-release-7.rpm 警告: remi-release-7.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY エラー: 依存性の欠如: epel-release = 7 は remi-release-7.8-1.el7.remi.noarch に必要とされています [root@local etc]# ダウンロードしたファイルは「wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm」の「remi-release-7.rpm」です。 インストールする場所とか間違えてますでしょうか?(ファイルを落とす先) そもそもダウンロードするファイルを間違えているとかでしょうか? 他何か不足している情報がありましたら、ご要望お願い致します。提示いたします。
yukky1201

2020/08/31 05:37

epel-release がインストールされているか確認できるログをください コマンド # rpm -qa | grep epel
s_user

2020/08/31 15:55

回答有難う御座います。 以下結果で御座います。 [root@local /]# rpm -qa | grep epel epel-release-8-8.el8.noarch [root@local /]# epel-releaseはインストールされているみたいです。
yukky1201

2020/09/01 01:43

epel-release-8-8.el8.noarch は CentOS8用のものですので、アンインストールして、CentOS7用をインストールしてください。
s_user

2020/09/02 16:16

回答有難う御座います。 少々お時間がかかりました。 [root@local etc]# yum remove epel-release-8-8.el8.noarch 依存関係が解決しました。 =============================================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ =============================================================================================================================================================================================================== 削除中: epel-release noarch 8-8.el8 @extras 32 k トランザクションの概要 =============================================================================================================================================================================================================== 削除 1 パッケージ 解放された容量: 32 k これでよろしいですか? [y/N]: y トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 scriptlet の実行中: epel-release-8-8.el8.noarch 1/1 削除 : epel-release-8-8.el8.noarch 1/1 scriptlet の実行中: epel-release-8-8.el8.noarch 1/1 検証 : epel-release-8-8.el8.noarch 1/1 Installed products updated. 削除済み: epel-release-8-8.el8.noarch 完了しました! [root@local etc]# 上記の手順で一旦epel-release-8-8.el8.noarchをアンインストール。 Centos7のepel-releaseをインストールしようとしましたが、 [root@local etc]# sudo yum install epel-release メタデータの期限切れの最終確認: 2:06:29 時間前の 2020年09月02日 23時00分30秒 に実施しました。 依存関係が解決しました。 =============================================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ =============================================================================================================================================================================================================== インストール中: epel-release noarch 8-8.el8 extras 23 k トランザクションの概要 =============================================================================================================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 23 k インストール済みのサイズ: 32 k これでよろしいですか? [y/N]: n 操作が中断されました。 [root@local etc]# と最新版の8-8.el8を入れてしまう状態です。(操作は【n】を押しました。) 指定しているファイルを間違えてインストールしている状態でしょうか。 一応確認させてください。CentOS7用のepel-releaseをインストールですね。 少々お時間を使い探しましたが、上記のようにyum install epel-releaseを 打ち込むと最新のバージョンを取ってきてしまうようです。 恐らくこちらの7バージョンをしてすれば宜しいのかと思いますが、どうでしょうか。
yukky1201

2020/09/02 16:31

本来であればyumではそのバージョン用のパッケージを見つけてくれるはずですが 1)キャッシュクリア(yum clean all) の後にもう一度インストールするとどうでしょう 2)念の為の確認ですがCentOS7を利用されてますよね。確認できるログ(インストールされているkernelバージョンなど)を提示してくれますか
s_user

2020/09/03 16:06

回答有難う御座います。 [root@local etc]# yum clean all 68 ファイルが削除されました [root@local etc]# [root@local etc]# sudo yum install epel-release CentOS-8 - AppStream 3.8 MB/s | 5.8 MB 00:01 CentOS-8 - Base 2.4 MB/s | 2.2 MB 00:00 CentOS-8 - Extras 13 kB/s | 7.3 kB 00:00 MySQL 8.0 Community Server 3.5 MB/s | 919 kB 00:00 MySQL Connectors Community 240 kB/s | 33 kB 00:00 MySQL Tools Community 723 kB/s | 109 kB 00:00 依存関係が解決しました。 =============================================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ =============================================================================================================================================================================================================== インストール中: epel-release noarch 8-8.el8 extras 23 k トランザクションの概要 =============================================================================================================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 23 k インストール済みのサイズ: 32 k これでよろしいですか? [y/N]: n 操作が中断されました。 キャッシュを削除し、再度yumでインストールを試してみましたが、やはり8-8.el8をインストールしようとします。 >2)念の為の確認ですが・・・ ■こちらがkernelのバージョンで御座います。 [root@local etc]# uname -r 4.18.0-193.14.2.el8_2.x86_64 [root@local etc]# 使用しているVMWareを別回答として画像で貼り付けました。 ※すみません。金土日深夜対応で会社に泊まり込みになるため返信が遅れます。すみません。
yukky1201

2020/09/03 16:25 編集

インストールされているOSがCentOS8ですね。 解決法としては 1)CentOS8を使い続ける場合 remi-releaseをCentOS8用に入れ替える 2)CentOS7でOSから再インストールする となります なお、4.18.0-193.14.2.el8_2.x86_64の「el8」がどのOSバージョン向けなのか判別する箇所となります。 7用 → remi-release-7.8-1.el7.remi.noarch 8用 → epel-release-8-8.el8.noarch 8用 → 4.18.0-193.14.2.el8_2.x86_64 ご自分の環境にあったパッケージを利用しましょう
s_user

2020/09/07 16:14

ご回答有難う御座います。 すみません。返信が遅れました。 >インストールされているOSがCentOS8ですね。 としますとVMWareにCentos7とリストに表示されてますが、(別回答の画像のCentoOS) 実際はCentOS8がインストールされていると言う事でしょうか。 解決方法の補足でお聞きしたいですが、 >1)CentOS8を使い続ける場合 >remi-releaseをCentOS8用に入れ替える こちらCentOS8のisoを公式サイトからダウンロードして、 インストールを行うという事でしょうか。 もしそうであれば、そこから再度設定してみます。 ※おそらく、remi関連で色々サイトを回って、いろいろインストールしていたら、このような状態になってしまったようです。 ⇒CentOS8を公式からisoでダウンロードし、そこからインストール+設定を行ってみます。 その際に、また躓き、中々先に進めない場合、再度アドバイスを頂きたいと思います。 (できる限り自力で頑張ってみます) 明日の夜にこの質問をクローズいたします。 もしその間に、ワンポイントアドバイスがありましたら、お願いいたします。 本当に長期間ご回答有難う御座いました。
yukky1201

2020/09/08 00:35

CentOS8がインストールされていることは、kernelのバージョンと参照しに行っているCentOSリポジトリから明確です。 ラベルと中身が違ってしまっている状況となってしまっています。 >>1)CentOS8を使い続ける場合 >>remi-releaseをCentOS8用に入れ替える >こちらCentOS8のisoを公式サイトからダウンロードして、 >インストールを行うという事でしょうか。 NOです。 CentOS8 に remi-release-7.8-1.el7.remi.noarch をインストールしてしまっているのでアンインストールした後で、remi-release-8.1-2.el8.remi.noarch.rpm をインストールしてください。ということです 環境と、その環境に必要なものは何かを正しく把握して進めてみてください。
s_user

2020/09/08 11:48

了解しました。 一旦自分の環境を把握してから remi-release-7.8-1.el7.remi.noarchアンインストールし、remi-release-8.1-2.el8.remi.noarch.rpmをインストールしてみます。 有難う御座いました。
guest

0

イメージ説明
※まだ解決していません

投稿2020/09/03 15:50

s_user

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問