明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

Nginx のリバースプロキシを利用し PHP 処理を Apache で行う

Nginx のシェアが堅調に伸びているようです。
Apache と違い、静的なコンテンツを大量にさばくのに適した Web サーバですが、サーバサイドスクリプトを実行する場合はちょっとしたテクニックが必要となります。
PHP の場合、php-fpm を起動し UNIXドメインソケット経由で実行させる方法があります。
この方法の場合、ファイルベースでセッションを管理しようとすると、格納先(デフォルトだと /var/lib/php/session)のアクセス権をフルオープンにしなくてはならず、個人的には好きな方法ではありません。
やはり PHPApache モジュールにさばいてもらうのが、今までの前提知識も崩れにくく、安定すると思います。
そこで、Web フロントは Nginx に立ってもらい、PHPリクエストの場合は Apache に流して実行する、という構築を行ってみたいと思います。

導入環境

ソフトウェア バージョン
CentOS 7.3
Nginx 1.12.1
Apache 2.4.6
続きを読む

ps ax|grep コマンドで自分自身を除く

ps コマンドと grep コマンドを使って、実行中のプロセスを確認するとき、結果にその実行コマンドも含まれてしまいます。
たとえば、httpd プロセスを確認するとき、以下のように書きますが、

$ ps ax|grep httpd
 1468 ?        Sl     1:11 /usr/sbin/httpd
 1469 ?        Sl     1:05 /usr/sbin/httpd
 1470 ?        Sl     1:13 /usr/sbin/httpd
 1471 ?        Sl     1:05 /usr/sbin/httpd
 1472 ?        Sl     1:06 /usr/sbin/httpd
 1473 ?        Sl     1:04 /usr/sbin/httpd
 1474 ?        Sl     1:07 /usr/sbin/httpd
 1475 ?        Sl     1:13 /usr/sbin/httpd
 6760 pts/7    S+     0:00 grep httpd      ←実行コマンドが含まれる
19200 ?        Sl     1:09 /usr/sbin/httpd
19201 ?        Sl     1:09 /usr/sbin/httpd
19271 ?        Sl     1:07 /usr/sbin/httpd
19272 ?        Sl     1:06 /usr/sbin/httpd
20058 ?        Sl     1:04 /usr/sbin/httpd
22555 ?        Ss     5:04 /usr/sbin/httpd
22600 ?        Sl     1:02 /usr/sbin/httpd
22602 ?        Sl     1:02 /usr/sbin/httpd
22603 ?        Sl     1:05 /usr/sbin/httpd
24020 ?        Sl     1:00 /usr/sbin/httpd
24029 ?        Sl     0:59 /usr/sbin/httpd
続きを読む

HLS(HTTP Live Streaming) を構築する

HLS とは

  • Apple が開発した動画ストリーミングのためのロジックです。
  • 主にSmartphone向け、iPhone / Android3.0 以上で動作します。PCではデフォルトでは再生できませんが、Javascriptベースの再生可能なプレイヤーは開発されています。
  • 特別なサーバを必要とせず、Webサーバがあれば実装可能です。
  • 要はお手軽なストリーミングサーバ!

導入環境

ソフトウェア バージョン
CentOS 6.8
Apache 2.2.15
続きを読む

jQuery における context の役割

jQuery には context という名のプロパティ、オプションがあります。
今回はこれの役割についてまとめてみます。

context とは

日本語にすると「文脈」とか「前後関係」なんて訳されます。
jQuery の中では、「関連付け」というような意味の役割を持っています。

続きを読む

クラス内 static プロパティについてまとめ

PHP のクラスが持つプロパティ(メンバ変数)には、static 修飾子を付けることができます。

<?php
class A
{
    public static $HOGE = 'hoge';
}

static 修飾子をつけたプロパティとそうでないプロパティは、何が違うのでしょうか。

実装条件

ソフトウェア バージョン
PHP 5.6.30
続きを読む