PHPは、HTMLファイル内に記述するタイプのスクリプト言語です。通常のCGIとして使用できますが、
PHPモジュールをApacheサーバーに組み込むことにより、Perl/CGIよりも処理速度の高速化、サーバー負荷の低減が可能です。
マニュアルなどの詳細情報は、日本PHPユーザ会 にあるのでご覧ください
※本サイトは全面的にPHPで構築しています。
PHPをインストールします。
# apt-get install php php-apache
/etc/php.iniを編集します。
# vi /etc/php.ini
mbstring.internal_encoding = EUC-JP
expose_php = Off ← X-Powerd-By: PHP/Versionヘッダを隠す。
その他、必要な修正を行います。
test.phpを作成して次のように書きます。
# vi test.php
<&php echo "This is test!"; ?>
ブラウザからtest.phpにアクセスして、This is test!と表示されたら問題なく動作しています。
apacheのmod_rewriteを使うと、PHPなどのスクリプト言語を使った動的URLをリアルタイムで静的URLに変換することができます。詳細は、apacheウェブサーバーにて紹介しています。
PHPを使ったログ解析、webalizerよりも見やすくてわかりやすいのでオススメです。
http://bbclone.deからファイルをダウンロード、解凍してwebルートに置きます。
conf/config.phpを編集します。
# vi conf/config.php
$BBC_MAINSITE= "../"; ← webルートディレクトリに設置する場合
$BBC_SHOW_CONFIG = "0"; ← 管理画面を表示しないようにする。
$BBC_TITLEBAR= "アクセス解析 解析日 %DATE"; ← 解析ページのタイトル表示
$BBC_LANGUAGE ="ja"; ← 日本語を指定
$BBC_DETAILED_STAT_FIELDS = "id, time, ext, dns, visits, os, browser, referer, ip, page, search"; ← 解析項目を設定
$BBC_IGNORE_IP = "192.168."; ← LANからのアクセスは解析対象外とする
$BBC_DEBUG = "1"; ← うまく動作しない場合はデバッグモード(1)にしてみる。通常は0のままで良い。
bbclone/varフォルダとその中身のパーミッションを設定します
# chmod 777 var/
# cd var
# chmod 666 *
ホームページのhtmlファイルに下記のように記述します。
# vi hoge.html
$request = strtolower($_SERVER['REQUEST_URI']);
define('_BBC_PAGE_NAME', $request);
define('_BBCLONE_DIR', 'bbclone/');
define('COUNTER', _BBCLONE_DIR.'mark_page.php');
if (is_readable(COUNTER)) include_once(COUNTER);
ブラウザで、webルート/bbclone/へアクセスすればbbcloneが起動します。
アクセス解析もできます。
# vi hoge.html
require("./bbclone/var/access.php");
$totalcount=$access["stat"]["totalcount"];
$tcount=$access["time"]["day"][date("j")-1];
$ycount=$access["time"]["day"][date("j")-2];
$totalpv=$access["stat"]["totalvisits"];
echo "$totalpv pageview, ";
echo "$totalcount Visits (本日:$tcount 昨日:$ycount).";
APCはPHPの中間コードのキャッシュや最適化を行う拡張モジュールです。
このサイトではAPCを導入して高速化を図っています。
# apt-get install php-devel # apt-get install apache-devel # pecl install APC # vi /etc/php.ini extension=apc.so ← 追加する。 apc.enabled=1 ← 追加する。 apc.mmap_file_mask = /tmp/apc.XXXXXX ← 追加する。 # /etc/rc.d/init.d/httpd restart phpinfo()で組み込まれたかどうかを確認する。 apc.phpにアクセスするとキャッシュの状態についての詳細な情報が得られる。