gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

シンボリックリンク関連2種

Windows系の人には「ショートカット」って言うと通じるのかしらん?
割とおいちゃんは多用するのですが、あんまり使わない人が多いぽいので、備忘録。


前提条件
シンボリックリンクの説明はよいよね?
ln -s
コマンドで作るアレでおま。

  • sつけないハードリンクは…そも、多分見たことないぞい?(笑


その1:インフラでシンボリックリンク使いやがれ
daemonのinstallなんかでよくつかいます。
実例。
例えばapacheをinstallします。デフォだと /usr/local/apache2 とかになるのかな?
おいちゃんは、configureで指定して、これを、例えば /usr/local/apache2.2.22 とかいうディレクトリにしておきます。今時は2.4系だろうって? まぁ気にしない。
んで、installした最後に
ln -s /usr/local/apache2.2.22 /usr/local/apache2
ってやっておきます。
後日、例えば2.2.23が出たとします(…でるのかねぇ?)。
その場合、/usr/local/apache2.2.23にmake installしてから
rm -i /usr/local/apache2
ln -s /usr/local/apache2.2.23 /usr/local/apache2
ってやります。
ディレクトリは一通り置いておいて、スイッチを「がちゃこん」と切り替える感じですね。


これだと、万が一「やべぇ2.2.23だめぢゃん」って時に、
rm -i /usr/local/apache2
ln -s /usr/local/apache2.2.22 /usr/local/apache2
と、スイッチ一つで簡単に切り替えがきくので。


一方で。
普通に/usr/local/apache2にmake installしちゃうと、切り戻し大変でしょ?


この手法は、UNIX系の「魔物」な先達から教わりました。
今でも重宝をしております。


その2:configでシンボリックリンク使いやがれ
で、上述の応用。
configファイルの、例えば「本番とステージング」とかさらには「個人開発環境用」とかって、皆様どんな風に管理なさってらっさるのかしらん?
割とよく見るのが「環境変数による」if分岐なんだけど…とりあえず「8000行のconfig」とか、なんていうか心が痛む前に書いたやつを痛めたくなっちゃうお!!
で、おいちゃんがよくやる手段。
プログラムでは「config.php」をincludeします(いや別にfile_get_contentsして自力でパースとかでも全然OKだし一緒なのですが)。
実際のファイルは
re_config.php 本番用
st_config.php ステージング用
gallu_config.php おいちゃん個人環境用
hoge_config.php hogeさん個人環境用
って感じ。
あとは、例えばおいちゃんの個人環境なら
ln -s gallu_config config.php
ってやっておけばOK。
ファイル管理とかrsyncとかでは、シンボリックリンクのファイル(上述だとconfig.php)を除外するようにする設定だけ忘れずにね。
gitだと「.gitignore」ファイルに書いておけばいいし、rsyncなら--excludeオプションでファイル名を指定して除外すればOK。


この方がごちゃごちゃしないと思うんだけど、どうですかしらん?