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

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

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

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

2932閲覧

localhostのPHPにアクセスできない

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2020/09/17 11:10

編集2020/09/17 11:55

Windowsを利用しているのですがLinuxの勉強も兼ねてDockerをインストールしました。無事にUbuntuも起動したのでDockerからnginx, PHP, MySQLをインストールしました。docker psで覗いてみるとnginx, PHP, phpMyAdmin, MySQLは全て動いていました。MySQLはまだDBを作成していないのでアクセスできないもののnginxのWelcomeという画面やphpMyAdminのログイン画面も表示されました。ただ、PHPだけはアクセスできませんでした。nginxでポート80が利用されているのでPHPはdocker run -p 8080:80 phpと指定しました。再起動してもlocalhost:8080からは何も返ってきません。エラー表示はERR_EMPTY_RESPONSEでした。

調べてみると広告をブロックするようなツールの使用等でアクセスできない可能性もあるということだったのですが、私は導入していません。Chrome, IE Edge, Firefoxで試しましたが結果は同じでした。index.phpの中身は<?phpの1行だけです。半角、全角のミスはありませんでした。参考にしたのは以下のサイトです。

DockerによるPHP開発環境構築(PHP + MySQL + Nginx)

なにか見落としているところがあればアドバイスをいただけないでしょうか?

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

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

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

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

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

m.ts10806

2020/09/17 11:46

>PHPは8080:80と指定しました どこでどのように指定したのでしょうか。
m.ts10806

2020/09/17 11:46

>index.phpの中身は<?phpです。 実際のコードをなるべくそのままご提示ください。 (phpinfo()だけでも良いですが)
退会済みユーザー

退会済みユーザー

2020/09/17 11:52

PHPのポート指定は`docker run -p 8080:80 php`と指定しました。index.phpの中身は<?phpの1行だけです。
m.ts10806

2020/09/17 11:55

>index.phpの中身は<?phpの1行だけです。 処理が何もないと問題切り分けが出来ないのでせめて <?php phpinfo(); としてください。
退会済みユーザー

退会済みユーザー

2020/09/17 12:39

index.phpの中身を書き換えましたがERR_EMPTY_RESPONSEでした。あと8080:8080でも試してみましたが同じくERR_EMPTY_RESPONSEでした。ファイアーウォールをOFFにもしてみましたが結果は変わらずでした。
t_obara

2020/09/17 12:49

参考のサイトでは、docker-composeを利用していますが、docker runを利用しているので、状況が把握できません。参考サイトは良いのですが、可能な限りご自身で行ったことや、現在の状況(docker psの結果など)をご提示ください。ちなみに、phpインスタンスではポートを必要としません。それはnginxが受け持つからです。
退会済みユーザー

退会済みユーザー

2020/09/17 12:58

docker-composeでエラーが出たので手動でrunしたのですが、それが昼頃だったので記憶が曖昧な部分があります。エラーも含め詳細を報告するために、もう一度docker-composeの部分からやってみます。もしかしたら明日になるかもしれませんが、何卒よろしくお願いいたします
退会済みユーザー

退会済みユーザー

2020/09/19 09:37

docker-composeの内容をきちんと理解して自分で書けるようになったら解決しました。volumesの指定や他にもいくつか原因があったようです。ありがとうございました
guest

回答2

0

php-fpmの確認

phpのコンテナ上でphp-fpmが動いているかどうかの確認しましょう
psで確認します。
使い方分からなかったら調べてください。
コンテナの外から打つならそのやり方法も調べてください。

php-fpmが動いていない場合

  • php-fpmを直接起動する
  • またはphp-fpmが起動するようにDockerfileの修正しましょう

php-fpmが動いている場合

  • 待ち受けポートを確認し、誤っている場合はdocker runのコマンドを直しましょう

投稿2020/09/17 13:29

hentaiman

総合スコア6389

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

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

退会済みユーザー

退会済みユーザー

2020/09/19 09:29

きちんと勉強して無事に解決しました。ありがとうございました
guest

0

ベストアンサー

dockerについてわからない点が多すぎたので1日かけて勉強した結果、docker-composeのvalumesの指定や取得するimageが間違っていたことがわかりました。Dockerfileの書き方や意味もわかっていなかったのですが適宜修正できるようになり無事に導入できました。同じdocker初心者の方は導入失敗の原因としてはスペルミスも多いと思います。エラー表示されたら、エラー内容で検索すると解決の糸口が見えると思います。ネットのdocker-composeをそのまま利用せずに、初心者用記事を参考に内容を理解すれば解決の早道になると思います。

特にvolumesのホスト側のディレクトリをコンテナにマウントする部分でつまづくので注意してください。

投稿2020/09/19 09:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問