2011年4月3日日曜日

LAMP of CakePHP on VMware:構築手順メモ1~CentOSインストールまで

はじめに ※2011年8月追記

当記事は、CentOS 5.5環境の構築手順です。
CentOSと言えば、4月に5.6、7月にようやく6.0がリリースされました。
5.6環境のインストールは、この記事で解説している5.5と全く同じ流れでいけます。ちなみに、5.6だとPHP5.3のパッケージが提供されています。
6.0環境の構築手順はこちらを参照してください。

では本題

職務経歴の大半がWindows Server+商用クソJavaフレームワークで占められており、LAMPのどれ一つ未経験の男がお届けする、VMware Player上のCakePHP自習環境構築手順です。よろしければご覧あれ。
尚、タイトルの通り当記事で言及しているのはCentOSインストールまでです。AMPのインストール手順に関してはこちらを参照

ちなみに当記事におけるLAMPのバージョンは以下の通り。
3月下旬にバージョン指定しないでyumインストールした結果であります。
  • L:CentOS 5.5
    ※5.6環境の構築手順も同じ流れです
  • A:2.2.3
  • M:5.0.77
  • P:5.1.6
    ※CentOS 5.6の場合、PHP5.3のパッケージが提供されています
ところでCentOSと言えばRed Hat互換ということで人気な訳ですが、開発コミュニティが分裂しかかっていて次期バージョンリリースの目処が立たず、待ちきれないならScientific Linux使ってねなんて状況なんだそうな。

VMware Player インストール

以下ページの「ダウンロード」リンクから。
姓、名、メールアドレスを入力後、インストーラーのダウンロードページリンクが記載されたメールが送られてくる。

CentOS ISOイメージのダウンロード

本家サイトのダウンロードページから。
お好みのミラーサイトから『CentOS-5.5-i386-bin-DVD.iso』をダウンロードしてください。尚、ファイルサイズは3.9GBです。

※ダウンロードを速く終えたくて堪らないあなたは、『CentOS-5.5-i386-bin-DVD.torrent』でBitTorrentによるダウンロードを利用するといいよ。ちなみに僕は今回のこれでBitTorrent処女喪失しました。TorrentクライアントにはOperaを使用。
※1:BitTorrentについての補足というかメモ書き

CentOS仮想マシン作成

VMware Playerを起動し、ホーム画面の「新規仮想マシンの作成」を選択、後はウィザードに従って進める。特に躓くようなことはないだろうから詳細な解説はここでは割愛。もし躓くようであれば、画像付きで解説してくださっている以下ブログを参照してください。

日本語化設定

OSの画面を見れば一目瞭然だが、言語設定が英語の状態。どうも上記手順によるインストール(簡易インストール)だとこうなってしまうらしい(※2)。
というわけで日本語化設定を行う。
キーボード設定
今のままだとキー配列が英語でコマンドタイプがままならないので、まずはキーボード設定から。
メニューの「System」→「Preference」→「Keyboard」で表示されるダイアログの「Layouts」タブを選択し、
  • Keyboard model:Japanese 106-key
  • Selected layouts:japan ※それ以外は削除
システムの言語設定
以下コマンド実行したらダイアログ表示されるので『Japanese』を選択。
※プロンプトが『$』の場合は一般ユーザー、『#』の場合はrootユーザーで実行(或いは頭に「sudo」をつける)してください。
# system-config-language
日本語フォント インストール
# yum install fonts-japanese
日本語入力メソッド『SCIM+Anthy』のインストール(※3
# yum install scim-anthy

ここまでやったら一旦再起動。

メニューなどで文字化け発生したら

フォントキャッシュを更新して再起動したら解消。
# fc-cache -fv

※ここの部分は以下のブログを参考にさせていただきました。

LAMPの『L』のインストール・設定はとりあえずこんなもんでOK。
残りのAMPに関しては次の記事で解説してます。

関連エントリ

※1:BitTorrentメモ書き
CentOS ISOイメージのダウンロード先にデスクトップを指定し、ダウンロード開始して無事完了。なるほど、確かにHTTPやFTPに比べて速い…と感動していると、何かアップロード処理が始まっている。BitTorrentといえばWinnyとかと同種のいわゆるP2Pなもんだから、「やばい!デスクトップ上のファイルが晒される!!」と焦った焦った…。
BitTorrentの場合、ファイルをダウンロードすると、今度は自分が配布者となってダウンロードしたばかりのファイルがアップロードされるのだそうな。要するに、アップロードされるのはダウンロードしたファイルだけ。心配するな、俺。ていうか事前に学んどけよ、俺。

BitTorrent - Opera Wiki
BitTorrentにアップフォルダという概念はありません。あなたがBitTorrentを利用してダウンロードしている途中、またはダウンロード完了したものを他のひとに分けあたえるのみです。それ以外のファイルを勝手に流されることは仕組み上ありえません。

尚、ダウンロード後に接続解除するなどしてアップロードしないのはマナー違反。
Operaヘルプ:BitTorrent
BitTorrent アーカイブをダウンロードしている間、あなたは他のユーザーへの配布も助けていることにをなります。たとえ帯域制限をするなどしても、アップロードをせずダウンロードのみ行うということはできません。

※2
当記事の手順(簡易インストール)ではなく、ディスクからインストールするのと同じ手順でいきたい場合は、CentOS 6.0環境構築手順の記事を参考にしてください。その手順の場合、当記事で解説している日本語化設定は不要(OSインストールウィザードで行う)になりますが、『VMware Tools』は自分でインストールするしなければなりません。

※3
Windowsにおける『MS-IME』、Macにおける『ことえり』ね。

2011年2月27日日曜日

おもくそクエストⅤ 転職の鼻っ柱折れ

サブタイトルが何のこっちゃ分かりませんが(ていうかメインもな)、春一番が観測された今日この頃、みなさま明けまくりましておめでとうございます。おもくそは元気です。ここをほったらかしてTwitterの方で述べていますが、転職活動はとっくに完了してます。Web系へのコンバートを目指した今転職活動、その全貌をいま白日の下に。

ちなみに退職したのは2010年9月末日、辞めてから転職活動する道を選びました(参考エントリ)。

2010年10月

最初に起こした行動…それは国勢調査。国民の義務ということで、ちゃんと対応しないと罰則もあるらしいからしょうがないよね。前述の通り既に退職していたので、無職でカウントされるのか~としみじみ思っていたが、どうやら9月最終週時点での状況を記入するとのことで、晴れて『正規の職員・従業員』と回答することに。こうして矛盾が作られていくのか。

次はハローワーク。やはりまだまだ景気は悪いようで、溢れんばかりの人。お役所とは言え業務が業務、来る人の事情が事情なだけに、お役所名物の愛想の悪さ丸出しは見受けられなかった。ただし『対面では』って条件付きだけどね。電話した時の対応の悪さはやはり役所だ(てかそもそも電話に中々出ない。「繋がらない」のではなく「出ない」。「トゥルルル…」までは辿り着けてるから。)。

ちなみにハロワ初日の帰り、昔懐かし(といったら失礼?)auのAndroid端末『IS03』を予約(※1)。その旨をTwitterでつぶやいたところ、それまで1年近く使っててフォロワー20人だっだのが、2・3日で100人突破。ピーク時は160人まで増えた。無条件フォロー返しはしない主義なので、現在は130人程度に落ち着いているけど、時事ネタワードを含めるとこういうことになるんだなということが分かった。

その次に着手したのは…映画鑑賞。以前のエントリで嘆いている通り、日本の労働社会に身を置いていては、映画をのんびり見る時間は中々取れない。だがこの時の私は違う。そのような楔など存在していないのだ。そう言うわけで、TSUTAYAディスカスとDMM.comの1ヶ月無料キャンペーンを利用し、それぞれで8枚ずつ計16作品を鑑賞した。いや~実に幸せなひとときでした。こういう時間はやっぱり必要だよね(※2)。

以上が無職1ヶ月目の活動です。勘の良いあなたならお気づきかと思いますが、転職活動は全く行われていません。この章必要なかったね!

2010年11月

無職期間2ヶ月目。遂におもくそが動き出す。
いよいよ本題に突入…と言いたいところだが、ここまでを振り返ると既に文章量が結構なことになっているので、次回エントリに続かせます。

「この章必要なかったね!」どころか、「このエントリ必要なかったね!」

それでは皆さん、また4ヶ月後にお会いしましょう。

自己フォロー

もちろん勉強はちゃんとしてましたよ。

※1
ちなみにIS03は結局購入してません。Xperiaを待て、待つんだジョー!!

※2
本当は思い切って日本一周とか旅行してみたかったけど、流石にそこまで貯金を切り崩す勇気は無かった…


2010年10月18日月曜日

おもくそクエストⅣ 打ちひしがれし者たち

前回のつづき。前回、以下のような形でエントリを締めた次第であるが…

転職活動という名の冒険へと旅立った勇者おもくそ。
次の城ロマリアに辿り着くには、レベル10は必要だ。
だが、今の僕は…

この場合のロマリアは一体何を意味するのか。転職活動のゴール?いやいや、それなら普通に考えると「ゾーマをぶっ倒す」だろうが。全く、我ながら全く意味が分かりません。エントリのタイトルをあんな風にしてしまったので、ちょっと絡めてみたんだけど、何かに例えて綺麗に纏めるって難しいね。まあ、結局何が言いたかったのかというと
「現在の僕は低レベル」
ということです。まだアリアハン大陸すら脱出できない程に。

僕のスペック…その前に、やりたい仕事は?

希望の職種は今までと変わらず『システム開発』です。やっぱり好きだから。どんな会社で働きたいかは、前回述べた通り『やる気・向上心が高い会社』だ。ここは絶対に譲れない。

次に業種。前回ちらっと述べたが、できればSI業界ではなく、Web業界に行きたい。今までいろいろなIT系企業の仕事内容紹介の記事や、IT業界人のブログを読んだり、あるいは直接話を伺うなどして集めた情報によると、どうもWeb業界の仕事の方が面白くてやり甲斐ありそうだ。以下、それら情報を基に、それぞれの業界に対する僕の印象。

要素SI業界Web業界
市場の行方縮小は確実。要因は以下。
・SaaSやERPパッケージの普及
・オフショア企業の台頭
拡大。ソーシャル系サービスの需要が増える。スマートフォン、iPad等のタブレットPCの普及が進めば、さらに拡大するか。
仕事内容 総じて、上流か下流かの2択(そうじゃない場合もあるだろうけど)。
今後、上流は要件聞いてそれに適したサービス選定や、経営戦略などの超上流にシフト?
下流は…仕事あるのか?
企画発案からプログラミング、運用、改善など、一気通貫
開発プロセス ウォーターフォールがメイン
※アジャイルも増えてきてはいるようだが…
アジャイル(でないと捌けない)
最新技術に対する
積極性(※1
総じて低い?
リスクは少しでも抑えたがる。
SIerよりは高い?
ということで、
僕にとっての
やり甲斐は…
無さ気。
上流会社だとプログラミング機会少ないし、下流だとそもそも生きられなさそう…
SIよりは確実にありそう。

まあ、SIerでも全工程担当&最新技術に積極的な会社はあるだろうし、Web業界でも実装は外注&最新技術に消極的な会社ってのは絶対いるだろうから、結局ピンキリだろうけどね。でも大体は上記のような傾向だと思う。
 
最期に、扱いたい技術。ぶっちゃけ『話のネタになる・技術を通じて人脈拡大できるような有名どころ』であれば何でもいい。大きな括りだと、RIA、クラウド、スマートフォンアプリ…など。小さな括りだと、Ruby on Rails、Flex、AIR、Silverlight…など。とにかく「何それ?」って言われるようなマイナーなものでなければ何でもOKです。「『何でもやります!』と言うのはダメ。ゼッタイ。」というのは心得ているが、実際どの技術にも興味があるのでしょうがない。まあでも1個決めろと言われれば、Androidアプリ開発かな。

ここで本題。僕のスペック

実務経験年数
4年6ヶ月
年齢
28 ※早生まれなので、今年度29
リーダー経験
無し。それどころかSE経験も碌に無し(4ヶ月のみ)。
主な経験言語(事情により、全て手続き型実装) ※単位:ヶ月
Java 1.4:33.5
Java 5.0:6
C# 1.1:3
C# 2.0:2
VB 2008:4
主な経験FW ※単位:ヶ月
某商用Javaフレームワーク:37.5
.NET Framework 1.1:3
.NET Framework 2.0:2
.NET Framework 3.5 SP1:4
その他補足
実務におけるOOP、デザインパターン利用経験なし
必然的にUML作成・閲覧経験もなし
実務におけるTDD経験なし
Trac Lightningのディープな利用経験なし ※プラグイン作成とか
太字の部分に注目してください。どうですか?お客さん。市場価値ないでしょ?僕のキャリアの殆どは、某商用Javaフレームワークです。打ち込んできたJavaコードの殆どは、フレームワークに依存したもの。フレームワークが有名で普及しているモノであればいいんだけど、勉強会などで同業他社の方に尋ねても、まあ知ってる人はいなかった。一人だけ(マジで一人だけ)使った事あるという方が見つかったのだが、一言「使いにくい」。高評価をくだした人間には、結局会うことは無かった。話やブログのネタにもできないし(ブログに載せたら確実に正体ばれる)…「マイナー技術は嫌だ!」と嘆くのは、こういう訳です。

そして何よりも致命的なのは、オブジェクト指向プログラミング経験が皆無ということ。前に自分でも書いたが、オブジェクト指向してない内はJava初級だ

これが、まだアリアハン大陸を脱出できないと嘆く所以である(※2)。


さて、嘆いてばかりいても仕方がない。レベルが足りないならレベルを上げるしかない…ん?またまた声が聞こえる。
「今の時代、PCとネット環境あれば自宅で勉強できるだろ?今までやってこなかったのか?」と。
これ言われると、弁明の余地はありません…いや、断言する。勉強はたくさんしてきた。Googleリーダーの統計情報や、Googleウェブ履歴がそれを証明してくれる。ただ…「実際に手を動かしてコードを書く」ことを殆どしてこなかった。これはよくなかったかもしれない。別に面倒臭いとかいうわけじゃなく、単に効率的に時間を使いたかったからだ。前述の通り、いろいろな技術に興味があるので、RSSで熟読する記事も多岐にわたる。手も動かすとなると、とてもじゃないが時間が足りない。それに、手を動かしてきっちり身につけたところで、変化の早いIT業界、すぐに陳腐化してしまう可能性大だ。それならば、とりあえずは概要・文法・思想といった部分を広く浅く把握しておき、実務で使用するタイミングになったら深く学習する方が効率的でいいのではと思うのだが…どうなんでしょう。間違ってますかね?

※1
この辺に関しては、SonicGardenの倉貫氏の以下エントリに非常に感銘を受けました。

※2
自慢じゃないけど、こんな僕でも、驚く事に会社の中ではエース級だったんですけどね。何らかの技術系コミュニティで有名というわけでも無く、ブログの技術記事のレベルが高いわけでも無い、こんな僕が…。プログラマという職業、人によって100倍以上の生産性の開きがあるという話は有名だが、これはきっと会社単位でも当てはまるのだろう。