今日は新しいアプリをアップした。と言っても、社内ツールなの一般公開ではないけど。
で、その際にすでに公開してるアプリのあるサーバーにアップしたんだけど、なんかおかしくなった。

今日のやったこと、できたこと

  • 銀行回り
  • システムメンテナンス
  • プログラミング

明日への課題

  • 社内ミーティング
  • プログラミング
  • タイムチケットで人に会う

今日のワーク

今日は月初定例の銀行回り。通帳記帳とお金の移動と住民税の支払いがメイン。
まー、これはどんな状況でもあまりかわらない。

ネットで済ませろって話もあるけど、これはこれでいいもんですよ。
対して時間もかからないし、口座のお金の動きにも目を通せるし。

そして、手伝っているシステムのメンテナンスも。
だいぶ時間がかかったけど、大きなシステム移行の処理が週末で一通り終わったので、不要なバッチを止めたりなどなど。

こっちは思った以上に早く終わった感じ。
FTPのアップロードはもっと時間かかるかなと思ったんだけど、これで一安心です。
今月から年末にかけて売れて欲しい感じですな。

そして、先週から作り始めた新しいアプリを公開サーバーにアップした。
いつも通りにgit使ってpush&cloneしたんだけど、あんまり何も考えずにやったらapacheが起動しなくなった。

正直、今回のトラブルは原因がなんなのか明確にできてない。
考えられるのは2つあるんだけど。

まず、すでにRailsのアプリが動いているサーバにアップしてPassengerをinstallした。
しかも、前のと比べて今度のPassengerの方がバージョンが新しい、すると多分2種類のPassengerが動くことになる?

あまり何も考えずにhttpd.confを書き換えて、apacheを再起動しようとしたらできない。
エラーで落ちてしまうのであせった。いや、このサイトもあるサーバーだからね 笑

エラーメッセージはこんな感じ。

Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]

80番ポートが使われていて、apacheを起動できないってことみたいなんだけど、調べた感じだとapacheが変な落ち方をした時にプロセスが残ってしまうことがあるらしい。
下のコマンドでそのプロセスが調べられる。

sudo lsof -i | grep http

なんだけど、そもそもサーバーを再起動してもapacheが起動しなかったので、たまたまじゃなくてPassengerがらみでおかしくなったんだろうとふんだ。
そこで、まずはPasengerをバージョン違いで2つ起動させるのはやめようと、バージョンを合わせることにした。

今日アップするアプリ側のGemfileを書き換えてバージョンを指定した。古いバージョンに合わせる形なんだけど。
その方がトラブルは少ないかなと思って。

で、新しいアプリでbundle install後にPassengerのインストールを行い、httpd.confのPassengerの読み込みを1つだけにした。
そしてさらに、ゴミであろうプロセスをkillして、apacheをstartしたら問題なく起動した。

現にこのブログ見れてるでしょ?大分止まってましたけどね 笑

と、一応解決はしたんだけど、本当にこれで正しい解決方法だったのかはわからない。
ネットで調べても日本語のサイトでは明確な答えがない気がした。

ただ、バージョンの異なるPassengerを2つ起動はできないと思うんだよなぁ。
もし、その方法をご存知の方がいたら教えてください。

とは言っても、一応これでツールが正式に使えるようになったので、業務を本格始動できるかな。

ただ、今回も内部ツールとかなので、絶対に公開されることはないし、あまり実績にはならないのが気になるな。
受託するつもりはあんまりないから良いと言えばいいんだけど。。。

そんな感じ。