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

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

composer を使おう

composer とは、PHPのライブラリを依存パッケージごと管理するツールです。 これまでにも PHP のライブラリツールとしては PEAR がありましたが、現在では composer でインストール可能なものはこちらで管理する流れが出来上がっています。
今回は今更ですが composer を導入するための手順についてまとめます。

導入環境

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

ストリーミング動画のプレイリストを非同期に切り替える

3つ目の HLS(HTTP Live Streaming)ネタです。
HLSプレイリストをPCで再生する場合、video.js ライブラリを利用すると楽です。

<html>
<head>
<link href="https://vjs.zencdn.net/6.2.7/video-js.css" rel="stylesheet">
<script type="text/javascript" src="./js/jquery-2.1.1.min.js"></script>
</head>
<body>
<div class="movie_content_cap">
  <video id="player" class="video-js vjs-default-skin" height="404" width="720" controls poster="./st_capture.jpg">
  <source id="player_source" src="st.m3u8" type="application/x-mpegURL" />
</video>

<script src="https://vjs.zencdn.net/6.2.7/video.js"></script>
<script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.10.1/videojs-contrib-hls.js"></script>

<script>
$(function() {
  videojs.options.flash.swf = 'https://unpkg.com/videojs-swf@5.4.0/dist/video-js.swf';
  var player = videojs('player');
  $('#player').on('touchstart mousedown', function(e) {
    e.preventDefault();
    player.play();
  });
});
</script>

jQuery を利用しています。

続きを読む

PHP で Yahoo!ID連携v2 の認証を行う

Yahoo!ID連携は現在 v2 と呼ばれるバージョンで OpenId 認証が可能です。
それまで使用されていた v1 は今年の3月以降、新規の登録が不可能となりました。
Yahoo!ID連携v1 は、PHPSDKが用意されており、実装が楽になっていますが、v2 では Javascript SDK があるのみで、その他の言語の SDK は用意されていません。
ただ、OpenId Connect 準拠となっていることから、サードパーティの認証ロジックをほぼ変更することなく実装が可能となっています。
当記事では Yahoo!ID連携v2 の認証を PHP で実装し、クライアントのメールアドレスを取得するまでの流れをご紹介します。

導入環境

ソフトウェア バージョン
PHP 5.6

PEAR のライブラリ Net_URL および HTTP_Request2 を利用します。

続きを読む

PHPのMediaInfoパッケージを利用してHLS用に動画分割する

HTTP Live Streaming を実装する際、もともとの動画ファイルを分割し、プレイリストファイル(m3u8)を作成する必要があります。

HLS(HTTP Live Streaming) を構築する - 明滅するプログラマの思索

で分割する流れをまとめてありますが、今回はこれをPHPで自動化します。

導入環境

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

Google Cloud Platform の負荷分散に Let's Encrypt のSSL証明書を設定する

Google Cloud Platform(以下 GCP)で利用可能なロードバランサでフロントをSSLにするために Let's Encrypt を利用することができます。
この件については、以下の参照先が大変参考になります。

qiita.com

ここでは、参照先の内容を踏まえて気を付けるべき点と、自動化するための設定をまとめます。

続きを読む

Apache ユーザに別のユーザとして処理を実行させる

Apacheで立てた Web サーバにリクエストを送り、それをトリガとしてサーバ上で操作を行う場合、その実行ユーザはデフォルトでは apache ユーザとなります。
これだと、そのファイルのユーザ・権限によっては、アクセス権がなく実行に失敗してしまうことが考えられます。
もちろんアクセス権を事前に変更しておき、apache ユーザでも処理を行うことができるようにする、というのも1つの方法ではありますが、そういった処理をしたくない場合もあります。
そういった場合、linux なら sudo コマンドを利用して、別のユーザとして処理を実行することができます。

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

Postfix を利用して外部の qmail サーバからメールを送信する

Google Compute Engine は、Google の制約によりメール送信が行えません。
すなわち、SMTP(25番ポート)・SMTPS(465番ポート)・Submission(587番ポート)が閉じられています。
メールを送信する場合、サードパーティのメール送信ツール SendGrid を利用するよう推奨されています。
ここでは SendGrid を使わずに、自分で別のサーバにメールサーバ qmail を立て、そこを経由してメール送信を行えるようにしてみます。

導入環境

GCE側

ソフトウェア バージョン
CentOS 7.3
Postfix 2.10

GCE 側のIPを <gcp ip>と記述します。
また、GCEは25番ポートが閉じているため、25番ポートでのメール転送が行えません。
ここでは50025番ポートを使用することにします。

メールサーバ側

ソフトウェア バージョン
CentOS 6.9
qmail 1.03

メールサーバ側の IP を <qmail ip> と記述します。

続きを読む