tmuxを使った複数サーバーの同時操作
仕事で複数サーバーで同じ操作をしたくなったのですが、「tmuxのsynchronize-panes
を使えばいい」と先輩に教えてもらいました。
synchronize-panesとは
複数ペインを同時に操作できる機能です。
同時操作をしたいサーバーをそれぞれのペインで接続した後に、synchronize-panesを使えば、すべてのペインで同じ動作ができます。
synchronize-panesの使い方
tmux.confに次のコマンドを書けば、OKです。(prefix + e
で起動、prefix + E
で終了)
bind ~
の部分は、お好みのキーをキーバインドでどうぞ。
bind e setw synchronize-panes on bind E setw synchronize-panes off
シェルスクリプトを書いて、サーバーに一気につなぐ方法もあるみたいです。
この辺も今度やってみようと思います。
参考
第110回 PHP勉強会@東京 に参加しました。
2日続けて勉強会。
2日続けて同じ会場。
会場から2階上がオフィス。
そして明日から2月。
渋谷ECミートアップ vol.3〜デザイナーが語るサービス設計・メディアの裏側〜 に参加しました
自分のチームのメンバーがお話するとのことで、ふらっと参加してきました。
デザイナーさん向けの勉強会に参加するのが初めてだったのですが、スライドの作り方がデザイナーさんだ!って感じで綺麗でした。
自分が作る時に参考にします。
参加されていた方はエンジニアさんも多かったので、懇親会でお話しできて楽しかったです。
Apacheの組み込みモジュールの確認方法
Apacheの組み込みモジュールに何が入ってるんだっけ?となった時に使えるコマンドをメモ。
組込済みモジュールを一覧表示する
httpd -M
を実行すると、組み込まれているモジュールを一覧表示できます。
例) 組み込みモジュールを一覧表示
$ httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) access_compat_module (shared) actions_module (shared)
- 上記の例で、モジュール名の右に表示されている、
(static)
,(shared)
は、モジュールタイプを表しています。- staticは、静的リンクを利用して組み込まれたモジュール
- sharedは、動的リンク(DSO: Dynamic Shared Object)を利用して組み込まれたモジュール
静的モジュールのみを一覧表示する
- Apacheに組み込まれている静的モジュールのみを一覧表示するコマンドは、
httpd -l
例) 静的モジュールのみを一覧表示
$ httpd -l Compiled in modules: core.c mod_so.c http_core.c
OSS Gateに参加してきた
OSS開発未経験者が、OSS開発の一歩目を踏み出してみようというワークショップに参加してきました。
イベント内容はこちら。OSS Gate | Doorkeeper
興味があるものをやってみたらいいとのことだったので、Composerを選択してみました。
作ったissueがこちら
ドキュメントこの方がわかりやすくない?ってことが言いたいだけですが、必要ならPRも作るよ!と言っておきました。
コード書いたりしてないから、OSS開発したとはまだ言えないのかもしれないけれど、OSS開発を始める敷居は下げれた感じがしてよかったです。
自分でも貢献できそうなOSS探して、ちょこちょこやっていきたいなあと思いました。
PHPのエラーをまとめる
PHPのエラーについて勉強したので、まとめます。
概要
PHPのエラーには、大きく分けて3種類あります。
上記の3種類のいずれかに属するものとして、エラー定数というものがあります。
代表的なエラーの重要度が高い順に並べると、次のようになります。
E_PARSE
E_ERROR
E_WARNING
E_NOTICE
E_DEPRECATED
E_STRICT
(PHP7.0で廃止)
そして、上記のエラー定数の中に個別のエラーが所属しています。
プログラムを実行した際に画面に表示されるエラーは、この個別のエラーです。
例えば、E_NOTICE
に所属しているエラーには、次のようなものがあります。
- 変数が未定義
Notice: Undefined variable: foo in /var/www/html/sample.php on line 5
- 定数が未定義
Notice: Use of undefined constant FOO - assumed 'FOO' in /var/www/html/sample.php on line 6
パースエラー
- エラー定数では、
E_PARSE
が該当します。- プログラム実行時のエラー表記は、
Parse error: ~~~
です。
- プログラム実行時のエラー表記は、
- プログラムのコンパイル時(Parserの処理の時)にエラーが発生するため、プログラムが1行も実行されることなく終了します。
- コンパイル時の挙動は、PHPのソースコードが実行されるまでの流れを参照ください。
実行時のエラー
- エラー定数では、
E_ERROR
が該当します。- プログラム実行時のエラー表記は、
Fatal error: ~~~
です。
- プログラム実行時のエラー表記は、
- 前述のパースエラーと異なり、エラーが発生するまでは正常にプログラムが動作します。
- エラーが発生すると、その時点でプログラムの処理が終了します。
警告・注意
- エラー定数では、以下のものが当てはまります(
E_PARSE
,E_ERROR
以外のすべて)E_WARNING
E_NOTICE
E_DEPRECATED
E_STRICT
(PHP7.0で廃止)Strict Standards: ~~~
E_WARNING
- 実行時の警告を表します。
- 例えば、引数の数を間違えた場合など
- プログラム実行時のエラー表記は、
Warning: ~~~
です。 - 警告が発生した場合は、その時点の式の評価や文の実行をやめてしまいますが、その後の処理を継続します。
- ポイントとしては、評価されなかった式などによって、本来得られるべきと開発者が考えていた値が取得できていないことです。これによって、予期しない挙動を起こす可能性があるため、E_WARNINGがなくなるように修正すべきです。
E_NOTICE
- 実行時の警告を表します。
- E_WARNINGとの違いは、PHPが自動的に対処を施せる程度の警告であることです。そのため、E_WARNINGよりも重要度が低いとされています。
- プログラム実行時のエラー表記は、
Notice: ~~~
です。 - E_WARNINGに比べると重要度は低いが、自動キャストなどが行われているため、予期しない挙動が起こりえます。修正すべきです。
E_DEPRECATED
- 過去に許されていた文法や関数が現行バージョンでは非推奨になっており、将来的に廃止予定のものを使った場合の警告です。
- プログラム実行時のエラー表記は、
PHP Deprecated: ~~~
です。 - この警告が発生しても、実際に廃止になるまでは動作するため、急いで修正しなければならないものではないです。
- しかし、いずれ動作しなくなることを表しているので、修正した方が無難です。
E_STRICT (PHP7.0で廃止)
- 互換性維持などのために、変更した方が望ましい場合の警告です。
- PHP7.0で、このエラー定数自体が廃止になり、かつてこのエラー定数に所属していたエラーは、別のレベルのエラー定数に統合されるなどしています。
- プログラム実行時のエラー表記は、
Strict Standards: ~~~
です。 - E_DEPRECATEDと同じ理由で、修正した方が無難です。