キャンペーン


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










東南エンド



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


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





2014年4月23日水曜日

GitHubをProxy経由で使う方法


久方ぶりの投稿。

GitHubというVCS(バージョンコントロールシステム)が近頃盛んに使われてるようなので使ってみた。



別に仕事で使っているわけではなく興味本意。

少し前まではSubVersionとか使ってたけど基本概念は同じっぽい。

違いはセキュリティが強化されている点とインターネット上利用が重点が置かれている点か?

みてる限りGitHubにアップされているモジュールをローカルに取り出してくることをCloneというらしい(初心者丸出し)。

例えば私のGitHubのtestモジュール(necoscard/test)であれば以下のようなGitコマンドでチェックアウトしてこれる。

git clone git@github.com:necoscard/test.git

実際これをするためにはクライアント側にオープンソースのGitをインストールしておく必要がある(WindowsでプチLinuxが堪能できます)。

もちろん使う以前にOpenSSHで公開鍵と秘密鍵をRSAで事前作っておきGitHubに公開鍵を登録しておく必要がある。これらのコマンドはGitをインストールすると同梱されてきます。

WindowsであればGitインストール後コマンドプロンプトでも上記を実行出来るのだが、通常Git BashというコンソールでGit関連のコマンを叩くことになる。



初心者は色々試行錯誤はすることにはなるものの、Gitはさほど難しいものではない。だがある職場のPROXYサーバー経由のVPN環境で使うとなるとアクセス制限がかけられていたり外部にダイレクトに繋がんなかったりする。

Gitに限ったことではないが、PROXY絡みの繋がんない障害はかなり多い気がしてならない。日々、試行錯誤を重ねている。


通常GitはSSH(port=22)を使用するのでHTTPやHTTPSしか通さないPROXYにおいては使えない。

ここで、めげなくてもSSH over HTTP Proxyというポート443を使うSSL経由で仮想的にSSH接続してGitHubにつなぐ逃げ道がある。

話が飛ぶかもしれないがGit接続時に使う暗号鍵を作る作業があるが、

ssh-keygen -t rsa

この暗号キー作成後にユーザーホームディレクトリ(Windows XPなら c:\document and settings\ユーザー)直下の.sshフォルダに以下のようなファイル(id_rsaやid_rsa.pub)が作成される。


gitHubにつなぐ時のキーは通常ここにある秘密鍵を使用される(GitHubのホスト側は公開鍵)。

PROXY経由でつなぐ場合はもう一つ以下の内容のconfigファイルの作成が必要で、これを用意しておくことでホストgithub.comへの接続はSSL経由で試行される。

(configファイルの内容)
Host github.com
  User git
  Port 443
  Hostname ssh.github.com
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes
  ProxyCommand connect.exe -H プロキシサーバのホスト:プロキシポート %h %p

これでPROXY環境下でGitHubへ繋ぐことができめでたしめでたしである。

尚、実際github.comにつなげる前に

以下のコマンドを叩いてgithubへ仮想SSH接続できることを確認すべし。
ssh -T git@github.com

簡単にまとめたが、結構ハマったのでconfigファイル作成のツボを役立てていただければ嬉しいです。

ここ のサイトが参考になりました。




2014年3月9日日曜日

納付区分番号ってなんやねん

e-taxすなわち電子納税申告というものを初めて使った。

去年は国税庁の確定申告用のWEBページを使って作成して印刷したものを税務署の前のポストに投函して完了しているのでさほど去年とやっていることと違わない。

昨年度は電子証明取得に間に合わなかったので郵送だったが(実際郵送してない)、今回は住基カードを作って電子証明を1000円もかけて取得したのでH25年分をe-taxで確定申告してみることにした。

そのためにカードリーダを2000円以上もかけて購入した。
(手持ちのSuicaのパソリは公的個人認証に対応してなかった)



どうもこれが必要になるのは最初の税務署への電子送信の場合の時くらい。

その後は取得(発行)した以下の番号を使うようなのでカードリーダは必要ないっぽい(たぶん)。

  • 利用者識別番号 + パスワード
  • 納税確認番号 (自分で決めた番号)
実際この番号が必要なのは税務署へ送信する場合だけだ。

電子証明書がなくてもe-taxの確定申告ソフトはWEB上で誰でも利用できる。

ともかく青色決算書と確定申告書の2点をWEB上で作成しデータを保存し、PDFに出力する。あとは作成したデータを電子証明を使って送信すれば税務署に行かなくても申告が完了する。

e-taxのエッセンスは基本これだけである。

実際つまずくのは、どうやって納税するか?である。

もちろん現金での支払は税務署の窓口に行けばよい。

それではe-taxを使っている意味が無い。

この辺りがe-taxの罠なのだが、実はpay-easyという決済代行システムがありココ経由で納税するという仕組みが中々理解しづらいのだ。

実際私はまだ使ってないのだが、これから使おうという段階。

どうも以下の情報が必要になるらしく、何の番号のことかまったくわからないw
  • 納付番号
  • 確認番号
  • 納付区分コード
ふざけとんかい?国は。

ネットで知らべて漸く言葉の意図する紐付けを理解する。

言葉の定義を統一してね!

すなわち
  • 納付番号=利用者識別番号
  • 確認番号=自分が決めた納税確認番号
  • 納付区分コード=ここの計算式で得た番号(02044XX) ※XXは平成の年度
この最後の「納付区分コード」って一体なんやねん!

説明くらいe-tax側で説明しておいてもええやろ。

結論的には 02044に年度2桁つけただけの番号なのだが、説明が全くないのだ。



e-taxを利用している人はどのくらい居るのかしらないが、説明不足だと思う。

何をどのように処理しこうやればこうできますといた単純明快な説明が全然ない。

会計ソフトや書籍はたくさん出てるけど何故初心者がすぐ理解できるものが少ないのか実に不思議である。

色々愚痴ってしまったが、わかれば便利なツールだが、税務署に行かなくても申告できますだけの説明では国民は納得出来ないです。









2014年2月18日火曜日

【scponly 】 ユーザーホームディレクトリ以外への移動を禁止した sftp接続環境を作る方法

セキュアな FTP通信環境をつくる必要性があり纏めておく。

簡単に言うとインターネット上からクラウドへセキュアデータ連携する手法である。


通常WANからイントラネットへFTP接続する安全なプロトコルにsFTPがある。

クラウド時代には知っておいて損はないが仕組み自体は取り立てて新しいものでもない。

SSH(ポート22)が外部から接続できればsFTP接続は可能であるが、アクセスポリシーを見直す必要がある。

というのもユーザーにSSH接続を許してしまうとユーザディレクトリ以外にも移動できてしまいポリシー上あまりよろしくない。


opensshだけでもこの程度のセキュリティ抑制は可能であるが、openssh 4.3 が導入済みのredhat9ではopenssh 4.9程度以上へアップデートしないとならず、インストールの敷居も高い。

sshdだけでやるなら /etc/ssh/sshd_configを書き換えてsshdサービスを再起動で済むことながら、一旦設定を間違えるとSSHに繋がらなくなるなどかなり危険である。

自分も自宅のLinuxで実際これに遭遇し危険であることを身をもって感じた。

SSHにつながらなくても被害が及ばぬよう、事前にtelnetサーバーも敢えて動かしておき第2の入り口(teminal)を設けるべきである(セキュリティには注意)。もちろん手元にサーバーがある場合は考えるすべもないがクライドサーバーを借りている場合は何が起きるかわからない。設定を間違えるとサーバー制御不能になる恐れが有るのだ(再起動さえできなくなる)。

話は元に戻すがopensshが既に動いていればsFTPでの接続はデフォルトでできているはずである。問題は外部からつなげに来るユーザーへの権限設定である。opensshが4.3のような古いバージョンではこれは難しいので、この場合は「scponly」あたりを導入することになる。

scponlyは古い方法論であまり使わなくなってきているらしいがopensshを使わない方法として知っておく価値はある。その名の通りsFTPだけを特定のユーザーに提供しセキュア通信を提供する方法である。

scponlyをインストールして setup_chroot.sh を叩いて一度ユーザーを設定しておけばその後はコマンドは眠らせておけばよい。


【scponlyインストール】

現時点で最新は4.8でscponly-4.8.tgzを/tmpへダウンロードして解凍する。

wget http://sourceforge.net/projects/scponly/files/scponly/scponly-4.8/

tar xvzf scponly-4.8.tgz

cd scponly-4.8

./configure --enable-chrooted-binary

make

make install

必要な物は上記で揃ったがあと setup_chroot.shとconfig.hもコピーする必要がある。

自分は/usr/local/scpcpy/setup_chroot.sh にココを参考にコピーし、HOMEディレクトリにシンボリックリンクを張った(途中パーミッション等も変更)。

cd ~

ln -s /usr/local/scpcpy/setup_chroot.sh 

ln -s /usr/local/scpcpy/config.h 


【使い方】

あとはsetup_chroot.shを使ってユーザーを作ればよい。すでに居るuserに追加で権限追加はできないので一旦 userdel コマンド等でユーザーを削除する必要がある。

ユーザーが追加したら以下のテストを行う。

  • SSHで接続できないこと
  • sFTPで接続でき、HOME以外に移動できないこと
sFTPクライアントはFFFTPではダメなのでWinScpなどをDLして確認すべし。




【補足】

SSH+FTPという手法も古くからあるが、こちらはFFFTPでもセキュアFTPは可能である。teraterm+FFTPでも可能だし、PuTTY+FFFTPでも実現できるが管理が煩雑なので今はあまりメジャーではないが仕組みを勉強する意味では有用であろう。




2014年2月11日火曜日

NTT純正のルータを使うメリット

先日NTT純正のWeb Caster 720 中古をamazonで1000円で購入しました。



手持ちのルータが壊れたわけではない。

実はNTT純正のルータを使わないとフレッツスクエアにつながらないんですよね。

ちょっと表現には語弊がありますが要はPPPoEでプロバイダに繋ぎつつフレッツにはつながらないという意味です。

マルチセッションPPPoE接続できるルータであれば可能ですが、そもそもIPv6対応であるという条件があります。

(IPv4で繋ぐ場合はいったんISPのセッションを切ってフレッツへゲスト接続するという面倒な手順を踏みます)

実はこの条件を満たす市販のルータは希少なのです。

あっても非常に高価なんですよね。

おそらくルータを借りて契約している方は今回の内容はなんら関係ないお話です。

で、NTTが推奨しているIPv6ルータは下記のとおり。


IPv6ルータ
https://flets.com/square/ipv6_router.html

fletsスクエア接続設定
https://flets.com/customer/next/square/setup/v6/win7.html


因みになぜフレッツスクエアにこだわるかというと、フレッツ契約していると「フレッツ光メンバーズクラブ」という会員プログラムというのがありまして、貯まったポイントを交換したりするのにフレッツスクエアに繋がらないといけないという落ちがあります。

自分もたまったポイントをWAONに交換しようと思ってこの罠にはまりました。

ルータ購入せずともダイレクトにPCとONUを一時的に繋げてPPPoE接続すればできないこともないですが非常に面倒です。

今回無事WebCaster720にてWAONにポイント交換できました ^ ^

といっても1000pt交換するのに1000円かけているのでアホといえばアホですw

でも次回から効果が効いてきますので損はないし、一歩賢くなったし。

以下のようにWebCaster720(手前)を既存の家庭内LANに挟み込みWiFi接続環境も何も変更せずにfletsスクエアにもつなげられる環境ができました。















ワイアレス・キーボード&マウスコンボ logicool mk270 届く

7年ほど使ったワイアレスキーボード&マウス(logicool Ex110 )の調子が悪く、ストレスたまりっぱなし。

このまま使い続けたらマウスのトラッキングが重くってコロコロで中指が腱鞘炎になってしまいますw

ということで logicool mk270 というセットで2000円ちょっとの格安ものに乗り換えることに。


早速amazonから届きました。


相変わらずの大きな箱(汗) 捨てに行くの面倒なんでゴミ出さんでほしいわ。



商品の仕様詳細はメーカーのHPに委ねるとして、以下気になった点のみレポします。


まず、I/Fですが、Ex110のときは以下のようなアクセスポイント方式だったのですが(余談だがPS/2マウスも対応)、



今回は受信機のUSBスティックが2個同梱されていたので最初汗りました。

2ポート占有するんじゃないかという意味です。

でも明けてみると連結して1ポートで使用するという画期的な方式(よく考えられています)。


手持ちのPC切り替え器(Sanwa SW-US22H)でもなんら問題なく使用できました。自分はWindows7で使っているのですがドライバCDなども特に不要でしたがドライバー認識中WindowsUpdateへつなぎにいっている模様でした。

 


マウスも一回り小さくコンパクトになっています。

あと電池ですが、以前のEx110はマウスは単三2本でしたがmk270では1本と変更になりました。キーボードは単四2本利用のままです。いずれも充電池で利用できています。しかもエネループと別メーカの充電地とのコラボでも。因みに出荷時時に乾電池は付属します。


とmk270はEx110より軽量かつシンプルになっていますが作りはしょぼい感じです。キーボード裏の爪も使っているうちに割れそうです。その点Ex110のほうが作りはしっかりしていました。

使い捨てだと思ってしばらく使ってみようと思います。