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

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

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

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Apache

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2020閲覧

AWS EC2上PHPからRDSへ,PDOでデータベースアクセスできない

aiueoao

総合スコア146

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Apache

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/11/19 10:05

前提・実現したいこと

Linux初心者です.

PostgreSQLを入れたRDS内のTableに,EC2上のApacheを介してブラウザからアクセスたいのですが接続できません.
ブラウザには new PDO()の直前までしか表示されません.


<準備等>
インストール
yum install postgresql95.x86_64
yum install -y php72 php72-mbstring
ドキュメントルートに以下のphpファイルを置いてDBアクセスします.


こちらを参考に,ターミナルからのPostgreSQLへの接続は出来ることを確認しました.
psql -h <RDSのエンドポイント> -U <DBのユーザ名> -d <DB名>

ApacheのError logをcd /var/log/httpd/で見た結果,以下のメッセージがありました.
(私が以前弄ってたXAMPP環境では) php.ini内のextension=php_pdo_pgsql.dllを有効にすればPDOが使えたと思うのですが.AWS上では見当たりませんでした.

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

PHP Fatal error: Uncaught Error: Class 'PDO' not found in /var/www/html/RDSTest.php:15\nStack trace:\n#0 {main}\n thrown in /var/www/html/RDSTest. php on line 15

該当のソースコード

php

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8" /> 5<title>PostgreSQL_ConnectTest</title> 6</head> 7<body> 8 9<?php 10 11$dsn='pgsql:dbname=testdb; host=RDSエンドポイント;port=5432'; 12$user = 'user'; 13$password = 'pass'; 14 15try{ 16 print("接続します"); 17 $db = new PDO($dsn,$user,$password); 18 print '接続に成功しました!'; 19}catch (PDOException $e){ 20 print('Connection failed:'.$e->getMessage()); 21} 22 23?> 24</body> 25</html>

試したこと

yum install php-pdo_pgsql でPDOの追加をしましたがエラーが出ます.

txt

1 2読み込んだプラグイン:priorities, update-motd, upgrade-helper 3amzn-main | 2.1 kB 00:00:00 4amzn-updates | 2.5 kB 00:00:00 5依存性の解決をしています 6--> トランザクションの確認を実行しています。 7---> パッケージ php-pgsql.x86_64 0:5.3.29-1.8.amzn1 を インストール 8--> 依存性の処理をしています: php-pdo(x86-64) = 5.3.29-1.8.amzn1 のパッケージ: php-pgsql-5.3.29-1.8.amzn1.x86_64 9--> トランザクションの確認を実行しています。 10---> パッケージ php-pdo.x86_64 0:5.3.29-1.8.amzn1 を インストール 11--> 依存性の処理をしています: php-common(x86-64) = 5.3.29-1.8.amzn1 のパッケージ: php-pdo-5.3.29-1.8.amzn1.x86_64 12--> トランザクションの確認を実行しています。 13---> パッケージ php-common.x86_64 0:5.3.29-1.8.amzn1 を インストール 14--> 衝突を処理しています: php72-common-7.2.11-1.6.amzn1.x86_64 は php-common < 5.5.22-1.98 と衝突しています 15--> 依存性解決を終了しました。 16エラー: php72-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64 17 問題を回避するために --skip-broken を用いることができます。 18 これらを試行できます: rpm -Va --nofiles --nodigest

補足情報

Server version: Apache/2.4.34 (Amazon)
PHP 7.2.11
インストールしたクライアントモジュール  psql (PostgreSQL) 9.5.14
RDS PostgreSQL 9.5.4-R1

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

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

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

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

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

guest

回答1

0

ベストアンサー

yum install -y php72 php72-mbstringでインストールしてるから
yum install -y php72-pdo_pgsqlではないでしょうか

投稿2018/11/19 10:16

rururu3

総合スコア5545

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

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

aiueoao

2018/11/19 10:28

頂いた回答通りにインストールしたら接続できました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問