CakePHP3のインストールでURL rewriting……のエラーが!その解決方法解説
2017/10/28
CakePHP3のインストールは成功したけどエラー画面が出る
CakePHP3をインストールして出るエラーについて
CakePHP3をインストールは成功したはずなんだけども、下記のいつもの赤い画面が出てこない...
替わりに出てきた画面は、下記のようなエラー画面...
そんな場合の対応方法を解説します。
解決方法は httpd.confに .htaccessを有効にする設定を記述
まず最初に解決方法を記載しておきます。
viコマンドで、「httpd.conf」を開きます。
「httpd.conf」の編集は root権限が必要ですので、「sudo」コマンドを利用して、開きます。
※「httpd.conf」ファイルのパスは、サーバによって違う場合があります。
1 |
sudo vi /etc/httpd/conf/httpd.conf |
開いた「httpd.conf」に下記を追加します。
これを追加することで、.htaccessを有効にする、という設定です。
いくつかサブドメインがある場合は、各サブドメインごとに設定します。
追加する場所は、「httpd.conf」の一番下で OKです。
1 2 3 4 5 |
<Directory "/var/www/html/cakephp3"> AllowOverride All Order allow,deny Allow from all </Directory> |
「httpd.conf」を更新したら、その設定を反映させるために下記のコマンドで Apacheの再起動をしましょう。
1 |
sudo service httpd restart |
これで改めて CakePHP3の URLにアクセスすると、いつも見る赤い画面が表示されるでしょう。
CakePHP3をインストールして出るエラーの内容の確認
左記に画像を出していたエラーの内容ですが、下記のような内容になっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Welcome to CakePHP 3.3.14 Red Velvet. Build fast. Grow solid. Please be aware that this page will not be shown if you turn off debug mode unless you replace src/Template/Pages/home.ctp with your own version. URL rewriting is not properly configured on your server. 1) Help me configure it 2) I don't / can't use URL rewriting Environment Your version of PHP is 5.5.9 or higher (detected 5.6.29). Your version of PHP has the mbstring extension loaded. Your version of PHP has the openssl extension loaded. Your version of PHP has the intl extension loaded. Filesystem Your tmp directory is writable. Your logs directory is writable. The FileEngine is being used for core caching. To change the config edit config/app.php |
Google翻訳に突っ込んでみても、下記のような日本語になるだけで、全く意味が取れません。
1 2 3 4 5 |
src / Template / Page / home.ctpを独自のバージョンに置き換えない限り、デバッグモードをオフにするとこのページは表示されません。 サーバー上でURLの書き換えが正しく構成されていません。 1)私はそれを構成するヘルプ 2)私は/ URLを書き換えることはできませんしないでください |
とはいえ、「Help me configure it」の方のリンクをたどって、下記のページに行くと、サーバの設定をしたことがある方であれば、エラーの原因が理解できるでしょう。
原因説明の URLは、↓ここ
https://book.cakephp.org/3.0/en/installation.html#url-rewriting
エラーの原因は、「.htaccessによるリダイレクトの設定」がうまくいっていないため、このままだと正常に動作しませんよ、というエラーです。
そのため、「httpd.conf」に .htaccessを利用できるような設定を行うことで不具合の解消をする、という対応が必要になってきます。
URL rewriting is not properly configured on your server.
今回発生した、.htaccessが使える環境にないために発生する CakePHP3のエラーですが、解説はしてみたものの、この解説が読まれることはかなりまれな事象なんじゃないか、と思っています。
理由は、このエラーを見る方の多くは、自分でトラブルを解決できる方であろうと思うからです。
この不具合が起こる原因は、「.htaccessが使える環境にない」ということなのですが、そのような環境は、下記の 2つくらいじゃないかと思うわけです。
・レンタルサーバで .htaccessが使えないサーバ
・サーバを設定したが .htaccessを使えるようにする設定を忘れていた
前者の場合はそもそも .htaccessが使えないので、どうしようもないのですが、レンタルサーバで .htaccessが使えないサーバの場合は、そもそも CakePHP3がインストールできるとは思い難いですね。
後者の場合、VPSや AWS、専用サーバなどを借りて、もしくは、ローカル環境に VirtualBoxなどを立てて、そこに環境を構築しながら、CakePHP3をインストールしているんじゃないかと思います。
そんな感じで LAMP環境を自分で構築できるような方であるならば、メッセージの「URL rewriting is not properly configured」というあたりを読むと、「.htaccessのリライト処理が設定されていないのか!」と思い至るんじゃないかと思います。
ただ、私のように原因が分からず、小一時間も悩むような方がいた場合に解決の糸口にしてもらえれば、と思ってこの記事を書きました。
このエラーを見ることなく、CakePHP3のインストールがすんなり終わることを願いつつ...
そもそも「URL rewriting is not properly configured on your server.」のメッセージの前に編集されている「Please be aware that this page will not be shown if you turn off debug mode unless you replace src/Template/Pages/home.ctp with your own version.」のメッセージは、正常にインストールされても表示されているメッセージですので、ここは今回発生したエラーとは全く関係ないところなのですが、英語が苦手だとどこにエラーが書いてあるかがまずわからないですよねぇ。
そして、説明のサイトも英語ですし...
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因
Bakeして自動生成した入力フォーム処理を元に少し処理を追加したら、入力エラーがあってもエラーメッセージが表示されなくなった。原因はリダイレクトの処理にあった。
-
-
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
CakePHP5のヘルパーで他のヘルパーを読み込む方法を解説。公式の日本語CookbookはCakePHP4のソースのままで間違っているため注意が必要。CakePHP4からの移行の際も同じ点に注意が必要。
-
-
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
CakeDC謹製Usersプラグインの紹介。UserHelperを利用し、ログアウトのリンクや権限があるときのみ表示されるリンク、プロフィールページへのリンク、reCAPTCHAの設置方法などを解説。
-
-
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
CakePHP3のキャッシュファイルのパーミッションエラー Error: SplFileInfo::openFile()が発生した場合の対応方法解説。app.phpにキャッシュファイルのパーミッション設定を行い、既存のファイルは削除。
-
-
CakePHP3でテーブルにカラム(項目)を追加したときに変更するポイントのまとめ
CakePHP3でシステム開発をする際、途中でカラムを追加した場合に何を変更すればいいかを確認。カラムを追加する前後で Bakeした結果を比較し、変更になった点をリストアップした。
-
-
CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法
CakePHP3でPHPExcelを利用してエクセルを編集、出力するサンプルソース+解説。PHPExcelのインストール方法の解説からファイル保存とダウンロードの方法なども解説。
-
-
CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
CakePHPのユーザ認証に使用するオフィシャルなプラグインAuthenticationだが、CakePHP5系では Authentication Ver.3系を使う必要があるが、公式ChiffonBookが間違えている。
-
-
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のクリエビルダーを使って複数のOR条件をANDでつなぐSQL文を作成する方法を解説。OR条件を記述したwhere句を2つつなげて記述する。
-
-
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。
-
-
MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認
MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。