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

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

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

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

CakePHP

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

Docker

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

Q&A

1回答

1129閲覧

[cakePHP+Docker] ローカル開発環境構築で「Request exceeded the limit of 10 」のエラーが発生する

to__fu

総合スコア6

PHP

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

CakePHP

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

Docker

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

0グッド

0クリップ

投稿2023/03/13 15:48

実現したいこと

  • cakePHP+MySQL+Docker でローカルに開発環境を作り、既存ソースを動かしたい

前提

既存ソース+Docker+cakePHPでのローカル開発環境を構築したいです。
コンテナの起動まではできたのですが、
index.phpにアクセスするとタイトルのエラーが発生し、500エラーとなってしまいます。

https://book.cakephp.org/2/ja/contents.html
こちらを参考に新規で環境を作成してみたのですが、
こちらは問題なく画面が立ち上がるところまで確認できました。
ネットで調べた範囲で、.httaccessの記述に問題があるかと思ったのですが、
記載内容にも大きな違いがなく、他に何を疑うべきか検討もつかず困っております。

当方、PHPはほぼ触ったことがなく、cakePHPも初見のため、
どこでどのような設定をしているかも分からず、全てが手探り状態です。
普段はrubyでの開発を行っており、Docker自体はrubyの開発環境構築で使用しているので
基本的な知識はある程度、という感じです。
また、cakePHPのバージョンがかなり古いですが、事情によりバージョンアップの対応等は行わないとのことです。

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

コンテナ立ち上げ後、http://localhost:3001 にアクセスすると以下エラーが発生する
画面は500エラーが返却される

AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost:3001/

該当のソースコード

.htaccess

<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>

Dockerfile

FROM php:5.6-apache RUN apt-get update -yqq \ && apt-get install -yqq --no-install-recommends \ git \ zip \ unzip \ && rm -rf /var/lib/apt/lists # Enable PHP extensions RUN docker-php-ext-install pdo_mysql mysqli # Install composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer # Add cake and composer command to system path ENV PATH="${PATH}:/var/www/html/lib/Cake/Console" ENV PATH="${PATH}:/var/www/html/app/Vendor/bin" # COPY apache site.conf file COPY ./docker/apache/site.conf /etc/apache2/sites-available/000-default.conf # Copy the source code into /var/www/html/ inside the image COPY . . # Set default working directory WORKDIR ./app # Create tmp directory and make it writable by the web server RUN mkdir -p \ tmp/cache/models \ tmp/cache/persistent \ && chown -R :www-data \ tmp \ && chmod -R 770 \ tmp # Enable Apache modules and restart RUN a2enmod rewrite \ && service apache2 restart EXPOSE 80

docker-compose.yml

version: "3" services: app: build: context: . dockerfile: docker/Dockerfile volumes: - .:/var/www/html ports: - 3001:80 environment: TZ: "Asia/Tokyo" depends_on: - db db: image: mysql:5 volumes: - db-data:/var/lib/mysql ports: - "23306:3306" environment: MYSQL_DATABASE: db MYSQL_ROOT_PASSWORD: xxxxx volumes: db-data: external: false

試したこと

  • .htaccess に RewriteBase / の1行を追加してみた
  • 新規で作成した環境と既存ソースを比較し、.httaccessやDocker系のファイルの設定を合わせてみた

補足情報(FW/ツールのバージョンなど)

情報として何を出せばいいか分からず、不備不足もあると思います。
何か一つでもとっかかりが欲しく、藁にも縋る思いでこちらに質問させていただきます。
参考サイトなどでもよいので、何か情報をいただけると大変助かります。
どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

まずエラーの意味から考えましょう。

AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost:300

内部的なリダイレクトが10段階を超えてしまったので処理できません、といっています。
つまり本来アクセスしたい URI へのリダイレクトが、無限リダイレクトしているような状況です。

.htaccess の内容はこちら(CakePHP の公式ドキュメント)を見て、設定を確認してみましょう。(webroot ディレクトリ配下の .htaccess か、そもそものフォルダ配置が怪しいかな)

投稿2023/03/14 02:21

tacsheaven

総合スコア13703

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問