2017年03月16日
このエントリーをはてなブックマークに追加
僕はサーバーを管理することが多く、中のコンテンツについては、あまり興味もありませんし、なにより知識がありません。
今回、 cakephp を動作させているサーバーで作業していました。

httpd.conf の設定も完了し、このときには動作は問題ありませんでした。
Site A
Site B
Site C
バーチャルホストで複数のサイトを振り分け、ログを見る限りではそれぞれに問題無く振り分けられ、また静的なファイルについては、正しく表示されることも確認しました。

そしてコンテンツ管理者が Site A-C に cakephp を設置し動作させたところ、Site Aは正しく表示されるのですが、それ以外のURLはすべて同じようにSiteAが表示されてしまいました。

最初に言われたのは、.htaccess は有効になっていますか?と。もちろん今回の件は htaccess が利用されることを聞いていたので、・・・そしてhtaccessを利用するのはあたりまえだし・・・ 設定は終わらせていました。それに話を聞く限りでは SiteA の cakephp は正しく動作しているようです。

と、このような状態で httpd.conf の各種設定を改めて確認しました。しかしながら僕が確認した範囲ではすべてが正しく動作しているようでした。

ということでまずは基本的な動作確認
1. ログの確認
2. rewrite log の取得
3. cakephp の設定確認

1. ログの確認
VirtualHost で設定している箇所から、ログファイルの場所を確認します。
SiteAや、SiteBにアクセスしたときに http のログファイルが正常に表示され、アクセスされていること、レスポンスが正しいことを確認します。
この確認によって ServerName や ServerAlias の設定が正しいことを確認します。
VirtualHost が複数あって、ServerName などに設定している値が重複していると、上位行が優先されるので、下位行は設定が活きません。
意外とありがちなミスですね。

2. rewrite log の取得
VirtualHost の設定項目に以下のログ取得項目を記載します。 reload も忘れずに。
・・・以前もこのことブログに書いたと思っていたら、やっぱり前回も cakephp 絡みでした
RewriteLog /tmp/rewrite-SiteA.log
RewriteLogLevel 9

これで、 正しいサイトの htaccess が読み込まれていること、意図通りの動作になっていることをを確認します。
そして、上記設定を確認したところ問題ありませんでした。

ここまで確認したところ、やはり conf ファイルは問題なさそうでした。そのため次は cakephp の設定が疑わしくなります。特にSiteAは問題無いので、SiteB-Cですね。

3. cakephp の設定確認
パス定数と変更方法やURLの取得
知識が足りない僕ができることは限られています。DBの接続情報を確認したり、テキストベースで行われている設定ファイルを確認したり。

で、上記参考サイトの通り、cakephp を動作させるパスの設定を確認しました。
webroot/index.php
そしてどうやら以下の APP_DIR に間違いがあることに気づきました。
define('APP_DIR', 'app');

ここを書き換えたところ、SiteA-Cまで問題無く表示されるようになりました。


stock_value at 10:01│Comments(0)TrackBack(0)技術 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔