SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Zend Server Ver 6.1」チュートリアル

手軽で高機能なPHPアプリの運用環境「Zend Server 6.1」フリー版の概要とインストール手順

「Zend Server Ver 6.1」チュートリアル 前編

  • このエントリーをはてなブックマークに追加

 Webアプリケーションの開発や運用では、各種ソフトウェアのダウンロードや、コンパイル、ログの確認の手間でお困りではないでしょうか。この記事では、Webサーバを手軽に構築して運用する手段として、Zend Server Free Editionを紹介します。前編では、まずZend Serverの概要やインストール手順を紹介します。

  • このエントリーをはてなブックマークに追加

Zend Serverの機能

 はじめに、Zend Server 6.1の実装機能を解説します。いずれもオリジナリティあふれるパワフルな機能です(注意:本記事は、執筆当時の状況です。記載のバージョンおよび機能は変更されることがあります)。

Ver 6.1で使える主なコンポーネント

 Zend Server Ver 6.1の機能は、コンポーネントとして実装され、PHPコミュニティおよびLinuxデストリビューションから入手できるPHPを大幅に機能拡張します。

表1:Zend Server機能名と内容
コンポーネント名
(機能名)
提供機能
Zend Code Tracing
(コードトレーシング)
PHPスクリプトの実行状況をリアルタイムに記録
Zend Data Cache
(データキャッシュ)
さまざまなキャッシュ目的に使用できるAPI
Zend Debugger デバッグ、プロファイリングおよびコードカバレッジに利用
Zend Deployment
(デプロイ)
アプリケーションを管理
Zend Guard Loader Zend GuardでエンコードされたPHPスクリプトを実行
Zend Java Bridge
(Javaブリッジ)
PHPスクリプトから呼び出すJava VMを1つに統合
Zend Job Queue
(ジョブキュー)
PHPスクリプトを定期的に、または画面表示と非同期に実行
Zend Monitor
(モニター)
アプリケーションの品質を改善するための情報を収集
Zend Optimizer+
(コードキャッシュ)
オペコードをキャッシングおよび最適化
Zend Page Cache
(ページキャッシュ)
PHPスクリプトのHTML出力全体をキャッシュ
Zend Statistics アプリケーションおよびサーバのパフォーマンス情報を収集

 Free Editionでは、これらの機能のうち、グレーになっている機能が使用できません。しかし、その他の機能は無償で利用できます。本稿では、これらの無償で利用できる機能をWebアプリケーションの開発や運用に活用する方法を解説します。

コードキャッシュとデータキャッシュ

 PHP 5.5にコードキャッシュ機能が統合されました。相当する機能をZend ServerではPHP 5.2から実装しており、PHPのコンパイルをしなくても利用できます。この機能により、PHPスクリプトを実行する際の時間が3割前後省略できます。

 さらに、データキャッシュ機能では、任意のデータをキャッシュして再利用するためのAPI関数が用意されています。例えばPHPスクリプトで生成したWebページのうち、内容が比較的変わりにくい部分をこのAPI関数を使用してキャッシュすると良いでしょう。

 その結果、Webページ生成処理の一部をPHPスクリプト実行時に省略することができます。

デプロイ

 1つのWebサーバに複数のアプリケーションを搭載することがあります。その場合、アプリケーションごとにアクセス負荷やイベントの監視条件を設定したいかもしれません。

 そのような場合にデプロイ機能が便利です。この機能は、1つのWebサーバを仮想ディレクトリごとに分割したアプリケーションの集合体として管理できます。後述のモニタ機能のルールなど、多くの機能がアプリケーションと連携して動作します。

 例えば、管理コンソールのグラフやイベントは、アプリケーションごとに表示を切り替えることができます。

図1:管理コンソールTopページの表示をWebアプリごとに切替
図1:管理コンソールTopページの表示をWebアプリごとに切替

モニタ

 PHPにはエラーログが用意されています。しかし、実行の遅延やメモリ消費など「エラー」としては出力されないもの、およびエラーの発生を抑制した場合はエラーログに記録されません。また、トラブル発生時にエラーログを調査するのは大変な作業です。より広範囲の問題を簡単に取り扱うには、モニタ機能が便利です。

 この機能では、問題を検出するためのルールを設定しておきます。ルールを超過した処理を検出すると、検出時の詳細な状況とともにイベントとして記録します。ルールは15種類用意されていて、アプリケーションからZend Serverの機能そのものまで監視することができます。

表2:ルールの一覧
ルール名 概要
Custom Event
管理者独自のイベント
Database Error データベース関数の処理結果
Failed Writing Code Tracing Data
コードトレース処理中エラー
Function Error 関数の処理結果
High Memory Usage メモリ使用量の増大
Inconsistent Output Size Webページ出力量の異常
Job Execution Delay ジョブ実行遅延
Job Execution Error ジョブ実行エラー
Job Logical Failure ジョブ論理エラー
PHP Error PHPのエラー
Slow Function Execution 関数実行遅延
Slow Query Execution データベース処理実行遅延
Slow Request Exection PHPコード実行遅延
Uncaught Java Exception 例外発生
Zend Framework Exception Zend Framework例外発生

コードトレーシング

 モニタ機能がイベント検出時の状況を記録するのに対して、コードトレーシングは、該当のPHPスクリプトの実行状況、例えばステップごとの実行時間やメモリ使用量を詳細に記録します。メモリ消費の増大や時間を要する処理などのボトルネックを視覚的に把握することができます。

 コードトレーシングを使用すれば、メモリ消費を調査するためのPHPコードを追加する必要がありません。

図2:コードトレースによる処理内容の詳細と処理時間
図2:コードトレースによる処理内容の詳細と処理時間

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Zend Serverの動作環境

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
「Zend Server Ver 6.1」チュートリアル連載記事一覧
この記事の著者

吉田 悟(コネクト株式会社)(ヨシダ サトル(コネクトカブシキガイシャ))

主にSIer向けにPHPおよび商用データベースのトラブル時の調査とテクニカルサポートを担当しています。http://www.konekto.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7492 2013/11/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング