Linux に、Apache 2.2 をインストールする

まずは以下の URL にアクセスして Apache をゲット。 コンソールから以下のコマンドを実行。 # ./configure --enable-so --enable-module=so --enable-module=rewrite # make # make install インストール情報は以下の通り。 インストールディレクトリ: /usr/local/apache2 htdocs (HTML ドキュメントルート) のディレクトリ: /usr/local/htdocs httpd.conf 設定ファイルの場所: /usr/local/apache2/conf/httpd.conf これで、
# /usr/local/apache2/bin/apachectl start
または
# /usr/local/apache2/bin/apachectl stop
または
# /usr/local/apache2/bin/apachectl restart
などとしてあげればよろしい。 最後に、ブラウザからインストールしたマシンの IP アドレス (例えば、192.168.0.1 など) にアクセスして、「It works!」と表示されれば、動いています。
まずは以下の URL にアクセスして Apache をゲット。 コンソールから以下のコマンドを実行。 # ./configure --enable-so --enable-module=so --enable-module=rewrite # make # make install インストール情報は以下の通り。 インストールディレクトリ: /usr/local/apache2 htdocs (HTML ドキュメントルート) のディレクトリ: /usr/local/htdocs httpd.conf 設定ファイルの場所: /usr/local/apache2/conf/httpd.conf これで、
# /usr/local/apache2/bin/apachectl start
または
# /usr/local/apache2/bin/apachectl stop
または
# /usr/local/apache2/bin/apachectl restart
などとしてあげればよろしい。 最後に、ブラウザからインストールしたマシンの IP アドレス (例えば、192.168.0.1 など) にアクセスして、「It works!」と表示されれば、動いています。

PHP で、サーバの設定を確認する方法

以下のスクリプトを作成する。表示結果はこのようになる
<?php
phpinfo
();
?>
以下のスクリプトを作成する。表示結果はこのようになる
<?php
phpinfo
();
?>

PHP で、連続カウント防止・カンマ区切り付きカウンタを作成する

PHP で、以下の仕様を満たすカウンタを作成してみる (このサイトで使っています)。
  1. 同一 IP からの連続したアクセスをカウントしない (連続カウント防止)。
  2. カウンタの数字をカンマ (,) で区切って表示する。
連続カウント防止機能は、
if(($ip_check == 1 && $ip != $_SERVER['REMOTE_ADDR']) ...
の部分でチェックしている。$ip には、「直前にアクセスしてきた IP アドレス」が入っている。同じ IP アドレスからアクセスし続ける限りはカウントされない。通常はこれでわりと正確なカウンタとなり得ると思うが、ファイアウォールの内側にいる同一マシンなどで、ファイアウォールのアドレスがアクセスのたびに変わる場合はこの限りではない。また、ケータイからのアクセスなどの場合も毎回アクセス元の IP アドレスがある一定の範囲内で変わるので連続カウント防止にはならないことに注意。 カウンタの数字をカンマ区切りにしているのは以下の 1行である。
$total = number_format($total);      // カンマ区切りにする
以下は PHP の全ソース。
<?php

// count.php
// (c) 2006 twinkle.cc
// <a />
//" title="https://perltips.twinkle.cc/
//">https://perltips.twinkle.cc/
//</a> updated by yas 2006/01/03
// updated by yas 2003/05/07
// updated by yas 2003/03/05
// オリジナル: <a />
//" title="https://works.xrea.jp/
//">https://works.xrea.jp/
//</a> ※このスクリプトと同じディレクトリに「count.dat」という名前のファイルを作成し、置いておくこと。

if(!$file) { $file='count.dat'; }

// 設定 ここから ────────────────────────────

$HOME = 'count.datがあるディレクトリのパス'; // ディレクトリ
$data = "$HOME/$file";               // カウント記録ファイル
$ip_check = 1;                       // 連続カウント防止(yes=1 no=0)

// 設定 ここまで ────────────────────────────

$count = file($data);                            // ファイルを配列に

// データ内の文字列を分解してそれぞれの変数に代入
list($total, $ip)=explode('<>', $count[0]);

// カウントアップ処理
if(($ip_check == 1 && $ip != $_SERVER['REMOTE_ADDR'])
||   
$ip_check == 0) {
   
$total++;
   
$new_data = implode('<>', array($total, $_SERVER['REMOTE_ADDR']));
   
$fp = fopen($data, 'w');         // 書きモードでオープン
   
flock($fp, LOCK_EX);             // ファイルロック
   
fputs($fp, $new_data);           // 書き込み
   
flock($fp, LOCK_UN);             // ロック解除
   
fclose($fp);                     // ファイルを閉じる
}
$total = number_format($total);      // カンマ区切りにする
print $total;                        // カウンタを表示
?>
このソースを自身の PHP のカウンタを表示したいページを同じディレクトリに置き、同じディレクトリに count.dat という名前のファイルを置く (私のところは「chmod 644 count.dat」で動いているがお使いの環境によってはパーミッションに注意)。 最後に、カウンタを表示したい場所に以下のように書けばよい。
<?php
include('count.php');
?>
PHP で、以下の仕様を満たすカウンタを作成してみる (このサイトで使っています)。
  1. 同一 IP からの連続したアクセスをカウントしない (連続カウント防止)。
  2. カウンタの数字をカンマ (,) で区切って表示する。
連続カウント防止機能は、
if(($ip_check == 1 && $ip != $_SERVER['REMOTE_ADDR']) ...
の部分でチェックしている。$ip には、「直前にアクセスしてきた IP アドレス」が入っている。同じ IP アドレスからアクセスし続ける限りはカウントされない。通常はこれでわりと正確なカウンタとなり得ると思うが、ファイアウォールの内側にいる同一マシンなどで、ファイアウォールのアドレスがアクセスのたびに変わる場合はこの限りではない。また、ケータイからのアクセスなどの場合も毎回アクセス元の IP アドレスがある一定の範囲内で変わるので連続カウント防止にはならないことに注意。 カウンタの数字をカンマ区切りにしているのは以下の 1行である。
$total = number_format($total);      // カンマ区切りにする
以下は PHP の全ソース。
<?php

// count.php
// (c) 2006 twinkle.cc
// <a />
//" title="https://perltips.twinkle.cc/
//">https://perltips.twinkle.cc/
//</a> updated by yas 2006/01/03
// updated by yas 2003/05/07
// updated by yas 2003/03/05
// オリジナル: <a />
//" title="https://works.xrea.jp/
//">https://works.xrea.jp/
//</a> ※このスクリプトと同じディレクトリに「count.dat」という名前のファイルを作成し、置いておくこと。

if(!$file) { $file='count.dat'; }

// 設定 ここから ────────────────────────────

$HOME = 'count.datがあるディレクトリのパス'; // ディレクトリ
$data = "$HOME/$file";               // カウント記録ファイル
$ip_check = 1;                       // 連続カウント防止(yes=1 no=0)

// 設定 ここまで ────────────────────────────

$count = file($data);                            // ファイルを配列に

// データ内の文字列を分解してそれぞれの変数に代入
list($total, $ip)=explode('<>', $count[0]);

// カウントアップ処理
if(($ip_check == 1 && $ip != $_SERVER['REMOTE_ADDR'])
||   
$ip_check == 0) {
   
$total++;
   
$new_data = implode('<>', array($total, $_SERVER['REMOTE_ADDR']));
   
$fp = fopen($data, 'w');         // 書きモードでオープン
   
flock($fp, LOCK_EX);             // ファイルロック
   
fputs($fp, $new_data);           // 書き込み
   
flock($fp, LOCK_UN);             // ロック解除
   
fclose($fp);                     // ファイルを閉じる
}
$total = number_format($total);      // カンマ区切りにする
print $total;                        // カウンタを表示
?>
このソースを自身の PHP のカウンタを表示したいページを同じディレクトリに置き、同じディレクトリに count.dat という名前のファイルを置く (私のところは「chmod 644 count.dat」で動いているがお使いの環境によってはパーミッションに注意)。 最後に、カウンタを表示したい場所に以下のように書けばよい。
<?php
include('count.php');
?>

Perl で書かれた有名なシステム・ソフト

Perl は実際どんなところで使われているのだろう? という疑問から調べてみたら、そう多くはなかった。sourceforge.net での言語ごとのプロジェクト登録数を調べてみても、Java が C++ を抜き 1位であり、Perl は極端に少ない印象を受ける。システムとして動作する Perl でのシステム構築の例は、もっと探せばあるのかも知れないので、知っている人がいたら教えて欲しい。 ネットで調べていて気づいたのは Perl が使われてる大規模システムと思われるものはそのサイトがベンチャーからスタートしていること。ベンチャーなので最初は社長や CEO 自らがコードを書いてる。このパターンがもちろんすべてではないと思うが、「そのサイトで最初に使われていた言語が Perl で、結果的に大規模になった」例が多いのではないだろうか。ウェブサイトを開発するときのプロトタイプには Java よりも Perl の方が作りやすい場合もあるだろう。だから最初は Perl でそのままずっと Perl というのは Web 2.0 的なシステムであろう。自分たちでプロジェクトをコントロールできる場合は、言語は何でもアリなので Perl でもよいということだ。
Perl は実際どんなところで使われているのだろう? という疑問から調べてみたら、そう多くはなかった。sourceforge.net での言語ごとのプロジェクト登録数を調べてみても、Java が C++ を抜き 1位であり、Perl は極端に少ない印象を受ける。システムとして動作する Perl でのシステム構築の例は、もっと探せばあるのかも知れないので、知っている人がいたら教えて欲しい。 ネットで調べていて気づいたのは Perl が使われてる大規模システムと思われるものはそのサイトがベンチャーからスタートしていること。ベンチャーなので最初は社長や CEO 自らがコードを書いてる。このパターンがもちろんすべてではないと思うが、「そのサイトで最初に使われていた言語が Perl で、結果的に大規模になった」例が多いのではないだろうか。ウェブサイトを開発するときのプロトタイプには Java よりも Perl の方が作りやすい場合もあるだろう。だから最初は Perl でそのままずっと Perl というのは Web 2.0 的なシステムであろう。自分たちでプロジェクトをコントロールできる場合は、言語は何でもアリなので Perl でもよいということだ。
Posted on 2006-01-28 by yas |