WHAT'S NEW?
Loading...

Windows7にVirtualBox4でCUIなFedora18を入れてWeb開発環境を作ろう【おまけ】

■PHP関連のインストール

【PHP Documentor】

PHP Documentorってのは、PHPファイル内のコメントを特定のフォーマットに添って記述しておけば、コマンドで一発出マニュアルというかAPIリファレンス的なドキュメントを作ってくれる優れた奴だ。入れておくと身長伸びるかもね。

まずは一度pearをアップデートしよう。
# pear upgrade pear
そしたらインストールだ。
# pear install --alldeps phpdocumentor
動作確認としては、ヘルプが表示されればよいわけなので、
# phpdoc -h
こんな感じで以下のように表示されればOKだ。


PHP Documentorの具体的な使い方は以下のサイトなどを参考にしてくれたまえ。
そのうち細かく特集するかも。

http://blog.asial.co.jp/871


【XDebug】

XDebugっていうのは、PHPの開発者が作った、デバグ用のエクステンションだ。開発環境に入れておくと色々寝覚めが良いので寿命が伸びるかもね!!

インストールは簡単だ。
# pecl install xdebug
インストールが終わったら、PHPの設定ファイルに以下を追記しておこう。
# vi /etc/php.ini
俺は一番下に勝手に[xdebug]なんて項目を書いてるよ。
[xdebug]
zend_extension = /usr/lib64/php/modules/xdebug.so
上記設定は64bit版の場合なので、別の環境の場合はインストール後に表示されるパスをメモっておいて、それを張り付ければOKだ。

【mecab】

mecabってのは形態素解析といって、例えば文章を単語とか助詞とかで区切って分ける『分かち書き』を実現してくれる便利なライブラリなんだよね。英語圏だと単語の間には必ず半角スペースがあるから必要ないだろうけど、こういった分かち書きは日本語で形態素解析する場合は必須だと思ってる。

まずはmecab本体。必要ライブラリなども一緒に、一気に入れよう。
# yum -y install mecab mecab-devel mecab-ipadic re2c
次にmecabをphpで使えるようにするライブラリを、Githubからクローンだ。
# cd /usr/local/src/
# git clone https://github.com/rsky/php-mecab.git php-mecab
# cd php-mecab/mecab
# phpize
# ./configure
# make
# make test
make testすると最後に質問されるけど、これはテスト結果をレポートするかどうか聞いてきているので、よくわからなかったら『n』でいいと思うよ。
そして、最後に以下のコマンドで完了だ。
# make install
全て終わったら、PHPの設定ファイルに以下を追記しておこう。
俺は一番下に勝手に[mecab]なんて項目を書いてるよ。
[mecab]
extension=mecab.so
PHP関連の設定などの後は、httpdを再起動するのを忘れずに。
# systemctl restart httpd.service

■MySQL関連のインストール

【phpMyAdmin】

phpMyAdminはMySQLの各種設定や操作を、Webブラウザ上でできるすぐれものだ。かなりわけの分からない思想で作られているので、たまに極端にへっぽこなバージョンとかがあるけど、なんだかんだいってかなり重宝してるのは紛れもない事実。うんこうんこ。

そしてこのphpMyAdmin、かなりの頻度で更新しやがって、しかもそれをいちいち画面に表示するからうざい。
この場合、毎回ソースファイルをダウンロードして上書きするより、Githubなどのバージョン管理配下にあるものをクローンすれば、git pullコマンドで一発で更新が適用されるので便利だ。

しかし、Githubには言語ファイルがないので、言語ファイルだけは自前で用意しておこう。

ここでは
/home/product/phpmyadmin.torhamzedd.com/htdocs にphpMyAdmin本体、
/home/product/phpmyadmin.torhamzedd.com/log にApacheログ
としてインストールするよ。

まずはディレクトリを作ってオーナーを変更。
# cd /home
# mkdir -p /home/product/phpmyadmin.torhamzedd.com/log
# chown -R ogaaaan:ogaaaan /home/product/phpmyadmin.torhamzedd.com/
一般ユーザにスイッチしてGitコマンドでクローンしてくる。
# su ogaaaan
$ cd /home/product/phpmyadmin.torhamzedd.com/
$ git clone https://github.com/phpmyadmin/phpmyadmin.git htdocs
次にphpMyAdminの設定ファイルを編集だ。
$ cd htdocs
$ cp config.sample.inc.php config.inc.php
ハッシュ値が必要になるので、以下のコマンドで作っておこう。
$ mkpasswd -l 40 -s 0
xsqkgnadbu4kghzdd9iKasmzyooxpmSfspenlxvt
こんな感じのハチャメチャな文字列が表示されるんで、メモっておこう。

さて、設定ファイルを編集だ。
$ vi config.inc.php
ちなみに開発中はずっとphpMyAdminに接続することが多いので、タイムアウトするとうざい。なので、phpMyAdminだけ個別にPHPの挙動を変更するようにしているんだ。
設定ファイルの上の方に、以下の2行を追記しておこう。
ini_set("session.gc_maxlifetime", 18000);
$cfg['LoginCookieValidity'] = 18000;
つぎに、先ほどコピーしたハッシュ値を貼り付ける。
$cfg['blowfish_secret'] = 'xsqkgnadbu4kghzdd9iKasmzyooxpmSfspenlxvt'
少し下の方に行くと、いろいろな設定画コメントアウトされているので、ココらへんを使えるようにしよう。
具体的には、$cfg['Servers'][$i]['pmadb']から$cfg['Servers'][$i]['recent']までのコメントを外せばOKだ。



これで設定ファイルの編集は完了。

次に、phpMyAdmin自体が使用するデータベーステーブルなどを用意しておこう。
$ cd examples/
$ mysql -ufucking -psucking < create_tables.sql
はい、これで全部終わり。

と言いたいけど、まだ日本語ファイルがないわけで、表示すると英語になってしまう。
以下のリンクからall-languageバージョンをダウンロードし、解凍後、localeフォルダのみコピーしよう。
http://goo.gl/VG8wl

これで自動的に日本語で表示されるようになるわけだ。
とは言え、まだWebブラウザで見ても見れない。

次はApacheのバーチャルホストを設定して、Webブラウザから見えるようにしょう。
操作はrootで行うよ。
# cd /etc/httpd/conf.d/
# vi phpmyadmin.torhamzedd.com.conf
<VirtualHost *:80>
  ServerAdmin root@localhost
  ServerName  phpmyadmin.torhamzedd.com:80
  DocumentRoot  /home/product/phpmyadmin.torhamzedd.com/htdocs
  ErrorLog      /home/product/phpmyadmin.torhamzedd.com/log/error.log
  CustomLog     /home/product/phpmyadmin.torhamzedd.com/log/access.log combined
  <Directory /home/product/phpmyadmin.torhamzedd.com/htdocs>
    Require all granted
  </Directory>
</VirtualHost>
ホストOSであるWindows側のhostsにもここらへんの設定を書いておこう。
管理者としてテキストエディタを起動し、C:\windows\system32\drivers\etc\hostsを開こう。
192.168.56.101  phpmyadmin.torhamzedd.com
的な感じで追記して保存。これでOKだ。

Apacheを再起動して、早速Webブラウザから、phpmyadmin.torhamzedd.comにアクセスしてみよう。

■Nodejs関連のインストール

Nodejsってのは、いわゆるWebブラウザ上で実行するJavaScriptを、サーバサイドでも実行できるようにしてしまおうぜってことで始まったプロジェクトで、今や飛ぶ鳥を落として叩いてむしって刻んで焼いて食べてしまうまでだいたい2秒くらいという覇王ぶりを惜しみなく披露するほどのごっつい環境だ。使う使わないにかかわらず、入れておくと尿のキレもよくなるかもしれぬるを。

【nodejs】

Nodejsはopensslの開発環境が必要なので、予めyumで入れておこう。
# yum -y install gcc-c++ openssl-devel

【nvm】

実はNodejsをバージョン毎にインストールしてくれる便利なツールがあるんで、それを使って好きなバージョンをインストールしようぜ。やつの名は、nvmだ。一般ユーザでインストールしよう。
$ git clone git://github.com/creationix/nvm.git ~/.node
さて、これでインストールが完了した。
早速nvmを起動しよう。
$ . ~/.node/nvm.sh
このままだと次回ログインした時にまた起動しなくてはいけなくなるので、.bashrcに書いておこう。
$ vi ~/.basgrc
何処かに『. ~/.node/nvm.sh』を追記して保存だ。

さて、nvmのインストールと自動起動がおわったら、早速Nodejsのインストールをしようじゃないか。
インストールはこのnvmをつかって行うんだ。
その前に、このサイトに移動して、入れたいバージョンを調べておこう。
http://nodejs.org/dist/

今回はv0.10.1を入れるとする。
$ nvm install v0.10.1
これでOK。
他にも入れたいバージョンがあれば、
$ nvm install v0.9.9
とかすれば0.9.9が入るよ。

最後にインストールしたバージョンが有効になってしまうので、明示的に
$ nvm use v0.10.1
と叩いて、インストールされてる好きなバージョンを指定しておこう。

もしインストールしようとして『shasum』が無いと言われたら、
$ alias shasum='sha1sum'
でエイリアスを切って再度チャレンジしてみると良いかもね。

念のため、Nodejsの動作確認をしよう。
$ vi ~/example.js
以下のソースを貼り付けよう。
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "192.168.56.101");
console.log('Server running at torhamzedd.com');
$ node example.js
で実行だ。

画面には
Server running at torhamzedd.com
と表示される。
ポート1337番で待機中なんだな。

早速Webブラウザで
http://torhamzedd.com:1337/

http://192.168.56.101:1337/
などでを見てみよう。

「Hello World」と表示される。
これでNodejsの動作確認が完了だ。

Ctrl+Cで終了しておこう。

【npm】

さて、Nodejsにはいろいろなパッケージが用意されてるんだ。例えばソケット開くときに毎回ややこしい設定をしないで済むような、WebSocketのパッケージとか、コードを難読化させるパッケージなど。

これらをyumよろしく、一発でインストールしてくれるコマンドがあるんだよ。それがnpm。Nodejs Package Managerだ。
これも入れておこう。
$ curl https://npmjs.org/install.sh | sudo PATH=$PATH sh
もしエラーメッセージで『先にNodejsをインストールしろ!』って言われたら、多分Nodeが起動してない。そういう時は、
. ~/.node/nvm.sh
で実行しておこう。

インストールが終わったら、早速npmで何か入れてみよう。
俺がいつも入れてるのはこんな感じよ。
$ npm install websocket     ※WebSocket
$ npm install less          ※lessコンパイラ
$ npm install sass          ※sassコンパイラ
$ npm install uglify-js     ※JavaScript難読化/復号化
それぞれの具体的な使い方は自分で調べると良いよ。

■SSL証明書のインストール

自分で自分を承認する、いわゆるオレオレ証明書を作っておけば、開発環境でもSSL必須なサイトで便利だ。
もっとも最初に1回だけSSL証明書を例外として承認する作業がWebブラウザによっては発生するけど、まぁ1度だけなので問題ないでしょう。
作業はrootになって行おう。
# cd /etc/pki/tls/certs/
期限を365日(1年)から10年に伸ばしておく。
# sed -i 's/365/3650/g' Makefile
作成開始。
# make server.crt
このあとEnter Pass phrase:と聞かれるので、何かパスワード的なものを入力しよう。

確認の為に同じ物を2回入力するんだ。すると、すぐにキーを作ってくれるんだけど、その際に今入力したパスフレーズが必要なので、最後に同じパスフレーズを入力するんだ。つまりパスフレーズ作成で2回、キー作成で1回入力ね。

その後は以下のように聞かれるので、それぞれ以下ようにタイプしてEnterだ。
もし入力を間違えたら、BackSpaceキーをCtrlキーを押しながら押せばOK。
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shibuya-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Torhamzedd.Co.,Ltd.
Organizational Unit Name (eg, section) []:System
Common Name (eg, YOUR name) []:*.torhamzedd.com
Email Address []:<なし>
内容は適宜、自分の環境に合わせて入力しておいてくれればOK。
そしてこのままだと、Apacheを再起動する際にパスフレーズ入力が必須になってしまうので、秘密キーからパスフレーズを削除しておこう。
# openssl rsa -in server.key -out server.key
これでOKだ。

後は/etc/httpd/conf.d/ssl/confに一括してkeyファイルの場所を記入しておくか、バーチャルホストの設定ファイル毎に書いておけばOKだ。

■VMに接続出来ないときは

たまにVirtualBoxのVMにPoderosaで接続できなくことがあったんだけど、主にVirtualBoxのバージョンアップ直後に起きてたなぁ。

ま、普段はあまりお目にかかることはないと思うけど、それゆえに、つながらないときにはちょっとしたパニックに陥る人もいるんじゃないかと思うので、ここに書いておくよ。

【ネットワークの確認】

VMから直接rootでログインし、network.serviceが起動しているか確認。していなかったら起動しよう。
次回自動実行設定もしておこうね。
# systemctl start network.service
# systemctl enable network.service

【SSHDの確認】

VMから直接rootでログインし、sshdが起動しているか確認。していなかったら起動しよう。
次回自動実行設定もしておこうね。
# systemctl start sshd.service
# systemctl enable sshd.service

【IPアドレスの確認】

VMから直接rootでログインし、以下のコマンドで確認してみよう。
# ifconfig p7p1
表示されたIPアドレスが正しいか確認。間違っていたら以下の方法で修正しよう。
# ifconfig p7p1 192.168.56.101

【VMのホストオンリーアダプタの確認】

VirtualBox本体のメニューから、ファイル>環境設定>ネットワークで、VMアダプタの中身を確認しよう。
だいたい以下のようになっているはずだ。
アダプタ
IPv4アドレス192.168.56.1
IPv4ネットマスク255.255.255.0
DHCPサーバ
アドレス192.168.56.100
サブネット255.255.255.0
アドレス下限192.168.56.101
アドレス上限192.168.56.254
なっていなかったら修正しよう。

【アダプタの確認】

Windows側のネットワークアダプタ(VirtualBox Host-Only Network)のプロパティで、IPv4のアドレスが正しいか確認しよう。もし設定が空っぽなどになっていたり、見たことない数字に変わってたりしたら、コマンドプロンプトを使って修正しよう。
> netsh interface ip set address "VirtualBox Host-Only Network" static 192.168.56.1 255.255.255.0
上記コマンドは改行しちゃってるけど、1行で入力ね。
もしアダプタが『VirtualBox Host-Only Network』じゃなくて『ローカル エリア 接続 2』などになってるなら、そのままset addressの後は"ローカル エリア 接続 2"とすればOK。アダプタ名をコピーして貼り付ければ確実よ。

■おわりだ!


君のよきLinuxライフ、よきVMライフを願うプゥ。