Hatena::ブログ(Diary)

記録日記 このページをアンテナに追加 RSSフィード

2015-10-16 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で環境変数を追加したい

2015-02-14 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

そして、

CentOS7にApache2.4とPHP5.6をインストールしようとしたらhttpd-mmnの違いでエラーが出る

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

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

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

を元に、yumインストール

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

2015-01-16 借り上げ社宅制度の実践 このエントリーを含むブックマーク

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

まず、こちらで話題からの繋がりで取り上げられてます。

ちきりんvsイケダハヤト「通勤手当廃止」論争で語られなかった「住まいの問題」緩和策。 - 本田康博

ここで言う通り、節税効果が大きいので法人格を有してるほぼフリーランサーとかには良いと思います。

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

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

と言う感じ。

デメリットと言うか、リスクとしてはその物件が法人との契約をしてくれるかどうかってところかな。

法人の場合、敷金保証金が6ヶ月とか多めに設定される場合もあるのでそのへんは不動産屋と相談ですね。

後、給与所得が減って住民税やらが減るのはメリットですが、当然、所得が減ればローンなどの審査にはマイナスに響くでしょうからその辺は要注意です。

2014-10-29 mysqlあれこれ このエントリーを含むブックマーク

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

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

MySQLのコメントにハマる | 独立型戦闘支援ブログ

そうだったんですねぇ。がーっと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を設定しとくべきかねぇ。すぐ忘れそう。

2012-10-12 書評 - ゲームにすればうまくいく このエントリーを含むブックマーク

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

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

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

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

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

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

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

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

本質的なことは外さずに、なるべくわかりやすさを重視した書き方を心がけました。(中略)

今回はおもに、「ゲームの要素を使うってなんだろう?」と疑問を持ちはじめたばかりの方を対象としています。

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

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

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

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

その数値をあげることに注力すれば良くなる為、目的が明確になります。

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