Apache/MySQL/PHP/MMCache †
- はじめに
LANDISK上にWEBアプリケーション・プラットホームを構築して、インターネット上にホームページ等を公開することを目指します。
本節でインストールするソフトウェアを簡単に説明しておきます。
ちなみに、Linux,Apache,MySQL,PHP or Perlで構築されたプラットホームを、その頭文字をとってLAMPと呼ぶそうです。
- 導入準備
debian26上に/share/wwwディレクトリ作成して、
外部からhttp://MY_LANDISK/www/ でアクセスできる環境を構築します。
/share/wwwディレクトリを作成します。
landisk:~# cd /share/
landisk:/share# mkdir www
landisk:/share# chmod a+rwx www
landisk:/share# chown nobody:nogroup www
- インストール
apt-getで一気に入れてしまいます。
各種の詳細設定はその後、行います。
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のパワーを考え、控えめな値を設定します。
お好みに応じて変更してください。
142行目付近
MinSpareServers 2 ←気持ち少なめに
MaxSpareServers 3 ← 同上
StartServers 2 ← 同上
807行目付近、コメントを削除
AddHandler cgi-script .cgi .sh .pl
838行目付近
AddDefaultCharset Off
- /etc/apache/conf.d/www.conf
/share/www を http://MY_LANDISK/www/ でアクセスするように設定します。
Alias /www/ "/share/www/"
<Directory "/share/www">
Options MultiViews FollowSymLinks ExecCGI ←CGIが使えるように(邪道?)
AllowOverride All
Order allow,deny
Allow from all
</Directory>
- /etc/mysql/my.cnf (MySQL設定ファイル)の編集
MySQLもapacheと同様、控えめな値を設定します。
さらに、メモリを大量に使用するトランザクション機能とキャッシュ機能を無効にしました。
(64MBしかないLANDISKの場合swapが頻発するため、逆に遅くなるような気がしたので。)
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 = 16K
max_allowed_packet = 1M
thread_stack = 64K
#
# Query Cache Configuration
#
# query_cache_limit = 1048576
# query_cache_size = 16777216
# query_cache_type = 1
#
# disable InnoDB
skip-innodb
99行目付近
[isamchk]
key_buffer = 8M
- 再起動
apacheを再起動する前に、httpd.confのチェックします。
landisk:/# apachectl configtest
Syntax OK
OKなら再起動します。
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をアクセスすると、次のようなphpの情報が画面に出力されます。
さらにphpinfoにMMCacheの項目が現れていることを確認します。
- MySQLのrootパスワード設定
MySQLのrootパスワードを設定しておきましょう。
(注意:MySQLのrootパスワードであり、debianのrootパスワードではありません。)
landisk:~# mysqladmin -u root password 'MySQLのrootパスワード'
設定したパスワードでアクセスできるか確認しておきましょう。
landisk:~# mysql -u root -p
Enter Paaword: 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> exit
Bye
landisk:~#
- 付録: MySQLデータベースの作成方法
ユーザ名 user 、パスワード passwd というアカウントで、データベース testdb を作成する例を示します。
landisk:~# mysql -u root -p
Enter password: ← 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> create database testdb;
Query OK, 1 row affected (0.09 sec)
mysql> grant all on testdb.* to user@localhost identified by "passwd";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
landisk:~#
できたか確認してみます。
landisk:~# mysqlshow -uuser -ppasswd testdb
Database: testdb
+--------+
| Tables |
+--------+
+--------+
landisk:~#
Webalizer †
- 設定
設定ファイル/etc/webalizer.confを修正します。
LogFile /var/log/apache/access.log
HostName landisk
DNSCache dns_cache.db
DNSChildren 10
自分自身のアクセスを表示しないようにするには、HideURL、HedeHideReferrerオプションを追加します。
下記は管理人の設定例です。
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
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を再起動します。
landisk:~# /etc/init.d/apache restart
- ログ解析と表示
以下のコマンドを実行すると、/var/www/webalizer に解析結果が格納されます。
landisk:~# webalizer
http://YOUR_LANDISK/webalizer/index.html より解析結果を見ることができます。
- cronの設定
Apacheのlogrotateが行われる前にwebalaizerが実行されるよう設定します。
cronは毎日設定時刻になると/etc/cron.dailyに格納されたプログラムを、
ファイル名でソートして順番に実行してゆきます。
従って、logrotateより前にwebalizerが実行されるように、
landisk:~# cd /etc/cron.daily
landisk:/etc/cron.daily# mv webalizer 00webalizer
とりネームしておきます。
Counter: 12190,
today: 2,
yesterday: 0
|