goo blog サービス終了のお知らせ 

コトハノチカラ

ビジュアル的センスが0の左脳人間が、
どこまで言葉だけで自分を表現できるか、
やれるとこまでやってみるブログです。

.htaccessの変更が反映されない

2009-08-31 10:43:37 | ITなお話
凄まじく色々あって、今までJavaにて開発してきたモノを、PHPにて作り直すことになってしまった。

う~む。

ま、言いたいことは山ほどあるのだけど、ただの愚痴になってしまうので、ここはぐっと我慢。

というわけで、早速PHPの開発環境構築と、お勉強。

フレームワークに、Zendを使うことにし、サンプルプログラムを作成する。

結果、とりあえずは動いたのだけど、どうも様子がおかしい。

参考書と同じように書いているのに、微妙に動きが違うのだ。

そこで色々調べてみると、.htaccessの設定内容が反映されていない模様。

本にはそんなことは微塵も書いていないので、google先生にて調べる。

分かりました。

.htaccessでの設定の上書きが、httpd.confにて禁止されている模様。

AllowOverride None



AllowOverride All

に変更。


この辺のApacheの設定はまだまだ分からないことが多いから調べないといけないのだけど、とりあえずの開発環境としては、動けばいいでしょ。

というわけで、かなり危険なスケジュールに驚愕しながら、先に進むのです。

Linux環境構築 Fedora11にて、起動時に自動でネットワークに接続させる

2009-08-25 14:55:48 | ITなお話
相変わらず、Linuxと格闘しております。

色々と設定ファイルを変更したりしていると、どうしてもLinuxを再起動しなければいけないことが多々ある。

それ自体はそれほど難しくもなく簡単にできるのだけど、初期設定のままだと、起動時にはネットワーク接続がOFFになっていて、毎回手動でONにしなければならない。

まあ、それくらいヤレと言われてしまえばそれまでなのだけど、やっぱりプログラマーとしては、そこはどうにかしたいところなわけですよ。

そんなわけで調べてみたところ、設定方法がわかりました。

まずはroot権限でログイン。

次に以下のコマンドを実行

# chkconfig --list | grep network

そうすると、以下のように表示されるはず。

network 0:off 1:off 2:off 3:off 4:off 5:off 6:off

ぶっちゃけちゃうと、0~6までが何のことなのかはさっぱりわかっていないのだけど、ようするに、これがoffなのがいけないらしい。

というわけで、以下のコマンドを実行してonにする。

# chkconfig network on

もう一度以下のコマンドを実行してみる。

# chkconfig --list | grep network

こうなってるはず。

network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

相変わらず数字の意味はわからないのだけど、これで再起動すれば、起動時にネットワークに接続された状態になっているはず。

ま、保証はできないけど…

Linux環境構築 Webサーバにてトラブル発生!!

2009-08-21 11:24:13 | ITなお話
まあ、予想していたこととはいえ、トラブル続出。

Webサーバを構築しようと、Apacheをインストール。

問題なし。

ファイアウォールの設定をして、サービスを起動させて、テストページを表示。

問題なし。

ドキュメントルートに、自作のHTMLファイルをFTPにてアップ。

トラブル発生。

アップできない・・・

どうやら、オーナーがrootになっているディレクトリには、ファイルのアップができないもよう。

かといって、ドキュメントルートから上位のディレクトリのオーナーを全て変更するというのは現実的ではない。

というわけで、ドキュメントルートを変更することに決定。

httpd.confファイルの中身を書き換える。

我がバイブルには、ドキュメントルートの変更の方法は掲載されていないので、自分で調べてどうにか解決。

/home配下のディレクトリに設定して再度アクセスしてみたところ、やっぱり表示されない。

う~む・・・

さらにgoogle先生にて調べたところ、やっとこさ解決。

ドキュメントルートを変更する場合は、httpd.confの中の、userとgroupの項目も変更しなければいけないらしいのだ。

<変更前>
user apache
group apache

<変更後>
user "ユーザ名"
group #-1

これでやっとこさ解決。

ここまでで早くも1日半くらい使ってしまったのだが、状況としては、ApacheとSSHとFTPという、最低限の環境が出来たのみ。

今後の予定としては、とりあえず勉強もかねてDNS、sendmailを入れて、その後いよいよTomcat、MySQLにとりかかる予定。

先が長すぎてゴールがさっぱり見えないけど、とりあえず一歩ずつでも頑張るぞ~!!

Linux環境構築 FTPでトラブル発生!!

2009-08-21 10:05:51 | ITなお話
早速来ましたよ。

謎のトラブル。

バイブルに書いてあるとおりにやっているのに。

問題が発生したのは、FTPでのファイル転送でのこと。

またもかる~く説明しておくと、FTPというのは、ファイルを送ったり受け取ったりする仕組みのこと。

この仕組みがないと、LinuxマシンはLinuxマシン、WindowsマシンはWindowsマシンとして独立したままになってしまって、こっちで作ったファイルを向こうに送るとか、向こうにあるファイルをこっちにもってきて修正して、また送るなどということができないのだ。

というわけで、Linuxにvsftpdというソフトをインストールする。

環境ファイルをちょろっと修正して、WindowsのほうからFTP接続を試みる。

あっさり成功。

ま、本に書いてあるとおりだしね。

ちなみにこのバイブルだと、FTPについての説明はここで終わっている。

「おいおい待ってくれよ。接続しただけではFTPの意味がないんだから、ファイルの転送もさせてくれい」

と、テキトーなファイルをアップロードしようとしたところ、あっさり失敗。

パーミッションうんちゃらかんちゃらエラーというのが出てしまう。

う~む。

まいった。

本を読み返してみても、どこにもそんなことは書いていない。

というわけで、google先生を頼りにいろいろ調べてみたところ、やっとこさ解決。

まずはファイル転送用のポート、21番を空けなければいけないらしい。

次に設定ファイルの変更。

#write_enable=YES → write_enable=YES

これでやっと解決。

ポートの開放は自分でやらないといけないのはわかるけど、FTPって本来、ファイルの転送をするものなんだから、設定ファイルのデフォルトは書き込みOKにしておいてくれ~と、強く思うのでした。

Linuxインストール完了!!

2009-08-21 10:00:36 | ITなお話
人生初のLinuxインストール。

もっと苦労するかと思ったのだけど、思いのほかすんなりインストールすることができた。

えへへ。

俺ってばやるじゃん。

ま、本に書いてあるとおりにやっただけなんだけど・・・

というわけで、またも本に書いてあるとおり、色々といじってみる。

テキストエディタを開いたり、CUIを立ち上げてみたり、インターネットに接続してみたり。

ってとこで、早速トラブル発生。

インターネットに接続できない。

というより、そもそもネットワークに接続できていない。

確かに、設定などは何もしていないし、LANケーブルを刺しただけ。

これでは繋がるはずはない。

色々調べたところ、DNSのIPを指定しなければいけないらしい。

というわけで、デフォルトゲートウェイの「192.168.0.1」を指定して、あっさり解決。

今後も、こういうトラブルが続出するんだろうな…

人生初のLinux!!

2009-08-21 09:46:07 | ITなお話
いよいよ、未知の領域に足を踏み入れることになった。

Linuxの環境構築。

今まで多少は触ったことはあったけど、それはできあがった環境での話。

ゼロからPCにLinuxを入れて環境を作っていくというのは、あえて避けていたということもあって、今回が初めての経験なのだ。

一応、わからない人のためにかる~く説明しておくと、Linuxというのは、WindowsなどのようなOSの一種。

Windowsと違って必要な機能を絞り込んでいるぶん、動作速度が速く、安定している。

長期間起動したままにしておいても、まるで問題なく動作してくれるので、Webサーバなどとして使うにはもってこいなのだ。

しかも無料だし。


さて、今回の目標としては、Linuxをインストールし、以下のソフトを導入すること。

・JDK 6系
・Apache 2系
・Tomcat 6系
・MySQL 5系
・qmail

つまり、一つのLinuxマシンを、Webサーバ兼アプリケーションサーバ兼SQLサーバ兼メールサーバとして使ってしまおうという、かなり大胆な仕様となっている。

ま、とりあえずのテスト環境だし、問題ないでしょ。

というわけで、まずはLinux選び。

Linuxというのは、本来Linuxカーネル・・・なんて話をしても、よくわからないだろうし、正直に言うと僕も完璧に理解しているわけではないのでさくっと流すことにする。

ようするに、Linuxと一口にいっても、色々種類があるということだ。

そこで今回選んだのは、Fedora11。

最近流行っているらしいUbuntuもいいかなと思ったのだけど、初めてのLinuxということで、おそらく一番メジャーなものを選択。

ジュンク堂で買ってきた『Fedora11で作る最強の自宅サーバ』をバイブルに、これから頑張ってやんよ。

FILCO 剣

2009-08-19 09:54:52 | ITなお話
さて、今日はパソコンのキーボードのお話。

現在僕が会社で使っているのは、FILCOの『剣』というキーボード。

もちろん、標準でPCに付いていたものではなくて、わざわざ家から持ってきたのだ。

このキーボードの魅力は色々あるのだけれども、まずは名前がカッコイイ。

『剣』って。

でも、確かにプログラマーにとってのキーボードは、戦士にとっての剣と同じくらい大切なものなわけだから、このネーミングセンスは素晴らしいと言える。

とはいえ、別に名前だけを気に入って使っているわけではなく、このキーボードの最大の特徴は、メカニカルキーボードだということだ。

と言われても何のことだかわからないだろうからちょっと説明すると、キーを押したときの音がとてもカッチョ良いのである。

普通のキーボードでも多少の音はするのだろうけど、「ポスポス」といった感じで、イマイチ魅力的ではない。

それに、感触もくにゃくにゃしていて、キーをきちんと押せたのかどうか、極めて不安になる。

その点、この『剣』は素晴らしい。

まず音。

「ポスポス」などという気の抜けた音ではなく、「ガチガチガチガチ!!」と普通のキーボードしか触ったことがない人からすると、ちょっとビックリするくらいの音がする。
(ちなみに、この音の大きさが原因で、家で使うと近所迷惑になる可能性があり、会社に持って来ました…)

この音を鳴り響かせながら高速でキーボードを叩いていると、大したプログラムを書いていないのにもかかわらず、「俺ってば天才プログラマー」的な気分に酔いしれることができるのだ。

キーを押した際の感触もハッキリしていて、ちょっと触ったくらいでは反応してくれない。

力を込めて叩くくらいのイメージでキーを押すと、例の「ガチッ!!」という音とともにディスプレイに文字が表示されるのだ。

まさに、使う人を選ぶ『剣』。

一筋縄ではいかないゼ。

ふっ。


まあ、現実的には色々問題があるのも確かなわけです。

基本的にうるさい。

今、僕が仕事をしている部屋は、元々研修室だったところなので、それなりの広さがある割には基本的に僕しかないという、一人ぼっち状態なのだ。

そんなわけで、一切周りに気を使うことなく「ガチガチ」叩きまくってるのだけど、今後人が増えてきたら、会社から『剣』の使用を禁止される可能性もある。

まさに廃刀令。

幕末武士たちは、さぞや心を痛めたであろう…

などと、同情している場合ではない。

さらに、この『剣』さんは、少々故障が多い。

大きな音がするということは、何かと何かがぶつかっているのだろうから、構造的に仕方がないのだろう。

何かの拍子に、特定のキーが反応しなくなることがあり、すでに二度ほど修理に出している。

ちなみに、現在もテンキーの所にあるエンターキーは反応してくれない。

ま、そんな風に手がかかるところも、コイツの魅力の一つだったりするんだけどね。


そんなわけで、プログラマーに限らず、今は一日の大半をPCの前で過ごす人が多いと思う。

『剣』はちょっとクセがあるキーボードだから誰にでもお勧めできるわけじゃないけど、皆さんも自分に合うキーボードを探してみると、毎日の単調な仕事もちょっとは楽しくなると思いますよ~。

JSPにてBLOB型の画像出力成功!!

2009-07-27 16:03:07 | ITなお話

かなり時間をかけてしまったが、やっとデータベース上のBLOB型の画像データをJSPにて出力することができた。

そもそも基本的に勘違いしていたのは、画像を出力するJSPページに遷移する処理の中で、画像データを取得しようとしていたこと。

取得すること自体は問題なくできるのだが、遷移先のJSPのページに画像データを渡す方法がどうしてもわからずに、途方に暮れていたのだ。

だけどもそうではなくて、遷移したJSPの中で、画像を表示するServletを呼び出せばよかったのだ。

具体的には、JSP側には以下のように書く。

<img src="hoge_servlet" />

そんで、そこから呼び出されるServletのほうで、以下のようにする。

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
byteOut.write( DBから取得した画像データ(byte[]), 0, 画像サイズ(int) );
response.setContentType( "image/jpeg" );
response.setContentLength( byteOut.size() );
OutputStream out = response.getOutputStream();
out.write( byteOut.toByteArray() );
out.close();

こうすると、画像を出力するためだけのHTMLが作成されて、それをJSPのイメージタグで参照して画像が表示される。

今までrequestに関してはある程度理解していたのだけど、responseに関しては正直あまり深く考えていなかったので、今回のことでとても勉強になりました。

今のところの問題点としては、基本的にはServletの呼び出しなどは全てStrutsを使っているのだけど、画像の表示に関しては直接Servletを呼び出していること。

まあ、基本的な動きとしては問題ないのだけど、こうやって一部ではStrutsを使って、一部では使わないという設計が良いのかどうかがちょっとばかり不安。

まあ、基本的なことがわかってしまえば、あとは応用でどうにでもなるから、これでまたガシガシ製造ができるぞ~!!


JSPにてデータベースにあるBLOB型の画像を表示させる方法

2009-07-24 09:59:49 | ITなお話
画像表示関連のことは「StrutsのFormFileを使ってアップした画像がすぐに反映されない!!」にも書いたのだけど、またも行き詰ってしまった…

前の仕様では、画像がアップされるとプログラム上でファイル名を設定して、指定したフォルダに入れる仕組みにしていたのだけど、色々考慮した結果、データベースに入れるようにした。

画像管理テーブルを用意して、BLOB型のカラムにインサートするところまでは思いのほかすんなり出来たのだけど、今度は表示させるところが良くわからずに、行き詰ってしまった…

DBから画像データは、byte配列型で取得できるのだけど、それをどうやって出力すべきなのか、さっぱりわからない。

ネットで色々調べてみたのだけど、情報が少なく、あったとしても今現在の自分のスキルでは理解できないことばかりで…

すでに半日近くこの問題で作業がストップしてしまっているので、どうにか今日の15時くらいまでには、解決させたい!!

というわけで、誰かヒントだけでも下さいm(__)m

StrutsのFormFileを使ってアップした画像がすぐに反映されない!!

2009-07-03 09:51:40 | ITなお話
今回は画像のアップロードのお話。

StrutsのFormFileを使ってWebContent配下にアップロードしたのだけど、Webページから参照してみると、画像が表示されない。

だけども、Eclipseにて該当のディレクトリをリフレッシュすると、画像が表示される。

というわけで調べてみたところ、画像ファイルなどに限らず、クラスファイルなども、実際にはWebContent配下のものを見に行っているわけじゃなくて、Eclipseが自動でコピーしてくれている、別のディレクトリを見に行っていることが判明。

.metadata配下のかなり深い階層にあるディレクトリなんだけども、そこに画像をアップしたところ、一発で見れるようになった。

だけども、今度はEclipseのナビゲータなどでは表示されないので、若干管理がめんどくさい。

さらにいうと、アップするディレクトリも今はフルパスで指定している状況なので、極めて汎用性がない。

正直、この辺の環境周りについてはわからないことばかりなのだけど、ここにこだわってるとそれだけで一ヶ月くらい平気でかかりそうなので、とりあえずは後回しにした。

とりあえずの納期が今月一杯になったのだけど、後回しにしてることが果てしなく多くて、本当に終わるのかかなり不安になっているのでした…