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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

Q&A

解決済

1回答

2561閲覧

php8 Apache/2.4.6 で class PDO not foundが出る

larachan

総合スコア28

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

0グッド

0クリップ

投稿2021/04/23 11:51

centOS環境です。

インストールコマンド
yum -y install --enablerepo=remi,remi-php80 php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-zip php-oci8

php -i | grep php.ini

Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

httpd.conf

LoadModule php_module /usr/lib64/httpd/modules/libphp80.so
こちらがシンボリックリンクで
/opt/remi/php80/root/usr/lib64/httpd/modules/libphp.so
を指してます。

PDOはインストール済みです。

rpm -qa | grep php
php-common-8.0.3-1.el7.remi.x86_64
php-mbstring-8.0.3-1.el7.remi.x86_64
oniguruma5php-6.9.6-1.el7.remi.x86_64
php80-php-cli-8.0.3-1.el7.remi.x86_64
php-oci8-8.0.3-1.el7.remi.x86_64
php-pecl-mcrypt-1.0.4-1.el7.remi.8.0.x86_64
php80-runtime-1.0-3.el7.remi.x86_64
php80-php-8.0.3-1.el7.remi.x86_64
php-cli-8.0.3-1.el7.remi.x86_64
php-xml-8.0.3-1.el7.remi.x86_64
php-pecl-zip-1.19.2-1.el7.remi.8.0.x86_64
php80-php-sodium-8.0.3-1.el7.remi.x86_64
php-devel-8.0.3-1.el7.remi.x86_64
php-gd-8.0.3-1.el7.remi.x86_64
php80-php-common-8.0.3-1.el7.remi.x86_64
php-pdo-8.0.3-1.el7.remi.x86_64

コンソール上でphpinfo()を出力すると
php.iniの場所は
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
Scan this dir for additional .ini files => /etc/php.d
Additional .ini files parsed => /etc/php.d/20-bz2.ini,
/etc/php.d/20-calendar.ini,
/etc/php.d/20-ctype.ini,
/etc/php.d/20-curl.ini,
/etc/php.d/20-dom.ini,
/etc/php.d/20-exif.ini,
/etc/php.d/20-fileinfo.ini,
/etc/php.d/20-ftp.ini,
/etc/php.d/20-gd.ini,
/etc/php.d/20-gettext.ini,
/etc/php.d/20-iconv.ini,
/etc/php.d/20-mbstring.ini,
/etc/php.d/20-oci8.ini,
/etc/php.d/20-pdo.ini,
/etc/php.d/20-phar.ini,
/etc/php.d/20-simplexml.ini,
/etc/php.d/20-sockets.ini,
/etc/php.d/20-sqlite3.ini,
/etc/php.d/20-tokenizer.ini,
/etc/php.d/20-xml.ini,
/etc/php.d/20-xmlwriter.ini,
/etc/php.d/20-xsl.ini,
/etc/php.d/30-mcrypt.ini,
/etc/php.d/30-pdo_oci.ini,
/etc/php.d/30-pdo_sqlite.ini,
/etc/php.d/30-xmlreader.ini,
/etc/php.d/40-zip.ini,
/etc/php.d/ssh2.ini
なのですが、ブラウザからphpinfo()を出力するtest.phpを実行すると

Configuration File (php.ini) Path => /etc/opt/remi/php80
Loaded Configuration File => /etc/opt/remi/php80
Scan this dir for additional .ini files /etc/opt/remi/php80/php.d

っとなっています。

apache側が/etc/php.iniを参照できてないからだと思いますが、どう修正したらいいかわかる方いらっしゃいますか?

最悪php7.4に戻そうと思いますが、よろしくお願いします。

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

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

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

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

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

zembutsu

2021/04/24 04:55

CentOS のバージョンはいくつでしょうか?(cat /etc/centos-release の結果)
larachan

2021/04/25 23:28

CentOS Linux release 7.9.2009 (Core)になります!
guest

回答1

0

ベストアンサー

apache 通したものが remi/php80 を参照してるなら php-pdo ではなく php80-php-pdo を入れないといけないんじゃないでしょうか

投稿2021/04/23 11:56

lazex

総合スコア604

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

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

larachan

2021/04/23 12:15

ご回答ありがとうございます。本来なら/usr/lib64/httpd/modules配下にlibphp8.soがインストールされるはずらしいのですが、なかったので、php80-phpをインストールしてlibphp8.soをhttpdコンフで指定しました。apacheで/etc/php.iniを参照させたいので、正しいmoduleの取得方法を調べるできでしょうか?
lazex

2021/04/23 12:29

「/etc/php.iniを参照させたい」とのことですが、 php80-php なら /etc/opt/remi/php80/php.ini になると思います。同じバージョンならシンボリックリンクで /etc/php.ini を参照させても動くかもですが、必要な変更点だけ /etc/opt/remi/php80/php.ini に適用させればいいんじゃないかと思います。場所が /etc/php.ini じゃないといけない理由があるんでしょうか?
larachan

2021/04/23 12:35

ありがとうございます。php7.4の時は Configuration File (php.ini) Path /etc Loaded Configuration File /etc/php.ini Scan this dir for additional .ini files /etc/php.d Additional .ini files parsed /etc/php.d/20-bz2.ini, /etc/php.d/20-calendar.ini, /etc/php.d/20-ctype.ini, /etc/php.d/20-curl.ini, /etc/php.d/20-dom.ini, /etc/php.d/20-exif.ini, /etc/php.d/20-fileinfo.ini, /etc/php.d/20-ftp.ini, /etc/php.d/20-gd.ini, /etc/php.d/20-gettext.ini, /etc/php.d/20-iconv.ini, /etc/php.d/20-json.ini, /etc/php.d/20-mbstring.ini, /etc/php.d/20-pdo.ini, /etc/php.d/20-phar.ini, /etc/php.d/20-simplexml.ini, /etc/php.d/20-sockets.ini, /etc/php.d/20-sodium.ini, /etc/php.d/20-sqlite3.ini, /etc/php.d/20-tokenizer.ini, /etc/php.d/20-xml.ini, /etc/php.d/20-xmlwriter.ini, /etc/php.d/20-xsl.ini, /etc/php.d/30-mcrypt.ini, /etc/php.d/30-pdo_sqlite.ini, /etc/php.d/30-xmlreader.ini, /etc/php.d/40-zip.ini で/etc配下を参照させていたので、構成をかえたくないなというのがあったのが理由です!シンボリックリンクで試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問