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

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

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

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

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

Q&A

1回答

3213閲覧

Docker で wordpress を立ち上げたら403Forbiddenが出力される。

donut4

総合スコア148

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

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

0グッド

0クリップ

投稿2020/07/21 08:01

編集2020/07/28 10:09

dockerでwordpressのプロジェクトを立ち上げたら
ブラウザ上で403 Forbiddenが出力されるエラーについて困っております。

docker-compose.yml

version: '3.6' services: wp: image: wordpress:${WORDPRESS_VERSION:-php7.3-fpm} build: context: . dockerfile: docker/Dockerfile container_name: wp volumes: - ./config/php.conf.ini:/usr/local/etc/php - ./wordpress/teenz:/var/www/html/teenz - ./.env:/var/www/.env - ./logs/xdebug:/var/log/xdebug environment: - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME:-wordpress} - WORDPRESS_TABLE_PREFIX=${WORDPRESS_TABLE_PREFIX:-wp_} - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST:-mysql} - WORDPRESS_DB_USER=${WORDPRESS_DB_USER:-wordpress} - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD:-wordpress} depends_on: - mysql restart: always mysql: image: mysql:5.7 volumes: - ./tmp/mysql:/var/lib/mysql restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress nginx: image: nginx:${NGINX_VERSION:-latest} container_name: nginx ports: - '80:80' # - '443:443' volumes: - ${NGINX_CONF_DIR:-./nginx}:/etc/nginx/conf.d - ${NGINX_LOG_DIR:-./logs/nginx}:/var/log/nginx - ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html # - ${SSL_CERTS_DIR:-./certs}:/etc/letsencrypt # - ${SSL_CERTS_DATA_DIR:-./certs-data}:/data/letsencrypt depends_on: - wp restart: always adminer: image: adminer restart: always links: - mysql ports: - 8080:8080

docker/Dockerfile

FROM wordpress:${WORDPRESS_VERSION:-php7.3-fpm} RUN apt-get update && \ # pecl install xdebug && \ docker-php-ext-enable xdebug RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

ビルド中は全く問題なく終わり
コンテナも無事起動されたんですがなぜか繋がりません

#エラーログ

error.log 2020/07/28 09:39:27 [error] 28#28: *4 directory index of "/var/www/html/" is forbidden, client: 172.24.0.1, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "localhost" acces.log 172.24.0.1 - - [28/Jul/2020:09:39:27 +0000] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"

#気になること
localhost:8080に接続するとなぜか
adminerのログイン画面の方には繋がります。

抽象的な質問で恐れ入りますが
お詳しい方がいましたらよろしくお願いします。

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

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

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

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

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

yoorwm

2020/07/21 08:04

> localhost:8080に接続するとなぜか > mysqlの方には繋がります。 mysqlにはつながりませんよ?adminerにつながっているだけです。 ご自身で書いた設定の意味分かっていますか?
donut4

2020/07/21 08:10

間違えました。 mysqlではなくadminerのログイン画面です。
t_obara

2020/07/22 06:38

とりあえず、状況を確認するために、 docker-compose logs、docker psなどのコマンドを叩いてみてください。
TaichiYanagiya

2020/07/24 04:58

403 は Nginx が返していると思います。Nginx の access.log, error.log を確認ください。
donut4

2020/07/28 10:07

error.log は 2020/07/28 09:39:27 [error] 28#28: *4 directory index of "/var/www/html/" is forbidden, client: 172.24.0.1, server: 127.0.0.1, request: "GET / HTTP/1.1", host: "localhost" acces.log 172.24.0.1 - - [28/Jul/2020:09:39:27 +0000] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36" でした。いずれもさっぱりですw
TaichiYanagiya

2020/07/28 13:55

wp コンテナで php-fpm が待ち受けていて、nginx コンテナから接続する設定でしょうか。 php-fpm に接続できず、かつ、ドキュメントルート (/var/www/html/) 直下に index.html などが存在しないため、「directory index of "/var/www/html/" is forbidden」のエラーとなっているように思います。 /etc/nginx/conf.d/ 以下の Nginx の設定を確認ください。
guest

回答1

0

ブラウザ上で403 Forbiddenが出力される 状況は、http://ホスト/ へのアクセス時であれば、Nginx のドキュメント・ルートの設定しているディレクトリ( /var/www/html/ でしょうか)に index.phpindex.html が無い場合によく出るものです。

質問に掲載された docker-compose.yml と、Nginx のドキュメントルートの設定などから推測しますと、

  • nginx の wordpress 用のボリュームは /var/www/html( - ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html
  • wp のボリューム指定は /var/www/html/teenz (- ./wordpress/teenz:/var/www/html/teenz )

ですので、もしかして http://ホスト/teenz/ に接続すると、表示されるのではないでしょうか。

このような場合は、 docker-compose logs でログを確認したり、Nginx のドキュメント・ルート設定の確認と、そのドキュメント・ルートの中にファイルやディレクトリが存在しているかどうか確認されることをお薦めします。

投稿2021/04/10 10:06

zembutsu

総合スコア1584

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問