httpアクセス時に取得できていた環境変数が突然取得できなくなった

とある環境変数を初期構築時に設定し、それがあることを前提のプログラムがありました。
そして、ある日突然、その環境変数が取得できないようになっており、不具合が起こりました。

その環境変数を「SERVER_MODE」とでも仮称します。
そのSERVER_MODEがproductionの時は本番用の設定を読み込み、developmentの時は開発用の設定を読み込むような作りをしていました。
今回、その環境変数が取得できなかった為、elseに入り予期せぬ動きをしていたのです。
そもそも取得できない時はdieすべきとか、elseに入ってもいいように本番用の設定を書いとくべきって言う安全策を講じてなかったのも良くなかったんですが、
なんで取得できなかったのか?ってことで学んだのでメモ書き。

デーモンの起動・終了にはserviceコマンドを利用しよう - インフラエンジニアway - Powered by HEARTBEATS
まさにこれのことでした。
今まで、apacheを起動させる時は、何も疑わずに

/etc/init.d/httpd start

としていました。
この場合、そのユーザの環境変数が引き継がれるんですね。ここが知らなかった。と言うか、全く意識したことなかった。
と言うのもSERVER_MODEは、/etc/profile.d/*.shにて定義されているだけでhttpd.confやその他には一切の記載はありませんでした。
その為、シェルにログインしたユーザが

/etc/init.d/httpd start

として起動すればSERVER_MODEは引き継がれるので問題は起きないのですが、それ以外の起動方法やシェルを経由しない状態で起動されたりすると環境変数が取得できなくなるのです。
逆に言えば、ユーザの環境変数に影響を受けるとも言えるので、

service httpd start

として、ほぼ引き継がずに起動させた上でプログラムが動くように設定をするって方が良いようです。

今回は、そういった状態の時に恐らく、logrotateの影響で自動再起動がかかったようで、その時にSERVER_MODEが設定されていない状態となったようです。
この辺りはまだ謎な部分もあるのですが、ユーザの環境変数が引き継がれると言うのを全く意識していなかったので勉強になりました!

追記:
service起動をした状態で、phpのexecとかで外部起動するとそっちにはSERVER_MODEが引き継がれずにまた問題が!

ってことで、/etc/sysconfig/httpd でexportしました。おしまい。
参考:
Apache(httpd)の設定 - ふなWiki
起動スクリプト(httpd)を読んでみた - まどろみの思考空間
ブログ Apache+PHPで環境変数を追加したい

CentOS7にphp5.5をインストールする

色んなケースでの色んな記事があってあっちの記事見たり、こっちの記事見たりとしたので、自分用としてもまとめておきます。

CentOS に PHP 5.4 や PHP 5.5 をインストールする : まだプログラマーですが何か?

最初はここを見て進めました。でも、完全に私の思い違いですが、このページはCentOS7の話ではないんですよね。

例示されてるリポジトリのURLも(CentOS6 64bit の例)とありますしね。
それをしっかり読まずに進めてしまったのが諸悪の根源でしたw

そして、この後、

Requires: httpd-mmn = 20051115

が出ちゃって、なんじゃこりゃーってところでかなりテンパリ。

CentOS7.1 64bitにPHP5.6.10をRPMからインストール | kakiro-web カキローウェブ

ここでは、RPMを自分で作ろうとか書いてて重いなぁ・・・と気分も重くなっていましたw

そして、

http://increment-log.com/centos7-apache24-php56/

ここを見て救われました。前操作はどうであれ、ここと全く同じ状況になっていたので、このページの通り進めていきました。

確か、途中でepel-releaseが要るって言われたので、

CentOS 7.0にEPELリポジトリを追加する方法

を元に、yumでインストール。

そして、1個前のページの通りに進め、httpdphpも無事にインストール完了ー!

借り上げ社宅制度の実践

ちょうど昨年末とかに知り合いと借り上げ社宅制度の話をしていたら、なんだか巷でも話題になるかもっぽいので、自分へのまとめ含め書いておきます。

まず、こちらで話題からの繋がりで取り上げられてます。
ちきりんvsイケダハヤト「通勤手当廃止」論争で語られなかった「住まいの問題」緩和策。 - 本田康博
ここで言う通り、節税効果が大きいので法人格を有してるほぼフリーランサーとかには良いと思います。

そして、具体的な話・・・

  1. 会社がある物件を社宅として契約する。会社はその物件にかかる家賃などの費用を全て支払う形となり、それらは経費計上可能。
  2. その社宅を給料などの金品と同等の扱いとして社員へ提供をする。この時にその物件に「賃貸料相当額」(国税庁ホームページリニューアルのお知らせ|国税庁)の価値があると考え、その金額を実際に支払われる給与額にプラスして給与所得として扱う。(実際には、賃貸料相当額分の物件提供を受けているので、その分の金額を給与受け取り側がもらえる訳ではない)
  3. ただし、賃貸料相当額の50%を社員から会社へ払われていれば(給与から差し引かれていれば)給与としては課税されない。ただしただし、賃貸料相当額を国税庁の言う計算式で算出することは家主の協力も必要で、なかなか現実的には難しいので、実際の家賃の10%を賃貸料相当額の50%に相当すると実務的にはみなすことができる。(憧れの社宅生活で節税 !?--東京の税理士・会計事務所|スマートアカウンティング東京−
  4. つまり、会社は、その物件の家賃などの費用を経費として計上し、社員or役員は、その物件の家賃の10%を給与から差し引かれるようにすれば借り上げ社宅制度で課税されないことが成り立つ。
  5. その上で、会社から社員へ支払う給与の額面からその物件の家賃の90%分を減らせば、会社・社員ともに実際のキャッシュとしての変化はせずに節税効果だけをうけることができる。

と言う感じ。
デメリットと言うか、リスクとしてはその物件が法人との契約をしてくれるかどうかってところかな。
法人の場合、敷金や保証金が6ヶ月とか多めに設定される場合もあるのでそのへんは不動産屋と相談ですね。
後、給与所得が減って住民税やらが減るのはメリットですが、当然、所得が減ればローンなどの審査にはマイナスに響くでしょうからその辺は要注意です。

mysqlあれこれ

忘れないようにメモ書き程度に。

  • mysqlの1行コメントはハイフン2個の後にスペースが必要

HugeDomains.com - Shop for over 300,000 Premium Domains

そうだったんですねぇ。がーっとcreate文作ってそれぞれにこんなコメントをつけてました。

---------------------
-- ユーザテーブル
---------------------
create table user_table ...

で、これをずらっと書いたファイルをリストアしようとしたら1行目のコメントのところでsyntax error。

何事かとぐぐったところ、↑と言うことらしく、

-- -------------------
-- ユーザテーブル
-- -------------------
create table user_table ...

とすれば無事解決しました。

  • リストア時に--default-character-set=utf8をつけよう

HTMLタグを含むデータの入ったdumpデータをリストアする時にエラーが出ました。

ERROR at line 1567: Unknown command '\"'.

こんなエラーが出ました。

ぐぐると、

【MySQL】Unknown command ‘\”. at softelメモ

と言うことらしい。my.cnfを設定しとくべきかねぇ。すぐ忘れそう。

書評 - ゲームにすればうまくいく

ゲーミフィケーションについて、知りたくて購入しました。

買ってから気付いたんですが、作者は株式会社ゆめみの代表でした。

内容的には、ゲーミフィケーションについてを広く浅くと言う感じがしました。

ゲーミフィケーションをg-デザインブロックと言う9つのブロックに分けて個別に解説しています。

1つ1つは理解出来る範囲ですし、わかりやすいと思うのですが、それを実際に行おうとしてる業務にどう導入していくかは特に触れられていません。

ですので、この1冊で自社サービスにゲーミフィケーションを活かしてどうのこうの出来るかと言えば微妙です。

参考になるものはあるかもですが、あくまで浅い内容だと感じましたので、その内容を理解した後に自身でどうにかする必要はあります。(当たり前っちゃ当たり前ですが)

著者自身もこの著書が、より多くの方に向けた内容であることは認識しているようです。

本質的なことは外さずに、なるべくわかりやすさを重視した書き方を心がけました。(中略)
今回はおもに、「ゲームの要素を使うってなんだろう?」と疑問を持ちはじめたばかりの方を対象としています。

後、個人的になるほどと思った一文です。

ソーシャルゲームでKPIを見ながらチューニングを行うと言う話の流れの中で、どういう数値を向上させれば自社として良いかと言う部分で、こんな文があります。

自社のビジネスにとって、まず「顧客との関係性の良好さ」はどのような数値で表現されるのかを特定することからはじめてみてください。

つまり、ソーシャルゲームとかだけでなく、例えば、受託ビジネスであっても「クライアントとの関係性の良好さ」を何かしらの数値で表現することが出来れば、
その数値をあげることに注力すれば良くなる為、目的が明確になります。

まずは、良好さと言うのを数値化してみるってのは面白いなぁと思いました。

書評 - 20代のいま知っておくべき お金の常識50

マネー関係の書籍にちょいちょい手を出してしまうのは、それこそ貧乏性なのだろうか・・・。

そんなことで衝動買いした一冊です。

まず、「20代」と題名にありますが、読後感的には「新卒の人に向けて」って感じでした。

実際、本書の中でのモデルとなっているキャラクターも25歳で入社3年目と言う設定らしいし。
新卒1年目2年目ぐらいに読むとちょうどいいかもって気はしました。

目次は、こんな感じ。

第1章 お金と就職
第2章 貯金の常識
第3章 お金と結婚
第4章 住まいとお金
第5章 お金の正しい使い方
第6章 老後とお金

一般的な人生の中で起こりうるイベントに対して、いくらぐらいかかると言うのが例示されています。

それに対して、いつからいくらぐらい備えていけばいいか、どういう方法で備えていけばいいかも浅くは解説されています。

後は、リボ払いは絶対ダメとかそういうお約束的なことも書いていますね。

自分の将来のことを考え始めた時にキャリアパスだけでなく、こういうお金のことも頭に入れておくと、転職する時の希望給料とかが出しやすいかもですね。

てことで、新卒2年目入ったぐらいの方にオススメ。

特に何も考えずに給料やボーナスを使っちゃってる人が読むといいかも!

プログラミングの教育について

久々のブログです。ちょっと色々と考える事があり、そのまとめと将来への記録と言うことで。

決意 - 記録日記

退職します - 記録日記

の人生の節目と呼べそうなところで、色々と言って来ましたが、そこから多少ながらやりたい内容が変わっています。

前に言っていた業界に潮流を起こすと言うやつ。

私自身、新しい技術を知ってそれを応用したりすることは楽しいけども、それ以上にそういう人らがもっと大勢で大きな技術を開発したりしてるところを見てる方が楽しいと感じてきた。

なので、一つは、技術者を多く育成出来るような職場作りを提供しようとする流れだ。

これのことですが、これがもう少し変化して、「学校を作りたい」って思うようになっていました。

社会人に向けて何かをやるのではなく、もっと若い世代(小中学生)に向けてプログラミングとはどういうものかと言うのを教えたいと思うようになりました。

そして、一人でも多くプログラマを目指す若者が増えるといいなぁと。

それで、ずっと「学校を作りたい」って思ってたのですが、ちょっと前に「学校はビジネスだよね。それで目的は果たせるのかな。」みたいなツッコミを受けました。

確かに、私がやりたいのは学校ビジネスで儲けることではなく、教育です。なので、ビジネスになってはいけないのかなと。

そんな時に偶然twitterのTLで「プログラマも音大や芸大みたいにプログラミング出来ることを前提とした大学があればいいのに」みたいなのを見つけました。

なるほど!って思いました。

子供の頃の習い事の選択肢としてプログラミングと言うのが一般的に出てくるようになればいいのではないかと思いました。

つまり、ヤマハ音楽教室のプログラミング版を作ればいいのかなとか思ったりしました。

まぁ、ヤマハもビジネスですがね・・・。ビジネスにせずにどう継続するかと言うところは、まだ未解決な課題として残りますが、方向性は具体的になってきたかなって思っています。

さてはて、子供に対するパソコン関係って現状でどういうのがあるのだろうと、とりあえずAVIVAを見てみたところ、

パソコン教室・習い事 アビバキッズ

アビバキッズってのがあって小学生から対象にしてるみたいです。ただ、これはあくまでPCに関するところなので、プログラミングは対象にはしてないですね。

こういうののプログラミングに特化した教室が出来ればいいのかなぁとかとか。

LEGO Education

こんなところもありますね。私が小さい頃にあったらすごいはまってただろなぁとか思ってしまいます!


今、思ってるのはそんな感じです。

で、当初は、「学校」と言うのを想像していたので、それなりの校舎があって、それなりの生徒数に教員数で、それなりのお金がかかることを想定していたので、資金的な面でまだまだ先のことだと思っていました。

ですが、「教室」なら今からでもやれんことはないかもなぁと思いました。

また、人生設計を変えなければ!!