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

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

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

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

CakePHP

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

Q&A

解決済

1回答

5969閲覧

phpモジュールがないので、cake3がうまく動作しません。

iwasaki1112

総合スコア7

PHP

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

CakePHP

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

0グッド

0クリップ

投稿2017/09/08 08:18

編集2017/09/08 10:31
[Cake\Database\Exception\MissingExtensionException] Database driver Cake\Database\Driver\Postgres cannot be used due to a missing PHP extension or unmet dependency

cakephpのerror.logで上記のようなエラーが出てしまって、うまく動作しません。
恐らく、postgresの拡張が入ってないと思い。

apt install postgresql
extension=php_pdo_pgsql.dll extension=php_pgsql.dll

インストールし、php.ini内の上記2点のコメントアウトを解除し、apache再起動をかけましたが。
うまく行きませんでした。

どのように対処すればいいのか詳しい方教えていただけると助かります。
よろしくお願いいたします。

======= 追記 =======

イメージ説明

An Internal Error Has Occurredと画面上表示されます。

======= 追記 =======

スペックを下記に記載します。

Linux version 4.9.41-moby
PHP 5.6.28 (cli) (built: Nov 15 2016 00:38:35)
Loaded Configuration File /usr/local/etc/php/php.ini

======= 追記 =======

Additional .ini files parsed

  • /usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
  • /usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
  • /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
  • /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
  • /usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
  • /usr/local/etc/php/conf.d/opcache-recommended.ini

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

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

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

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

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

iwasaki1112

2017/09/08 08:31

mts10806さま こちらの設定はしておりますが、うまく動作しないんです。。
guest

回答1

0

ベストアンサー

PostgreSQL はあっても、PHP の PDOモジュール(php-pgsql)が入っていないのではないでしょうか。

Bash

1sudo apt list --installed php-pgsql

として、パッケージが表示されるでしょうか?

投稿2017/09/08 08:45

tacsheaven

総合スコア13703

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

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

iwasaki1112

2017/09/08 08:47

Listing... Done と表示されました。
tacsheaven

2017/09/08 08:48

ということは、インストールされていません。 ですので、sudo apt install php-pgsql しましょう。
iwasaki1112

2017/09/08 08:54

php-pgsql/xenial,now 1:7.0+35ubuntu6 all [installed] と出るようになりましたが、apacheを再起動してもエラーログは変わらずです。。
tacsheaven

2017/09/08 08:58

php.ini の extention のコメントアウトをもとに戻してください。環境が Linux 系で .dll って変です。 本来は extension=pgsql.so になるはずです。
iwasaki1112

2017/09/08 09:10

php.iniファイルの雛形がどこにあるかわからなかったため、適当な場所から中身をコピペしてしまったからかもしれません。 雛形ファイルの場所を教えていただけると幸いです。
tacsheaven

2017/09/08 09:17

ひな形というか、どこの php.ini を読んでいるかなら、 $ php -i | grep php.ini とすればわかります。(Loaded Configuration File => [フルパスファイル名] として出てきます)
iwasaki1112

2017/09/08 09:50

ありがとうございます。確認できました。 pgsql.soのパスが違うって言うことも考えられますか?
tacsheaven

2017/09/08 10:01

今回の場合、必要ない extension 記述が悪さをしているのです。ですからその extension= 指定をコメントアウトして無効にしてください。正しい extension の指定は、apt install php-pgsql したことで設定されているはずなのです。
iwasaki1112

2017/09/08 10:07

そうだったんですね、すいません。 コメントアウトを戻して確認して見ましたがやはりerrorログは同じです。
tacsheaven

2017/09/08 10:13

お使いの(PHPを動かしている)OS のバージョンと PHP のバージョンを質問に追記してください。 OS は Linux 系であれば、どのディストリビューションかも必要です(apt しているので Debian 系なのはわかるのですが、PHP が 5.x 系 と 7.x 系でファイルの配置場所が違ってきます) 正直、php.ini をよくわからずに上書きしてしまっているようなので、いったんアンインストールしてやり直したほうが良いとは思うのですが、単にアンインストールしただけだと設定ファイルが残って意味がない可能性があります。
iwasaki1112

2017/09/08 10:17

追記いたしました、ご確認いただけますでしょうか。
tacsheaven

2017/09/08 10:26

うーん…? php --ini で読み込んでる ini ファイル全部チェックするしかないかな、これは。 Loaded Configuration File の他に、 Additional .ini files parsed としてずらずら出ていると思われるので、そのファイルを片っ端から確認かな。(Additional の中に pgsql.ini があるはずなんですが)
iwasaki1112

2017/09/08 10:31

追記いたしました、すいませんがご確認いただけますか?
tacsheaven

2017/09/08 10:38

上げられた ini ファイルの名前を見る限り、pgsql を読み込む設定がなされていないようです。 Docker + PHP + PostgreSQL だと、 http://qiita.com/cyclon2joker/items/39e620d3d16fa1f6edf0 を参考に Docker コンテナを作り直したほうが良いかもしれません。
iwasaki1112

2017/09/08 10:41

ありがとうございます。 こちらを見ながらやってみます!
iwasaki1112

2017/09/11 11:05

tacsheavenさま 参考にいただいたqiitaの記事で無事うまくいきました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問