メイン

2006年12月31日

WARNING: Local version: 0.88.6 Recommended version: 0.88.7のエラー

Clamavの。。。。

 

#freshclam

 

を実行すると。。。

 

# freshclam
ClamAV update process started at Sun Dec 31 01:20:02 2006
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.88.6 Recommended version: 0.88.7
DON'T PANIC! Read http://www.clamav.net/faq.html
main.cvd is up to date (version: 41, sigs: 73809, f-level: 10, builder: tkojm)
daily.cvd is up to date (version: 2396, sigs: 11783, f-level: 9, builder: sven)

 

ってな感じでバージョンが古いって怒られます。

 

apt-getしてもダメ。。。。

 

 

いろいろ調べていくうちにソースからインスコするとかいろいろ書いてあったけど

後々の事をいろいろ考えたらやっぱパッケージでやっておきたかった。。。

 

 

#cd

# apt-get source clamav
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
8938kB のソースアーカイブを取得します。
取得:1 http://updates.vinelinux.org 3.2/i386/extras clamav 0.88.6-0vl0.1 (srpm) [8938kB]
8938kB を 3s 秒で取得しました (2313kB/s)
   1:clamav                 ########################################### [100%]

#cd rpm/SOURCES

# wget http://nchc.dl.sourceforge.net/sourceforge/clamav/clamav-0.88.7.tar.gz
--01:29:57--  http://nchc.dl.sourceforge.net/sourceforge/clamav/clamav-0.88.7.tar.gz
           => `clamav-0.88.7.tar.gz'
nchc.dl.sourceforge.net をDNSに問いあわせています... 211.79.61.10
nchc.dl.sourceforge.net[211.79.61.10]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 9,510,548 [application/x-gzip]

100%[=================================================================================>] 9,510,548    511.64K/s    ETA 00:00

01:30:12 (630.93 KB/s) - `clamav-0.88.7.tar.gz' を保存しました [9510548/9510548]

 

#vi /root/rpm/SPECS/clamav.spec

Version: 0.88.7 ←ここと 
Release: 0vl0 ←ここをこの様に書き換える

 

 

すると。。。。

 

 

#cd /root/rpm/SPEC

# rpm -ba clamav.spec
エラー: ビルド依存性の欠如:
        curl-devel > 7.10.0 は clamav-0.88.7-0vl0 に必要とされています

 

 

curl-devel が無いようだったのでエラーを吐いた。

 

# apt-get install curl-devel
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  curl-devel
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
178kB のアーカイブを取得する必要があります。
展開後に 351kB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org 3.2/i386/updates curl-devel 7.11.1-0vl2 [178kB]
178kB を 0s 秒で取得しました (763kB/s)
変更を適用しています...
準備中...                   ########################################### [100%]
   1:curl-devel             ########################################### [100%]
完了

 

 

 

再び

 

# rpm -ba clamav.spec

*********************** 省  略 ***********************

書き込み完了: /root/rpm/SRPMS/clamav-0.88.7-0vl0.src.rpm
書き込み完了: /root/rpm/RPMS/i386/clamav-0.88.7-0vl0.i386.rpm
書き込み完了: /root/rpm/RPMS/i386/clamav-devel-0.88.7-0vl0.i386.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.57893
+ umask 022
+ cd /root/rpm/BUILD
+ cd clamav-0.88.7
+ rm -rf /var/tmp/clamav-0.88.7-root
+ exit 0

 

パッケージが出来ているか確認

 

 

# ls /root/rpm/RPMS/i386/

 

clamav-0.88.7-0vl0.i386.rpm と clamav-devel-0.88.7-0vl0.i386.rpmが確認できた。

 

# rpm -Uvh /root/rpm/RPMS/i386/clamav-0.88.7-0vl0.i386.rpm
準備中...                   ########################################### [100%]
   1:clamav                 警告: /etc/clamd.conf は /etc/clamd.conf.rpmnew として作成されます
警告: /usr/share/clamav/daily.cvd は /usr/share/clamav/daily.cvd.rpmnew として作成されます
########################################### [100%]

 

# rpm -Uvh /root/rpm/RPMS/i386/clamav-devel-0.88.7-0vl0.i386.rpm
準備中...                   ########################################### [100%]
   1:clamav-devel           ########################################### [100%]

 

ウィルス定義ファイルを更新してみる

 

# freshclam
ClamAV update process started at Sun Dec 31 05:31:54 2006
main.cvd is up to date (version: 41, sigs: 73809, f-level: 10, builder: tkojm)
daily.cvd is up to date (version: 2396, sigs: 11783, f-level: 9, builder: sven)

 

エラーを吐いていない。

 

成功(^^)v

 

 

 

2006年12月28日

child pid ******* exit signal Segmentation faultのエラー回避(php.ini)

またしても。。。

 

 

child pid ******* exit signal Segmentation fault

 

 

のエラーでapacheがこける。。。

 

でも、phpを使ったウェブサイトでもサイト自体が開くものと開かないものがある。

 

 

ひょっとしてメモリーのリソースでは?

 

php-4.4.4では247行目付近の

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)

の設定箇所を見てみる。

 

max_execution_time = 120    ;デフォルトの値ではZenCartなどでphpスクリプトタイムアウトになる時もある。
max_input_time = 60          ;普通なのかな?
memory_limit = 64M               ;デフォルトの8Mでは少なすぎる気が。。。64Mとか128Mに。サーバのメモリと相談。

 

 

こんな感じにしてうまく動作中である。

 

 

そういえば。。。

php4.4.4を再インストールして設定ファイルを見直してみたら。。。

allow_url_fopenの値がデフォルトで”On”になっているんですね・・・

 

 

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = Off

 

allow_url_fopen = Onの設定だと、外部の任意のスクリプトを実行される危険性がありますので

”Off”にしておいた方が良いですよね。

2006年12月24日

Apache1.3系からApache2.x系へ移行する

mod_gzipで。。。

SSLのWebサイトへアクセスすると

[error] mod_gzip: EMPTY FILE [/tmp/mod_gzip/_14197_391_292.wrk] in sendfile2

[error] mod_gzip: Make sure all named directories exist and have the correct permissions.

[error] mod_gzip: EMPTY FILE [/tmp/mod_gzip/_14189_481_382.wrk] in sendfile2

[error] mod_gzip: Make sure all named directories exist and have the correct

permissions.


の様なエラーが出たりとかしたり

mod_gzip自体で

[error] mod_gzip: TRANSMIT_ERROR:104

[error] mod_gzip: TRANSMIT_ERROR:ISMEM:104

[error] mod_gzip: TRANSMIT_ERROR:32


の様なエラーが頻発している。。。

SSL通信時にmod_gzipが機能しない にいろいろ書いてありました。

この機会にと思い、思い切ってApache2.x系に移行することを決意した。

#mod_gzipってApacheの1系のモジュールなんでしょ?
#何でこんなエラーが?(^^;

一応、/etc/httpd/conf/htpd.conf のバックアップを取っておく。

#cp etc/httpd/conf/htpd.conf /etc/httpd/conf/htpd.conf .20061224

apache1.3をアンインストール

# apt-get remove apache パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下の追加パッケージがインストールされます: apache2 apache2-apr openldap 以下のパッケージが削除されます: apache mod_ssl php-apache 以下のパッケージが新たにインストールされます: apache2 apache2-apr openldap アップグレード: 0 個, 新規インストール: 3 個, 削除: 3 個, 保留: 1 個 2138kB のアーカイブを取得する必要があります。 展開後に 738kB が解放されます。 続行しますか? [Y/n]y

取得:1 http://updates.vinelinux.org 3.2/i386/plus apache2-apr 2.0.55-0vl1.2 [99.2kB]
取得:2 http://updates.vinelinux.org 3.2/i386/plus openldap 2.1.30-0vl1 [581kB]
取得:3 http://updates.vinelinux.org 3.2/i386/plus apache2 2.0.55-0vl1.2 [1458kB]
2138kB を 1s 秒で取得しました (1212kB/s)
変更を適用しています...
準備中... ########################################### [100%]
warning: /etc/httpd/conf.d/php.conf saved as /etc/httpd/conf.d/php.conf.rpmsave
warning: /etc/logrotate.d/apache saved as /etc/logrotate.d/apache.rpmsave
warning: /etc/httpd/conf/srm.conf saved as /etc/httpd/conf/srm.conf.rpmsave
warning: /etc/httpd/conf/httpd.conf saved as /etc/httpd/conf/httpd.conf.rpmsave
1:apache2-apr ########################################### [ 33%]
2:openldap ########################################### [ 66%]
3:apache2 ########################################### [100%]
完了


以前の1.3系の設定ファイルが.rpmsaveの拡張子でそれぞれ保存されたようだ。


# vi /etc/apache2/conf/httpd.conf ← Apache2の設定ファイル編集


ServerTokens Prod ← エラーページでOS名を非表示にする

ServerAdmin webmaster@hogehoge.com ← 管理者のメールアドレス

ServerName hogehoge.com:80 ← #を削除して自分のドメイン名を指定(※ドメインの後に「:80」 を付す)


DocumentRoot "/home/httpd/html" ← ドキュメントルートをVine標準の場所に設定

<Directory "/home/httpd/html"> ← ディレクトリをVine標準の場所に設定


Options Includes ExecCGI FollowSymLinks ← Indexesを削除してSSIとCGIを有効に

AllowOverride  ← .htaccessの有効化

DirectoryIndex index.html index.htm index.shtml index.php index.cgi ← インデックスファイルを設定


WebDAVの脆弱性を狙った攻撃への対策
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 ↓
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

※ 追記 (wormからのアクセスをログに記録しない対策)
SetEnvIf Request_URI "cmd\.exe" nolog
SetEnvIf Request_URI "root\.exe" nolog
SetEnvIf Request_URI "Admin\.dll" nolog
SetEnvIf Request_URI "NULL\.IDA" nolog
SetEnvIf Request_URI "^/_mem_bin/" nolog
SetEnvIf Request_URI "^/_vti_bin/" nolog
SetEnvIf Request_URI "^/c/" nolog
SetEnvIf Request_URI "^/d/" nolog
SetEnvIf Request_URI "^/msadc/" nolog
SetEnvIf Request_URI "^/MSADC/" nolog
SetEnvIf Request_URI "^/scripts/" nolog
SetEnvIf Request_URI "^/default.ida" nolog

※ 追記 (gif,jpg,png,ico,cssへのアクセスをログに記録しない対策)
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" nolog

※ 追記 (内部からのアクセスをログに記録しない対策)
SetEnvIf Remote_Addr 192.168.11. nolog

CustomLog logs/access_log combined env=!nolog ← env=!nologを追記

ServerSignature off ← off指定でエラーページでApacheのバージョン非表示

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ← # を追記(コメントアウト)

#AddDefaultCharset ISO-8859-1 ← #を追記(コメントアウト)

AddHandler cgi-script .cgi .pl ← #を削除して .plを追加


# service apache2 restart ← 設定終了後に再起動で設定反映
httpdを停止中: [ OK ]
httpdを起動中: [ OK ]

などと設定しapacheを再起動させ反映させる。


続いてバーチャルホストの設定。


# vi /etc/apache2/conf/httpd.conf ← 設定ファイル編集

#UserDir disable ← # を追記(コメントアウト)

UserDir public_html ← # を削除(コメント)

下記部分の先頭の# を削除

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ← Indexesを削除
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

ユーザーのCGI専用ディレクトリの設定

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ← # を追記(コメントアウト)

下記の部分の先頭に# を追記(コメントアウト)
#<Directory "/var/www/cgi-bin">
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
#</Directory>
※下記を追記
<Directory /home/*/public_html/cgi-bin>
AllowOverride FileInfo AuthConfig Limit
Options ExecCGI ← CGIを有効
Order allow,deny
Allow from all
</Directory>

# service apache2 restart


ここまでは良い感じ♪

<VirtualHost>ディレクティブにユーザーを設定しそのログの設定を試みる。。。

<VirtualHost IPアドレス:80>

ServerAdmin e-mail@hogehoge.com

DocumentRoot /home/ユーザ名/public_html

ServerName ユーザ名.net

ErrorLog logs/ユーザ名/error_log

CustomLog logs/ユーザ名/access_log combined env=!nolog

<Directory /home/ユーザ名/public_html/cgi-bin>

AllowOverride FileInfo AuthConfig Limit

Options ExecCGI

Order allow,deny

Allow from all

</Directory>

</VirtualHost>


#service apache2 restart

エラー。。。。。(´・ω・`)ショボーン


やっぱしかっ!!!

ここからスゲーはまった。。。orz

ここにも。。。。

ErrorLog logs/ユーザ名/error_log

CustomLog logs/ユーザ名/access_log combined env=!nolog


なんて書いてあるから絶対間違いないって疑いもしなかった。。。(ノД`)シクシク

ログファイルを直接指定したらどうなるかなって。。。

ErrorLog /var/log/apache2/ユーザ名/error_log

CustomLog /var/log/apache2/ユーザ名/access_log combined env=!nolog

案の定ビンゴw

。。。でも何でダメだったんだろ?(゜∀゜)

あとはログローテなどの設定をすればOK♪

apache1.3系のログを。。。

# mv /var/log/httpd/* /var/log/apache2

# rm -f /etc/logrotate.d/apache.rpmsave


などとしておいて乗せ替えておくと良いよね♪

2006年12月19日

スタイルシート(stylesheet.css)の基本の単位

最近覚え書きが多くてごめんなさい(^^;

 

今回はスタイルシートの単位の覚え書きです♪

よく使うので書き記しておきますm(__)m

 


 

スタイルシートで使用する長さの単位には、次のような種類があります。

絶対的な単位
mm ミリメートル 10mm = 1cm
cm センチメートル 1cm = 10mm
in インチ 1in = 2.54cm
pt ポイント 72pt = 1in
pc パイカ 1pc = 12pt
相対的な単位
em エム 1em = 1文字分の長さ
ex エックスハイト 1ex = 「x」文字の長さ
px ピクセル 1px = 画面上の1ピクセル
割合
% パーセント 割合

※0以外の数値を指定する場合は、単位を必ず付けなければなりません。(0を指定する場合は省くことも可能です)
※数値には小数点以下を指定することもできます。
※負の値を指定することができますが、プロパティによっては指定できない場合もあります。

その時点の1文字分の高さが 1em となります。(「M」文字が基準となります)

例えば、その時点の文字サイズが14ptの場合、1em2em0.5emの長さは次のようになります。

1em = 14pt
2em = 28pt
0.5em = 7pt

その時点の「x」文字の高さが 1ex となります。

上下にはみ出していない小文字の高さ、ということになります。

※上下にはみ出している小文字は、例えば h や y など。

2006年12月18日

MD5ハッシュ/パスワード暗号化

Pukiwikiなどのパスワードの設定で。。。

例えばPukiWikiの設定ファイルであるpukiwiki.ini.phpの$adminpassの値をMD5ハッシュ値にしたい場合

 

echo -n 'password' | md5sum    (passwordはお好きなパスワード文字列に・・・)

 

とやってみるw

すると。。。

 

5f4dcc3b5aa765d61d8327deb882cf99  -


こんな文字列が出力される。

 

pukiwiki.ini.phpの設定ファイル中にある$adminpassの値を下記のように変更する。

 

 

$adminpass = '{x-php-md5}5f4dcc3b5aa765d61d8327deb882cf99'; // md5('pass')

 

 

MD5はよく利用するのでちょっとした覚え書きでした(^^)

2006年12月17日

eAcceleratorのキャッシュを削除したらページが開かなくなりました

今日、こんなお題目でXOOPSの日本の本家で質問させて頂きました。

 

この該当フォーラムはこちらですw

 

結局のところ、PHPを再インストールしたら治ったんだけど、どうしてこけたのかそこまでのプロセスがわかんない?!

 

なんでeAcceleratorのコントロールパネルの「clean」 ボタンを押しただけでこんな事になっちゃうの?

 

いや。。。

実はですね。。。今度サーバのメモリーを倍に増やすことになったんです♪

その前にいろいろと整理しようかと思って。。。

 

っでこのボタンを押したわけであります(^^;

 

原因がわからないまま復旧はしましたw

Apacheもエラーログを一切吐いていないし。。。(*^。^*)?

 

 

そうそう!

eAcceleratorの設定ファイルにコントロールパネルを指定する箇所が本当はあるんですw

ApacheのログにeAcceleratorのcontrol.phpのスクリプトが実行できないなどのエラーが出ていませんか?

本家サイトのドキュメントにはちゃんと記されているのですがeAcceleratorを解説している日本のサイトでは

この設定箇所に付いて一切触れていないサイト様が多かったので、自分の覚え書きとしてここに残しておきます。

 

PHPの設定ファイルである/etc/php.iniは下記のような感じで設定します。

 

 

[eAccelerator]
zend_extension = "/usr/lib/php4/eaccelerator.so"
eaccelerator.shm_size = "32"
eaccelerator.cache_dir = "/tmp/php"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.log_file = ""
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"
eaccelerator.allowed_admin_path = "/home/userdirectory/public_html/control.php"

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.0.1
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.0.1
zend_optimizer.version=3.0.1
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

 

 

  1. eaccelerator.shm_size = "32" ←お好きなサイズで指定して下さい。 "0"と指定するとデフォルトの値になるようです。
  2. eaccelerator.allowed_admin_path = "/home/userdirectory/public_html/control.php" ←control.phpの場所を指定。
  3. [Zend]ディレクティブはZend Optimizerの設定箇所です。

 

 

ちなみに、今回Apacheがこけていたエラーは。。。

 

Segmentation Fault in 32697, waiting for debugger
[3958] EACCELERATOR: PHP crashed on opline 58 of loadinfo() at /home/httpd/html/kernel/module.php:198

 

とか。。。

 

[Sun Dec 17 15:40:01 2006] [notice] child pid 7907 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:04 2006] [notice] child pid 7923 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:06 2006] [notice] child pid 7924 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:09 2006] [notice] child pid 7925 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:13 2006] [notice] child pid 7929 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:14 2006] [notice] child pid 7920 exit signal Segmentation fault (11)
[Sun Dec 17 15:40:53 2006] [notice] child pid 7954 exit signal Segmentation fault (11)

こんな感じのエラーがずらーっと並んでいました(^^;

 

 

今回のことでまたいろいろ成長しました(^^)

 

 

ホント!日々勉強ですね(^^)

2006年11月19日

ログローテでエラー

apacheのログローテ設定ファイルである/etc/logrotate.d/apacheに、 ユーザー毎にログを取るような設定をしてから

エラーを吐いていたので設定の見直しw

 

ログを/usr/sbin/logrotate -f /etc/logrotate.d/apacheとフォースすると

何やらこんな感じのエラーが・・・

 

error running postrotate script
/tmp/logrotate.hY0RYK: line 5: missingok: command not found
/tmp/logrotate.hY0RYK: line 6: sharedscripts: command not found
/tmp/logrotate.hY0RYK: line 7: daily: command not found

 

どうやらdaily、rotate、missingok、postrotateなどの記述には順番が必要みたい(^^;

 

/var/log/httpd/*/error_log {
        daily
        rotate 10
        missingok
        postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
        endscript

}

daily       = 毎日

rotate     = 10世代のローテーション

missingok = ログファイルが存在しなくてもエラーを出さない。

postrotate = postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。

 

この順番が大切w

2006年09月24日

大きめのファイルをアップロードできるようにphp.iniの設定の見直し

/etc/php.iniのデフォルトでは

一回にアップロード出来るファイルの容量が2MBに制限されているので
これを10MBにしてみる。

#vi /etc/php.ini

php.iniの設定をちょっと変えるだけ・・・

php.iniの506行目



; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

↑デフォルトではこうなっている



; Maximum allowed size for uploaded files.
upload_max_filesize = 10M

10MB(お好きな容量で)に変更。

#service httpd restart


Apacheの再起動で設定反映。

PHP 4.4.2 extension = msql.so が 無い

PHP Warning:  Unknown(): Unable to load dynamic library '/usr/lib/php4/msql.so' - /usr/lib/php4/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0

↑このエラーでずぅーーーーーっと凹んでいた(´ヘ`;)ハァ

msql.so
msql.so が無い
/usr/lib/php4/msql.so
/usr/lib/php4/msql.so が無い 無い
----------------------------
↑こんな感じでかなりググった(´ヘ`;)ハァ
※検索エンジンで「msql.so」のキーワードで
引っかかりやすいようにココに記述しておきました。
同じ悩みを抱えている方も多いことでしょうから…

…でもどこにもない(´ヘ`;)ハァ

XOOPSを主体で運営しているため
PHPのエラーやMySQLのエラーは非常に敏感だった。

今度新規にSquirrelmailを導入しようと思っていたが
「このページにアクセスするにはアカウントが必要です。」
のエラーが出て何ともならない…

ログには


imapd: LOGIN, user=hoge, ip=[::ffff:127.0.0.1], protocol=IMAP
imapd: LOGOUT, user=hoge, ip=[::ffff:127.0.0.1], headers=0, body=0, time=0


とIMAPには接続可能済み。
ちなみに「telnet localhost 143」も動作確認済み。

「このページにアクセスするにはアカウントが必要です。」
これ↑が何度でも出る(´ヘ`;)ハァ

IEでの接続の場合クッキーが有効になっていなかったりすると出るエラーだそうだが僕には関係なかった…

「Webメールは他をあたるか…」

「Iloha Mail」が以前から気になっていたので
これを導入。
Iloha Mail(いろはメール)
http://ilohamail.org/main.php
構築したのは↓このサイトです。
https://jpaccess.net/mail/IlohaMail/
SquirrelMailの画面よりセンセーショナルなのでこれを選んだ(^^;


ところで…
msql.soの件だが今回ばかりはお手上げかと思っていたが
あるサイトで(ごめんなさい。どこか忘れましたm(__)m)
下記のようにコメントアウトになっていたサイトを発見。

; extension=msql.so

英語のサイトであったがFC(フェドラ)のメーリングリスト系のページだったことを記憶しています。

なんか感嘆符がたくさんあって喜びの表現をしていたサイトだったので
きっとこれで何か不具合を解消したんだなぁ?と勝手に解釈(^^;

■結果このコメントアウトでエラーが一切でなくなった。

現在は
全て正常に動作している・・・・と思う(^^;

ちなみに「php -v」の結果は↓


[root@hogehoge root]# php -v
PHP 4.4.2 (cli) (built: Mar  2 2006 17:31:09)
Copyright (c) 1997-2006 The PHP Group
Zend Engine hoge, Copyright (c) 1998-2004 Zend Technologies
    with the ionCube PHP Accelerator xxxx, Copyright (c) 2001-2002, by Nick Lindridge

これで良いんだよね??(^^;


<追伸>
msqlであってmysqlではない(^^;

あるページでこんな一コマが…

「extension=msql.soをextension=mysql.soへ書き直し…
不具合を解消しました!ありがとうございましたm(__)m」

なぬっ?!ェエェエェエェエ(゚Д゚ノ)ノエェエェエェエェ

F-Prot Antivirus for Linux Workstationsの導入

無償で利用できるアンティウィルスソフト
F-Prot Antivirus for Linux Workstationsを導入した時の記録です。

■プログラムを入手
RPMパッケージが用意されているのでこれを利用した↓
http://www.f-prot.com/download/trial_forms/linux-ws-rpm.html
↑コチラへまずは出向く。

必要事項(*印は必須です)を入力し最下部の「Submit and start download」をクリック

※Where did you of F-Prot Antivirus?は「どこでF-Prot Antivirusを知りましたか?」の質問の意。
Serach EngineとかOtherで良いであろう…


まずはクライアントPCにダウンロードしその後Webminを使い
「/root」にアップロードした。

#cd /root


ダウンロードした/rootディレクトリに移動

#rpm -ivh fp-linux-ws.rpm
準備中...                   ########################################### [100%]
   1:fp-linux-ws            ########################################### [100%]
***************************************
* F-Prot Antivirus Updater            *
***************************************

There's a new version of:
"Document/Office/Macro viruses" signatures on the web.
Starting to download...
Download completed.

There's a new version of:
"Application/Script viruses and Trojans" signatures on the web.
Starting to download...
Download completed.

Preparing to install Application/Script viruses and Trojans signatures.
Application/Script viruses and Trojans signatures have successfully been installed.

Preparing to install Document/Office/Macro viruses signatures.
Document/Office/Macro viruses signatures have successfully been installed.


**********************************
* Update completed successfully. *
**********************************


↑これがでればインストール完了。
先ほどのパッケージを削除


#rm fp-linux-ws.rpm
rm: `fp-linux-ws.rpm' を削除しますか(yes/no)? y


で削除。


■確認作業


#f-prot -verno  ←バージョンを確認できるコマンド

F-PROT ANTIVIRUS
Program version: 4.6.6
Engine version: 3.16.14

VIRUS SIGNATURE FILES
SIGN.DEF created 25 February 2006
SIGN2.DEF created 25 February 2006
MACRO.DEF created 24 February 2006


↑こんな感じで現在インストールされているバージョンが出る。


#f-prot /root  ←/rootをスキャンしてみる

Virus scanning report  -  27 February 2006 @ 3:29

F-PROT ANTIVIRUS
Program version: 4.6.6
Engine version: 3.16.14

VIRUS SIGNATURE FILES
SIGN.DEF created 25 February 2006
SIGN2.DEF created 25 February 2006
MACRO.DEF created 24 February 2006

Search: /root
Action: Report only
Files: "Dumb" scan of all files
Switches: -ARCHIVE -PACKED -SERVER


Results of virus scanning:

Files: 2361
MBRs: 0
Boot sectors: 0
Objects scanned: 3111

Time: 0:09

No viruses or suspicious files/boot sectors were found.


最下部に「No viruses or suspicious files/boot sectors were found.」 と記され
スキャンは終了しウィルスはないとの通知がされた。


■感染された時の疑似体験をしてみる。

無害なウィルスを用いウィルスに感染したファイルがあったら
どうF-protは反応するかここでみてみることにする。

私の作業場はなぜか「/root」なのでとりあえず移動…

#cd
きっとこれだけで移動できるからそうなったのかな??

# wget http://www.eicar.org/download/eicar.com
# wget http://www.eicar.org/download/eicar_com.zip


二つのウィルスを/rootにダウンロードする。

# f-prot /root


↑検査開始!

Virus scanning report  -  27 February 2006 @ 3:52

F-PROT ANTIVIRUS
Program version: 4.6.6
Engine version: 3.16.14

VIRUS SIGNATURE FILES
SIGN.DEF created 25 February 2006
SIGN2.DEF created 25 February 2006
MACRO.DEF created 24 February 2006

Search: /root
Action: Report only
Files: "Dumb" scan of all files
Switches: -ARCHIVE -PACKED -SERVER

/root/eicar.com  Infection: EICAR_Test_File
/root/eicar_com.zip->eicar.com  Infection: EICAR_Test_File

Results of virus scanning:

Files: 2362
MBRs: 0
Boot sectors: 0
Objects scanned: 3114
Infected: 2
Suspicious: 0
Disinfected: 0
Deleted: 0
Renamed: 0

Time: 0:04

■ウィルス発見!
上記の検査結果より下記を抜粋しました


/root/eicar.com  Infection: EICAR_Test_File
/root/eicar_com.zip->eicar.com  Infection: EICAR_Test_File
Infected: 2


↑/rootに二つのウィルスファイルがあると検知した。

成功!!(^^)v

この二つのウィルスファイルを削除する


#rm -f eicar*


■ウィルスファイルを最新の状態に保つためF-protのスクリプトの
実行ができるPerlモジュール群をインストールしておく

#apt-get -y install perl-HTML-Tagset
#apt-get -y install perl-HTML-Parser
#apt-get -y install perl-URI
#apt-get -y install perl-libwww-perl
#apt-get clean


RPMパッケージを最後に削除しておこう

#/usr/local/f-prot/tools/check-updates.pl


↑このコマンドで最新情報に更新してくれる。

***************************************
* F-Prot Antivirus Updater            *
***************************************

Nothing to be done...

↑インストールの際に最新情報に更新してくれたため
やることはないらしい…

最新情報に更新された際には


**********************************
* Update completed successfully. *
**********************************


↑この表示が出ます。

■Cronに登録しウィルススキャンの自動実行と
自動的にウィルス定義ファイルを更新してくれるようにしておく

#cd
#vi f-prot.sh


/rootディレクトリにf-prot.shというファイルを作成。
このファイルに実行権限を与えF-protを最新の状態に保つようにする。

#!/bin/sh
/usr/local/f-prot/tools/check-updates.pl > /var/log/f-prot_log
/usr/local/bin/f-prot -auto -disinf -delete / >> /var/log/f-prot_log
grep "Infection" /var/log/f-prot_log

#wq:
#chmod 700 f-prot.sh

上記のスクリプトが実行されると
/var/log/にf-prot_logというファイル名でログを残す。

# crontab -e


でお好きな時間へ登録しておく


00 05 * * * /root/f-prot.sh

#service crond restart

毎朝5:00にcronは実行される。


<追記>
低スペックマシンではこのスクリプトは結構重いので
なるべくアクセスの少ない時間帯にcronに登録しておくようにおすすめします。

Postfixでバーチャル運営

Postfixの設定にバーチャルを適用することにより
複数のドメインでメールの送受信が行う事が出来るようになる。

この編ではPostfixが先ず正常に動作していることが大前提である。

当方のメールサーバのシステムはSMTPーAUTH認証によるものである。
この編ではSMTP-AUTHの設定は割愛致します。

機会があれば別スレを立てますのでそちらで御願いします。

■設定を触るファイルは以下のファイル
/etc/postfix/main.cf
/etc/postfix/virtual
/etc/postfix/sender_canonical


▼main.cfの設定

#vi /etc/postfix/main.cf
最下部に


### Virtual による送受信の設定  ###
virtual_alias_maps = hash:/etc/postfix/virtual
sender_canonical_maps = hash:/etc/postfix/sender_canonical

等とバーチャルでの送受信の際の参照先を追加する。

:wq

Postfixが参照するファイルは後述するが
virtual.db
sender_canonical.db
になる予定。

 

■送信側の設定
sender_canonicalファイルはデフォルトでcanonicalというファイルが用意されているようだ。
自分でわかりやすくするために新規に作成しました。

このファイルに「実在ユーザー 対応するバーチャルドメインユーザー」
という書式で列挙していく。
「実在するunixユーザ  送信するアドレス」の形でも良い。

これによって実在ユーザーで送信したメールの送信者のアドレスが、
バーチャルドメインのユーザーに書き換えられるとのこと…

実在ユーザ = user
対応するバーチャルドメインのユーザ = ***@***.com
とする。

#vi /etc/postfix/sender_canonical
user   ***@***.com

と追加してみた。

postmapコマンドを用いハッシュデータベースを作成し設定を反映させる。


#postmap /etc/postfix/sender_canonical
#service postfix restart

先ほど、main.cfで
sender_canonical_maps = hash:/etc/postfix/sender_canonical
としたが「hash:」をつけて「hash:/etc/postfix/sender_canonical」と指定した場合
「/etc/postfix/sender_canonical.db」が参照されるためmain.cf内の
「hash:/etc/postfix/sender_canonical」には拡張子である「.db」を付す必要はない。

■受信側の設定
受信側の設定もまた「/etc/postfix/virtual」で「/etc/postfix/sender_canonical」 で設定したように
記述していくわけだがフォーマットは「受信するメールアドレス  実在するunixユーザ」と記述していく。

#vi /etc/postfix/virtual
***.com anything
***@***.com   user

:wq

この場合の「***.com anything」はドメイン名を付す。

postmapコマンドを使い設定を反映させる。


#postmap /etc/postfix/virtual


「virtual.db」が作成されたかどうか確認。

#ls /etc/postfix/virtual.db

出来ている。

#service postfix restart


postfixを再起動。

■ここからが結構はまった…
さてここで先ほど設定したバーチャルで送受信をLAN内部・外部ともへいろいろ送受信してみる。

出来ているぞ…

さて、ログの確認を…


#cat /var/log/maillog
#do not list bbb.com in BOTH mydestination and virtual_alias_domains


??何かダブって記述したのか??
「mydestination と virtual_alias_domains の両方にbbb.com ドメインを記述してはいけない」
と直訳すればそうだが…

# postconf -n
としてpostfixの設定ファイルを今一度確認する。

mydestination = $myhostname, localhost.$mydomain, $mydomain, aaa.net, bbb.com

mydestination = $myhostname, localhost.$mydomain, $mydomain

こうしなくてはいけないのかな?

バーチャルで運用する場合mydestinationには認識したいドメインを列挙していくはずだったが…

■結果
この判断で良かった。
これに加えもう一点ある。

myhostnameとmydomainを同じ名前にしていたことも原因だったのかもしれない。
この直前にDNSサーバを構築したので
myhostname = aaa.net を myhostname = mail.aaa.net
としてやった。

myhostname と mydomain を同じにした場合は
mydestination と virtual_alias_domains に同じドメインを
指定したことになるので恐らくこのエラーを吐いたのではないかと推測。

現在はエラー無くして正常に稼働中である。

phpの設定ファイル /etc/php.ini のmbstring について

XOOPSを設置する際にはPHPの設定ファイルである
/etc/php.iniの設定ファイルの調整は必須である。

その中でも文字化けなどの対策mbstringはいかがな設定にしているか?
を検証してみよう。

-------------------------------------------------

 


[mbstring]
; 国際化文字で表現される言語
mbstring.language = Japanese

; 内部/スクリプトのエンコーディング
; 内部エンコーディングとしては使用できないものがあります。
; (たとえば BIG5, ISO-2022-*)
; (SJIS : ビルド時に --enable-zend-multibyte が指定されない場合。Vine 版では
; 組み込んであります)
;mbstring.internal_encoding = UTF-8
mbstring.internal_encoding = EUC-JP

; HTTP 入力のエンコーディング
; "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS"に展開されます。
mbstring.http_input = auto

; HTTP 出力のエンコーディング。ここを pass 以外にする場合は、output_handler
; を mb_output_handler にしておく必要があります。
;mbstring.http_output =
mbstring.http_output = pass
; mbstring.internal_encoding にしたがって自動的にエンコーディング変換を行う。
; この設定が On の場合、入力文字は内部エンコーディングに変換されます。
; 注意:ライブラリやアプリケーションを他にも配布する予定がある場合は、互換性
;       に問題が発生するのでこの設定を有効にしては *なりません*。
mbstring.encoding_translation = Off
mbstring.script_encoding = auto
; エンコーディングを自動判別する場合の順序
; auto means
mbstring.detect_order = auto

; エンコーディングを変換できなかった場合に使用する代替文字
mbstring.substitute_character = none

; シングルバイト用の関数を mbstring 関数群でオーバーロード(上書き)する。
; mail(), ereg()などをそれぞれ mb_send_mail(), mb_ereg() などに置き換える。
; 0,1,2,4 およびそれらの組み合わせが指定可能。たとえば 7 はすべて置き換える。
; 0: 置き換えなし
; 1: mail() 関数を置き換える
; 2: str*() 関数を置き換える
; 4: ereg*() 関数を置き換える
;mbstring.func_overload = 0

 


-------------------------------------------------
概ね上記設定で文字化けは起こらないはず。

■また、XOOPSのZenCartモジュールなどテーブル数の多いモジュールを
XOOPSモジュールとしてインストールする際にタイムアウトなどのエラーなどにより
インストールできない現象が起こる場合は
Resource Limitsの設定を見直そう。

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 60     ; Maximum execution time of each script, in seconds
max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M      ; Maximum amount of memory a script may consume (8MB)

 

■PHPデバッグモードをONにしても「Warring」メッセージが見つからず、
XOOPSにおいて画面が真っ白になる不具合の調整の参考になれば幸いです。


PHP設定ファイルの/etc/php.ini中の253行目
memory_limit = 32M ; Maximum amount of memory a script may consume (8MB)

の「memory_limit 」の値はデフォルトでは「8M」になっている。
「16M」へ修正すると良いとのことでしたが
当方ではメモリーに余裕があったので「32M」へ変更。
不具合を解消した。

【参考URL】
XOOPS本家 http://www.xoops.org/modules/smartfaq/faq.php?faqid=80

Moodle  http://moodle.org/mod/glossary/showentry.php?courseid=5&concept=Errors+about+%22allowed+memory+size%22+being+exhausted

他 sourceforge.jpのHELP/トラブルシューティングで解決策あります
http://xoops.sourceforge.jp/wiki/xoops2/

■FFFTPなど、FTPソフトの設定で「ファイル名の大文字を小文字に変換」するようになっていると、
一部のファイルのincludeに失敗して真っ白画面になる。

■FTPなどでアップロードする時に、アスキーでなくバイナリで転送している。

■XOOPS1.3系からアップグレードの場合、サードパーティ製モジュールがXOOPS2で動かなくて真っ白画面になる。

■cache, uploads, template_c フォルダのパーミッションが777になっていない

■Redhat linuxでphp-mysqlがインストールされていなかった。

■Redhat Linux 7.3や9 では、rpmでは問題がでるようなので、 httpdとphpをソースから入れるとよいようです。
詳しくは公式のフォーラムで検索して下さい。

■2.06まででヘッダしか返らず、本文がなにも返ってこない場合(RSSやBlogのトラックバック等)は
http ヘッダによって正常に処理されない の可能性があります。

■メモ帳や、ホームページビルダーなどで開いた時にEUCのファイルをS-JISで保存してしまったため、
真っ白になる。EUC-JPが扱えるエディターなどを使いましょう。

■gzip 圧縮がオンになっていると、環境によってはモジュールのインストール画面が真っ白になることがある。

■AuthモジュールでCGIを実行しようとした時。セーフモードでPHPが動作している場合は
PHPがエラーとなって実行できません。(CGIがサーバエラーを出している場合はXOOPSのヘッダ・フッタは表示されます。)

■PHPの動作メモリが8Mだと足らなくて真っ白になる場合があります。php.iniで、
「memory_limit = 16M」などとすると解消する場合があります。

■php.iniに「extension=mysql.so」が無かった。

.htaccess .htpasswdによるBASIC認証

img443f8939bffef.jpg


↑こんな画面でパスワード制限をする設定。

パスワードディレクトリを作る

# mkdir /etc/httpd/password

※ご自分の好きなディレクトリでOKです


次にユーザーディレクトリを作る

# mkdir /etc/httpd/password/*****

※BAISC認証画面の「ユーザ名」にあたる箇所です

ディレクトリに移動

# cd /etc/httpd/password/*****

ユーザー名とパスワードを設定

# htpasswd -c .htpasswd *****

New password:*********** ←パスワードを入力(表示されない)
Re-type new password:*********** ←パスワードを再入力
Adding password for user *****

これでユーザ*****が追加されました。

※既存のユーザファイルに新たなユーザを追加するときは[-c]オプションは不要です。
同じディレクトリにグループファイルをエディタで作成して追加することもできます。

httpd.confの編集

httpd.conf を開いて,認証に関する設定を記述します。以下に例を示します。

<Directory "/home/***/public_html/abc"> ←認証を設定するディレクトリ AuthType Basic AuthName "Private Directory" ←認証ダイアログに表示されるメッセージ AuthUserFile /etc/httpd/password/*****/.htpasswd
Require user *****
</Directory>

設定が終わればhttpdサーバー再起動

# service httpd restart

PukiWikiModでmod_rewriteを有効にし動的URLから静的URLへ

PUkiWikiのページを新しく作成すると下のようなURLとなりクローラーが拾ってくれにくいらしいので
これを静的URL(.html)へ変更する手順をご紹介します。
home/httpd/html/modules/pukiwiki/wiki/%B2%FE%C2%A4/%C0%C5%C5%AA%A5%B3%A5%F3%A5%C6%A5%F3/
↑このURLは存在しません。


かなりハマリました!(´ヘ`;)ハァ


naoponさんのHPより皆さんが非常に重宝しているとおっしゃっておる
このXOOPSのモジュール「PukiWikiMod」を絶対に導入したい!
っと思いPukiWikiModを導入してみました。

ダウンロードはnaoponさんのHPより可能です。

■管理画面であれこれ設定します(詳細は割愛します)

その中で・・・

URL風にする。 (設定後に .htaccess を確認してください。)
の項目を「有効」にチェックを入れる。

modules/pukiwikiにある.htaccess.devの[PWM_DIR]を
modules/pukiwikiと記述し直し
.htaccess.dev -> .htaccessにリネーム。

でっ!出た!500エラー(´ヘ`;)ハァ

もういいや…

元に戻してとりあえずPukiWikiModで色々編集してみよう・・・

そう思っていた最中、編集の仕方がよくわからなかったのでヘルプを参照しようとすると
ヘルプで「ページが見つかりません」のエラー(´ヘ`;)ハァ

なんじゃこりゃ!(´ヘ`;)ハァ

こりゃーページがうまく関連づけられてないなぁ〜┐('〜`;)┌


仕方なく他サイト様のヘルプを参照しページの編集はできた。

ヘルプが参照できないのは非常に気分が悪いので色々試行錯誤をした。

どれもこれもダメ(´ヘ`;)ハァ

っていうかNOCCHI思い出してご覧??

っと心の中のVineヘルパー君が囁く…(^^;

お前のhttpd.confの設定は疑わないの??

あ、あぁ〜!そうだね・・・(^^;


■httpd.confを編集していく
httpd.confの適当な箇所に下記を追加


<Directory "/home/httpd/html/modules/pukiwiki">
AllowOverride ALL
RewriteEngine on
#静的ページ風URLを有効にした場合は、[PWM_DIR]を環境に合わせて書き換え
#ファイル名を .htaccess にリネームしてください。
RewriteBase /modules/pukiwiki
RewriteRule ^([0-9]*).html?(#.*)?$ index.php?pgid=$1$2 [qsappend]
RewriteRule ^tb/([0-9]+)/?$ index.php?pwm_ping=$1 [qsappend]
</Directory>


これはmodules/pukiwiki/.htaccessにAllowOverride ALLを追加したものを記述。

RewriteBase /modules/pukiwiki ←環境に合わせてください

再び500エラー(´ヘ`;)ハァ

おもいだせっつーの!お前さぁ〜以前に「iDiary」モジュールがモジュール管理画面で
.png画像が「X」印になっていてさんざん悩んでいたがやっ!

あ!そうか…

ディレクティブをhttpd.conf内に設定したからmodules/pukiwiki/.htaccessを削除すればいい訳ねっ!

modules/pukiwiki/.htaccessを削除した。

結果オーライ!(^^)v


サーバの設定によっては.htaccessが置けない環境になっています。
自鯖の場合は上記方法で試すことが出来ますが自鯖でない場合はどうすればいいのだろう…(^^;

一件落着でした(^。^;)ホッ

【参考サイト様】
PukiWiki/Download/1.4.4
cubic9.com

AWStatsでグラフィカルなアクセス解析を設置

AWStatsはWebalizerに比べ非常にグラフィカルで綺麗だ。
しかもたくさんのコンテンツからなり細かに分析でき眺めていても面白い。
CGIプログラムで動くので低スペックサーバはちょっと辛かった。

■Jcodeがインストールされていない場合はCPANを用いインストール。

perl -MCPAN -e shell

cpan> install Jcode

---------------------------------
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Jcode is up to date (2.03).
---------------------------------

 


どうやらJcodeがアップデートされたようだ。

 

cpan> exit
Lockfile removed.

 

※初回のCPANでのインストールの際になにやら質問が出てくるので
下記のように回答した

 


---------------------------------
Select your continent (or several nearby continents) [] 2 ← Asia
Select your country (or several nearby countries) [] 7 ← Japan
Select as many URLs as you like (by number),
put them on one line, separated by blanks, e.g. '1 4 5' [] 1 4 5
---------------------------------

 

 

さて本題へ…

AWStatsをまず /usr/local/bin へ持ってくるとします。
そして展開


#cd /usr/local/bin
#wget http://www.bflets.dyndns.org/AWStats60_Jpn.tar.gz
#tar zxvf AWStats60_Jpn.tar.gz

CGIプログラムなのでcgi-binで動かさねば…
アイコン(画像ファイル)などもあるのでcgi-binのawstats直下へそのフォルダ(/icon)も作成。


#mkdir /home/httpd/html/cgi-bin/awstats
#mkdir /home/httpd/html/cgi-bin/awstats/icon

 

移動して設定ファイル、画像のコピーなどを行う。

 

# cd /usr/local/bin/AWStats60_Jpn/wwwroot/
# cp -rf cgi-bin/* /home/httpd/html/cgi-bin/awstats
# cp -rf icon/* /home/httpd/html/cgi-bin/awstats/icon

 

設定ファイル awstats.model.conf を awstats.conf リネーム。
そして EUC に変換。


# cd /home/httpd/html/cgi-bin/awstats
# nkf -ed awstats.model.conf > awstats.conf

 

設定ファイルの編集


#vi /home/httpd/html/cgi-bin/awstats/awstats.conf
55行目  LogFile="/var/log/httpd/access_log.utf8"
155行目  SiteDomain="******.com"
191行目   DNSLookup=1  ※ DNSの逆引きを行うように設定しなくてはならないと説明書にある。
216行目   DirCgi="/cgi-bin/awstats"
227行目   DirIcons="/cgi-bin/awstats/icon"
473行目   SkipHosts="127.0.0.1 REGEX[^192.168.0.]"
894行目   Lang="jp"

#:wq


手動でApacheのログを変換し解析してみる。


#/home/httpd/html/cgi-bin/awstats/utf8_decode.pl < /var/log/httpd/access_log > /var/log/httpd/access_log.utf8
↑一行です

低スペックサーバだと非常にもたつきました…

ログファイルの存在を確認
#ls /var/log/httpd/access_log.utf8

手動で解析してみる
#/home/httpd/html/cgi-bin/awstats/awstats.pl -config=awstats.conf -update

これも時間が非常にかかります


---------------------------------
# /home/httpd/html/cgi-bin/awstats/awstats.pl -config=awstats.conf -up
Update for config "/home/httpd/html/cgi-bin/awstats/awstats.conf"
With data in log file "/var/log/httpd/access_log.utf8"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 10549
 Found 108 dropped records,
 Found 5 corrupted records,
 Found 0 old records,
 Found 10436 new qualified records.
---------------------------------


やっと出てきた…

# chown -R 所有者:グループ名 /home/httpd/html/cgi-bin/awstats


ブラウザで
http://*****.com/cgi-bin/awstats/awstats.pl
と確認してみる…

出てきた出てきた…(^。^;)ホッ!

起動スクリプトを作成しcronに登録してみる。


#cd
#vi awstats.sh
-------------------------------------
#!/bin/sh

ALOG=/var/log/httpd/access_log
A1LOG=/var/log/httpd/access_log.1
NEWLOG=/var/log/httpd/access_log.new
UTF8LOG=/var/log/httpd/access_log.utf8
UTF8DECODE=/home/httpd/html/cgi-bin/awstats/utf8_decode.pl
AWSTATS=/home/httpd/html/cgi-bin/awstats/awstats.pl
LOG=/var/log/awstats.log

cat $ALOG > $NEWLOG
cat $A1LOG >> $NEWLOG

$UTF8DECODE < $NEWLOG > $UTF8LOG

$AWSTATS -config=awstats.conf -update > $LOG

chmod 600 $LOG
-------------------------------------

 


crontab -e で好きな時間帯へ…
00 05 * * * /root/awstats.sh

service crond restart
反映

スクリプトを実行そして確認


#./awstats.sh
#cat: /var/log/httpd/access_log

 

参考サイト様 : 『VineLinuxで自宅サーバ』 http://vine.1-max.net/
※とても親切でわかりやすく説明してあります。
初心者だけではなく忘れていたあんな事、こんな事が非常に丁寧に説明してあります。
質問掲示板もあります。

 

後記:
サーバ機を新しく構築したためにこれを機に今回AWStatsを導入したわけだが
日々のアクセス分析、検索用語、ROBOT、など結構細かにGUI環境で教えてくれるこのソフトは
使えると思いました。

ただ低スペックサーバでこのソフトを導入した際には
ログを見ることすら結構面倒になってしまった…(^^;

 

Apacheのログを複数ユーザーにも適用

ユーザー様個別のエラーログを取るように設定する。

mkdir /var/log/httpd/ユーザー名

#vi /etc/httpd/conf/httpd.conf


ServerAdmin ユーザー名のアドレス
DocumentRoot /home/ユーザー名/public_html
ServerName ユーザーのドメイン名
ErrorLog /var/log/httpd/ユーザー名/error_log
CustomLog /var/log/httpd/ユーザー名/access_log combined env=!nolog


#service httpd restart

溜まったログを古いものから削除する


#vi /etc/logrotate.d/apache

/var/log/httpd/access_log { ←この行の直下に
  daily
  rotate 14
  missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}


上記2行を追加

続いて最下部にでも下記を追加
-------------------------------------

/var/log/httpd/*/access_log { daily rotate 14 missingok postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript }

/var/log/httpd/*/error_log {
daily
rotate 14
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
-------------------------------------
:wq


#cat /var/log/httpd/ユーザー名/error_log
で確認できる

Vine構築メモ

迷惑トラックバックが異常に多いのでブログをこっちに移動しました(^^;

新しいカテゴリーで「Vineサーバ構築メモ」を追加しました(^^)

-----------------------------------------------------

2006-02-19

このブログはVineLinux3.2でサーバを構築した時の忘備録です。

構築したサーバのスペックは

■低スペックサーバ

PRESARIO 5240
HDD 4G
増設HDD 20G (/homeに全てあてがいました)
メモリー 320MB
CPU  AMD K6 400Mhz
です(^^;

詳細はCOMPAQのホームページにPDFファイルで掲載されています。
http://www.compaq.co.jp/athome/pdfs/p5200_s.pdf


サーバとしての機能はこれで十分だと思いますが
XOOPSなどを設置すると極端にレスポンスが悪くなってしまいました。
個人的に扱う分には十分に機能するスペックだと思います。

SOHOの皆様が今後このブログを通じ
サーバ構築の手助けの一環となれば幸いでございます。


なお、このブログのノウハウでデータの損失や被害などを被りましても
一切の責任を負いかねますので
悪しからずご了承下さいませ。

あくまでもこのブログは忘備録であることをお忘れにならないよう
御願い致します。