Web + Life Hack

〜True But Useless〜

【Rails】【Git】身の毛もよだつRailsルートディレクトリにある怪奇ファイルたち!

みんながお盆を満喫し、すっかりfacebookがご飯や親しい友人の写真、
家族の写真で埋め尽くされている中、
せこせこpagenateの追加やviewの修正をしている僕です。


今回、お盆ということで少し怪談チックで。

怪奇ファイル1

.gitignore


用途
Git用のファイルであり、git管理対象外を指定する際に使用します。

メリット
productionモードとdevelopmentモードで設定が違うファイルを
区別する時に便利です。
例:config/database.yml
*ローカル環境とテスト環境、本番環境でそれぞれデータベース名が違うということや、ログインユーザーが違うといったことなどでこのあたりはトラブる原因になります。
 対象外とした方が無難です。

.gitignoreにおいての恐怖体験

いきなりこける

https通信をする際に「config/initializers/local.rb」を修正し、
git対象としなければならなかったのですが、
がっつり記載していたため、gitの対象外となり、
本番環境にpushしても反映されず、気づくのが遅れてこけました。
(プロトコルエラーになってから気がつきました)

怪奇ファイル2

Gemfile


用途
Bundler用。インストールするgemの指定に使用します。

メリット
railsで使用するnokogiriやmysqlを動かすgemを個別に指定しなくても
bundle installコマンドで一気に取得出来ます。

Gemfileにおいての恐怖体験

いきなりこける

railsアプリのバージョンを考慮し各々、gemのバージョンを指定しないと
bundle installを実行すると最新版を取得してしまい、
アプリ上で動かないgemが多発しこける。

怪奇ファイル3

Gemfile.lock


用途
開発環境と運用環境とで同じ gem をインストールするために使います。


メリット
「開発環境と運用環境とで同じ gem をインストール」することが出来るため、
確実動作が期待されるアプリに有効です。

Gemfile.lockにおいての恐怖体験

無限apache再起動不能

Gemfile.lockが.gitignoreに含まれており、「git対象外」となり、
デフォルト権限がroot権限のみ書き込み可能だった場合、
root以外のユーザーではアクセスすることが出来ない場合がある。
その状態でroot以外のユーザーがサーバーの再起動(sudo /etc/init.d/apache2 restart)
を行うと失敗となる。
(サーバー再起動時に書き込みを行うため)


いかがだったでしょうか?
今年の夏一番の恐怖体験をする前に
一度ご確認することをおすすめします。。。

http://instagram.com/p/c9CB4ZwYpi/
Instagram
http://instagram.com/p/c9CDlcwYpm/
Instagram