*開発環境の導入 [#ff212167]
-''セルフコンパイル環境の導入''~
landisk:/# apt-get install dpkg-dev
landisk:/# apt-get install binutils gcc g++ make libncurses5-dev
-''コンパイルしてみる''~
landisk:/# mkdir -p /home/src/hello
landisk:/# cd /home/src/hello
landisk:/home/src/hello# echo 'main(){printf("Hello World\n");}' > hello.c
landisk:/home/src/hello# gcc hello.c -o hello
landisk:/home/src/hello# ./hello
Hello World
と表示されればOK。
*Emacs21とAnthyによるプチ日本語化 [#eb58d161]
Emacs上で日本語が読み書きできる最小限の環境を構築します。~
-''インストール''~
Emacs21とかな漢字変換エンジンanthyをインストールします。~
#pre{{
landisk:/# apt-get install emacs21 anthy anthy-el
}}
-''/root/.emacs''~
.emacsファイルを下記内容でホームディレクトリに作成します。~
#pre{{
(set-language-environment "Japanese")
(load-library "anthy")
(setq default-input-method "japanese-anthy")
(setq default-frame-alist '( (font . "7x14" ) ))
(global-font-lock-mode t)
}}
-''動作確認''~
一旦emacsを終了して、再起動します。~
"C-\"(コントロールキーを押しながら\)をタイプするとAnthyが起動します。~
そして、コマンドライン行に<Anthy :あ>と表示されればOKです。~
~
&ref(主要ソフトウェアの導入(改)/anthy.png,nolink);
~
~
*Apache、MySQL、PHPによるWEBプラットホーム構築 [#jf7aa7a2]
-''はじめに''~
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と呼ぶそうです。~
-''導入準備''~
--共有名『www』の作成~
&color(red){注意:/mnt/hda3/debian_start実行時に、LANDISKオリジナルのApacheを停止させています。};
&color(red){従って、LANDISKを再起動させた後に行ってください。};~
~
外部公開用のホームページエリアを『www』下に作ることにします。~
LANDISKの管理者用メニューから、「高度な設定」→「共有設定」→「追加」を選んで、~
共有名『www』を作成します。~
本『www』を外部からhttp://MY_LANDISK/www/でアクセスするものとして、説明していきます。~
~
ちなみに『www』は、debian環境からは/share/www/からアクセスでき、~
LANDISK環境からは、/mnt/hda3/share/www/からアクセスできます。~
~
--LANDISKに付属するApacheの停止~
&color(red){/mnt/hda3/debian_startスクリプトを用いてdebian環境を起動させた場合は、};~
&color(red){既に停止しているため不要ですが、念のために書いておきます。};~
~
ApacheはLANDISKに付属しますが、ここではdebianに含まれる物を使用するため、~
オリジナルのApacheは停止させておきます。~
LANDISK環境で次のコマンドを実行します。~
# /etc/rc.d/init.d/S95httpd stop
~
-''インストール''~
apt-getで一気に入れてしまいます。~
各種の詳細設定はその後、行います。~
#pre{{
landisk:/# apt-get install apache
landisk:/# apt-get install mysql-server
landisk:/# apt-get install php4 php4-mysql php4-cgi
landisk:/# apt-get install turck-mmcache
}}
補足:Perl用DBI/DBDインタフェースも同時にインストールされます。~
~
-''/etc/apache/httpd.conf (Apache設定ファイル)の編集''~
LANDISKのパワーを考え、控えめな値を設定します。~
お好みに応じて変更してください。~
#pre{{
&color(orange){142行目付近};
MinSpareServers &color(red){2}; &color(orange){←気持ち少なめに};
MaxSpareServers &color(red){4}; &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 [#e97570cc]
-''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