PHPのセーフモードを有効にした状態でVisitors
ウェブ統計プログラムを呼び出す方法
ウェブ統計を追跡する際には、適切なツールを選ぶことが重要です。その中で注目を集めているのがVisitors
ウェブ統計プログラムです。しかし、PHPのセーフモードが有効なウェブサーバーを使用している場合、このプログラムの統合はかなり厄介になる可能性があります。このブログ記事では、セーフモードの制限を乗り越えながらPHPからVisitors
プログラムを呼び出す方法を探ります。
課題
NearlyFreeSpeech.NET (NFSN)を含む多くのウェブホストは、セキュリティを強化するためにPHPのセーフモードを実装しています。これにより、外部プログラムを実行するのに一般的に使用されるshell_exec
などの特定の関数の実行が制限されます。それでは、どのようにしてこの環境でVisitors
を動作させるのでしょうか?
解決策:CGIの利用
幸いにも、**Common Gateway Interface (CGI)**を使用することでPHPセーフモードによって課せられた制限を回避できます。CGIスクリプトを作成することで、Visitors
プログラムを安全に実行し、必要なウェブ統計を収集できます。
CGIスクリプト作成のステップバイステップガイド
-
スクリプトファイルを作成する
- テキストエディタを使用して
visitors.cgi
という名前の新しいファイルを作成します。
- テキストエディタを使用して
-
シェバン行を追加する
- スクリプトの最上部に、スクリプトを実行するためのインタープリタを指定する必要があります。CGIスクリプトでは、以下を記述します:
#!/bin/sh
- スクリプトの最上部に、スクリプトを実行するためのインタープリタを指定する必要があります。CGIスクリプトでは、以下を記述します:
-
Content-Typeヘッダーを設定する
- ウェブサーバーがHTMLコンテンツを返していることを認識できるように、次の行を含めます:
printf "Content-type: text/html\n\n"
- ウェブサーバーがHTMLコンテンツを返していることを認識できるように、次の行を含めます:
-
Visitorsプログラムを実行する
- 最後に、
Visitors
プログラムを直接呼び出します。以下のように実行できます:exec visitors -A /home/logs/access_log
- 最後に、
完全なCGIスクリプトの例
以下がvisitors.cgi
スクリプトの完全な例です:
#!/bin/sh
printf "Content-type: text/html\n\n"
exec visitors -A /home/logs/access_log
重要な注意事項
- 権限:
visitors.cgi
ファイルが実行可能であることを確認してください。次のコマンドで実行可能にできます:chmod +x visitors.cgi
- 場所:
visitors.cgi
ファイルをサーバーのCGIディレクトリ(通常は/cgi-bin/
)に配置します。 - テスト: ウェブブラウザからURLを使用してCGIスクリプトにアクセスし、期待どおりに動作するか確認します。
結論
CGIスクリプトを利用することで、セーフモードがアクティブな環境でもPHPから効率的にVisitors
ウェブ統計プログラムを呼び出すことができます。この方法はシンプルでありながら、サーバーの安全プロトコルを損なうことなくウェブ統計を処理する安全な手段を提供します。
この解決策を実装する際に問題が発生した場合は、気軽に質問したり、ウェブホストのドキュメントを参照してください。
同様の課題に直面している方々へ、創造的な回避策が見つかることを覚えておいてください!