キャンペーン


2014年5月7日水曜日

xampp + cakephp で「Object not found!」 にハマる


自分はWeb開発者ではないが、数年前に使ったPHPフレームワーク、cakePHPを再度使ってみようという衝動に駆られた。

Windows上、XAMPPで、Helloアプリくらい表示してやろうかと…

cakephpのソースはgitでcloneしてきて c:/cakephp に展開。

apacheの設定は virtual host 機能を使って http://localhost/cakephp/ で実行させて表示する思惑。

早速http.confとhttpd-vhosts.confを以下のように書き換えて実施した。

(httpd.conf)

コメントをはずす
:
LoadModule rewrite_module modules/mod_rewrite.so
:
LoadModule vhost_alias_module modules/mod_vhost_alias.so


(httpd-vhosts.conf)

/cakephpディレクトリの設定を追加(htdocsフォルダ以外のディレクトリにマップ)

<VirtualHost *:81>
    ServerAdmin postmaster@dummy-host.localhost
    ServerName ibmnote
    RewriteEngine on
    Alias /cakephp "C:\cakephp"
    ErrorLog "logs/vhost-error.log"
</VirtualHost>

<Directory "C:\cakephp">
    <IfModule php5_module>
     <Files "status.php">
      php_admin_flag safe_mode off
     </Files>
    </IfModule>
  Options +FollowSymLinks
 Require all granted
</Directory>


すると「Object not found!」 エラー勃発!
CakePHPの利用者がどれほど居るかしらないが、かなりこれに遭遇されてる方が多い模様。



確かに、初回のcakephpインストール時にもcssが効かなかったり、アイコン画像が表示しなかったりして変だぞ?と感じたのだが、


cssフォルダを cakephp/app/webroot/css から cakephp へコピーしてくれば回避できるなどデマがはびこっているのだがこれは間違いだと改めたい

本来なら上図は下記のように表示されるべきものである。




あきらかにapacheのmod_rewriteエンジンの設定ミスである

※もちろんvpath、app, webroot の各 .htaccessのRewriteBaseに下記のように設定されている必要もある(追記 add 2014/5/8)

    RewriteBase /vpath/
    RewriteBase /vpath/app/
    RewriteBase /vpath/app/webroot/



結論から先に説明してしまったが、それに至るまでには道のりは長かった。

実際 xampp のデフォルトWEBコンテンツフォルダ「htdocs」へ配置すればなんら開発時は問題はないのだが、仮想ディレクトリに配置した時(本番リリース時)に問題になる。


実際Apacheのエラーログには根拠となるものが吐かれれず苦労した。しかし下記ページにたまたまで出会うことができ、幸福を手に入れることができた。
http://codeblow.com/questions/htaccess-object-not-found-problem-cakephp-on-xamp-and-mac-os-x/

実は、httpd-vhosts.confファイルの仮想ディレクトリの設定では、特定の仮想ディレクトリにrewriteを適用するにはルート「/」の設定も必要であった。

(httpd-vhosts.conf)


<Directory />
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    #XAMPP
    Order allow,deny
    Allow from all
</Directory>


と一件落着で、hello world! が表示されたw



一見表面ズラは正常に見えてもコントローラやビューを使ったりすると「Object Not Found!」が出たりするので、CakePHPを始める時はこのRewite辺りのチェックに注意したい。

今回のテーマはCakePHPのみならず一般的な知識として有用だと思います。

物事は根本から解決すべきだと思う今日このごろです。



2014年5月4日日曜日

海賊クエスト簡易マップ(まだ途中)

最近ハマっているカイロソフトのAndroid RPGゲーム「大海賊クエスト」(本家はこちら)。

無料で結構遊べ暇つぶしになります(おじさんでも理解できましたw)。

emobile GL07sでしっかり動いてくれている(時々突然落ちます)。

攻略本はないみたいでこちらにまとめサイト(for android)があるのみ。
(文字とデータばかりでピンときません)



色んな他のゲームをインストールするだけでGoldがもらえるので最初の頃は結構ありがたい。

でもだんだん途中からクエストや経験積むのに時間もかかってきてるのでゴールドパス(525円/月)に定期契約中w これって消費税5%のままじゃないの?w

でも後半チームを拡大するにはGoldがたくさん必要になってくるのでこれ以外にもコストが出て行くかもしれません。




さて一応マップがあると便利だと思ったのでくっつけて自作しましたw

気休めかもしれませんが、これあると脳内整理できる気がします。

最近記憶力低下してるんでこういうのないとキツイw










東南エンド



この先まだ進んでないので保留中。


ビジュアルなモンスター図鑑もほしいけどないみたい…