*Apache/MySQL/PHP/MMCache [#g6538008]
-''はじめに''~
LANDISK上にWEBアプリケーション・プラットホームを構築して、インターネット上にホームページ等を公開することを目指します。~
本節でインストールするソフトウェアを簡単に説明しておきます。~
--Apache ( http://www.apache.org/ )~
言わずと知れた著名なWEBサーバです。~
~
--MySQL ( http://www.mysql.com/ )~
高速なデータベースサーバです。ライセンスの形態が特殊なので商用で使用するときは注意が必要です。~
~
--PHP ( http://www.php.net/ )~
サーバサイドで動作するスクリプト言語です。Apacheと連携して動作します。~
~
--MMCache ( http://turck-mmcache.sourceforge.net/index_old.html )~
PHPを高速化するキャッシュモジュールです。1〜2割高速化されるようです。~
~
-
ちなみに、Linux,Apache,MySQL,PHP or Perlで構築されたプラットホームを、その頭文字をとってLAMPと呼ぶそうです。~
~


-''導入準備''~
debian26上に/share/wwwディレクトリ作成して、~
外部からhttp://MY_LANDISK/www/ でアクセスできる環境を構築します。~
/share/wwwディレクトリを作成します。~
#pre{{
landisk:~# cd /share/   
landisk:/share# mkdir www
landisk:/share# chmod a+rwx www
landisk:/share# chown nobody:nogroup www
}}
~
-''インストール''~
apt-getで一気に入れてしまいます。~
各種の詳細設定はその後、行います。~
#pre{{
landisk:/# apt-get install apache php4 php4-cgi turck-mmcache
landisk:/# apt-get install mysql-server php4-mysql 
}}
補足:Perl用DBI/DBDインタフェースも同時にインストールされます。~
~
-''/etc/apache/httpd.conf (Apache設定ファイル)の編集''~
LANDISKのパワーを考え、控えめな値を設定します。~
お好みに応じて変更してください。~
#pre{{
&color(orange){142行目付近};
MinSpareServers &color(red){2};    &color(orange){←気持ち少なめに};
MaxSpareServers &color(red){3};    &color(orange){← 同上};
StartServers &color(red){2};       &color(orange){← 同上};

&color(orange){807行目付近、コメントを削除};
    &color(red){AddHandler cgi-script .cgi .sh .pl}; 

&color(orange){838行目付近};
AddDefaultCharset &color(red){Off};
}}

-''/etc/apache/conf.d/www.conf''~
/share/www を http://MY_LANDISK/www/ でアクセスするように設定します。~
#pre{{
&color(red){Alias /www/ "/share/www/"};
&color(red){<Directory "/share/www">};
&color(red){    Options MultiViews FollowSymLinks ExecCGI};     &color(orange){←CGIが使えるように(邪道?)};
&color(red){    AllowOverride All};
&color(red){    Order allow,deny};
&color(red){    Allow from all};
&color(red){</Directory>};
}}
-''/etc/mysql/my.cnf (MySQL設定ファイル)の編集''~
MySQLもapacheと同様、控えめな値を設定します。~
さらに、メモリを大量に使用するトランザクション機能とキャッシュ機能を無効にしました。~
(64MBしかないLANDISKの場合swapが頻発するため、逆に遅くなるような気がしたので。)
#pre{{
&color(orange){48行目付近};
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address          = 127.0.0.1
key_buffer            = &color(red){16K};
max_allowed_packet    = &color(red){1M};
thread_stack          = &color(red){64K};
#
# Query Cache Configuration
#
&color(red){#}; query_cache_limit   = 1048576
&color(red){#}; query_cache_size    = 16777216
&color(red){#}; query_cache_type    = 1
&color(red){#};
&color(red){# disable InnoDB};
&color(red){skip-innodb};

&color(orange){99行目付近};
[isamchk]
key_buffer            = &color(red){8M};
}}

-''/etc/php4/apache/php.ini (php設定ファイル)の編集''~
turck-mmcacheの値を小さめに設定しました。~
#pre{{
&color(orange){1076行目付近};
mmcache.shm_size="&color(red){4};"                           	; turck-mmcache
}}

-''/etc/php4/cgi/php.ini (php設定ファイル)の編集''~
turck-mmcacheの値を小さめに設定しました。~
#pre{{
&color(orange){1076行目付近};
mmcache.shm_size="&color(red){4};"                           	; turck-mmcache
}}

-''再起動''~
apacheを再起動する前に、httpd.confのチェックします。
#pre{{
landisk:/# apachectl configtest
Syntax OK
}}
OKなら再起動します。
#pre{{
landisk:/# /etc/init.d/apache restart
Restarting apache.

landisk:/# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
}}

-''動作確認''~
--Apache、PHP、MMCacheの動作確認~
/share/www/phpinfo.php を以下の内容で作成して、~
 <? phpinfo(); ?>
ブラウザで[[phpinfo.php:http://eggplant.ddo.jp/www/phpinfo.php]]をアクセスすると、次のようなphpの情報が画面に出力されます。~
~
&ref(主要ソフトウェアの導入(改)/phpinfo1.jpg,nolink);
~
~
さらにphpinfoにMMCacheの項目が現れていることを確認します。~
~
&ref(主要ソフトウェアの導入(改)/phpinfo2.jpg,nolink);

~
--MySQLの動作確認~
mysqlshowコマンドを実行して、次のようなデータベースが表示されればOKです。
#pre{{
landisk:~# mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+
}}


-''MySQLのrootパスワード設定''~
MySQLのrootパスワードを設定しておきましょう。~
&color(red){(注意:MySQLのrootパスワードであり、debianのrootパスワードではありません。) };
#pre{{
landisk:~# &color(blue){mysqladmin -u root password '};&color(red){MySQLのrootパスワード};&color(blue){'};

設定したパスワードでアクセスできるか確認しておきましょう。
landisk:~# &color(blue){mysql -u root -p};
Enter Paaword: &color(red){MySQLのrootパスワード};
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40 to server version: 3.23.49-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> &color(blue){exit};
Bye
landisk:~# 
}}
 
~
-&color(red){''付録: MySQLデータベースの作成方法''};~
ユーザ名 &color(red){''user''}; 、パスワード &color(red){''passwd''}; というアカウントで、データベース &color(red){''testdb''}; を作成する例を示します。
#pre{{
landisk:~# &color(blue){mysql -u root -p};
Enter password:         &color(red){← MySQLのrootパスワード};
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 173 to server version: 3.23.58

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> &color(blue){create database}; &color(red){''testdb''};&color(blue){;};
Query OK, 1 row affected (0.09 sec)

mysql> &color(blue){grant all on}; &color(red){''testdb''};&color(blue){.* to };&color(red){''user''};&color(blue){@localhost identified by "};&color(red){''passwd''};&color(blue){";};
Query OK, 0 rows affected (0.00 sec)

mysql> &color(blue){flush privileges;};
Query OK, 0 rows affected (0.01 sec)

mysql> &color(blue){exit};
Bye
landisk:~# 

できたか確認してみます。
landisk:~# &color(blue){mysqlshow -u};&color(red){''user''}; &color(blue){-p};&color(red){''passwd''}; &color(red){''testdb''};
Database: testdb
+--------+
| Tables |
+--------+
+--------+
landisk:~# 
}}
~
*Webalizer [#r7bb898c]
-''Webalizerとは?''~
WEBサーバApacheのログ解析をして、アクセス履歴を視覚的に表示してくれるツールです。~
次のような情報をグラフィカルに表示してくれます。~
--月毎の統計
--日毎の統計
--時間毎の統計
--ページのアクセスランキング
--訪問先のサイトランキング
--参照先URLのランキング
--WEBブラウザのランキング
--訪問国のランキング
-
より詳しくは本家のサイトをご覧ください。
--トップページ: http://www.webalizer.org/
--レポートのサンプル http://www.webalizer.org/sample/index.html
~
~
-''インストール''~
#pre{{
landisk:~# apt-get install webalizer
}}

-''設定''~
設定ファイル/etc/webalizer.confを修正します。
#pre{{
LogFile	/var/log/apache/access.log
HostName	landisk
DNSCache dns_cache.db
DNSChildren 10
}}
自分自身のアクセスを表示しないようにするには、HideURL、HedeHideReferrerオプションを追加します。~
下記は管理人の設定例です。~
#pre{{
IgnoreSite      eggplant.ddo.jp
IgnoreSite      localhost
IgnoreSite      192.168.0
IgnoreSite      192.168.1

HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.png
HideURL         *.PNG
HideURL         *.ra
HideURL         *.mp3
HideURL         *.jpeg
HideURL         *.css

}}
-''解析結果のアクセス許可設定''~
初期状態では、外から丸見え状態になっています。~
セキュリティ上好ましくないため、次のファイルを作成し、~
ローカルネットワークからのみアクセスできるよう設定します。~
--/etc/apache/conf.d/webalizer.conf~
#pre{{
Alias /webalizer /var/www/webalizer

<Location /webalizer>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
  Allow from 192.168.0.0/24
  Allow from 192.168.1.0/24
</Location>
}}
--apacheを再起動します。
#pre{{
landisk:~# /etc/init.d/apache restart
}}

-''ログ解析と表示''~
以下のコマンドを実行すると、/var/www/webalizer に解析結果が格納されます。~
#pre{{
landisk:~# webalizer
}}
http://YOUR_LANDISK/webalizer/index.html より解析結果を見ることができます。~
~
-''cronの設定''~
Apacheのlogrotateが行われる前にwebalaizerが実行されるよう設定します。~
cronは毎日設定時刻になると/etc/cron.dailyに格納されたプログラムを、~
ファイル名でソートして順番に実行してゆきます。~
従って、logrotateより前にwebalizerが実行されるように、~
#pre{{
landisk:~# cd /etc/cron.daily
landisk:/etc/cron.daily# mv webalizer 00webalizer
}}
とりネームしておきます。~
~
~
#counter

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS