qmailにメールキューがたまってしまった場合の操作。
1:Perlスクリプトをダウンロード
2:適当に解凍して、実行権限を付加。
-----------------------------------—
○以下は実行例
A:キューの数量を確認する場合
qmHandle -l -N
B:たまっているキューを確認する場合
・リモート配送
qmHandle -R
・ローカル配送
qmHandle -L
C:キューを削除
・特定の一つだけ削除
qmHandle -d1111111 -d2222222
・特定の2つ以上を削除
qmHandle -d1111111
※1111111、2222222はキューの番号
D:キューを全部削除
qmHandle -D
-----------------------------------—
○CGI::Application::Plugin::TTでのテンプレート変数の扱い
変数の扱いがいまいちわかりにくかったのでメモ。
--------------------—
sub example {
my $self = shift;
# ハッシュへ値を収納
my %hash_a = (
string_b => “example_b”,
);
# テンプレート変数の収納
my %params = (
string_a => “example_a”,
hash_a => \%hash_a,
);
# 画面出力
return $self->tt_process( ‘example.tt.tmpl’, \%params );
}
# テンプレートでの利用方法
[% string_a %]
[% hash_a.string_b %]
--------------------—
○参考
作って学ぶ、今どきのWebサービス:最終回 Webアプリケーション開発にチャレンジ【後編】 (2/3) – ITmedia エンタープライズ
一昨日あたりから、サーバーが異常に重く、メール配送が正常に行えない状況が発生。
topコマンドで、プロセスをみてみると『amavis process-quarant』という見慣れないものが、トップに鎮座し、ロードアベレージの5分平均が12~14程度で遷移していた。
suさえもおぼつかなくなってきたので、とりあえずの対策として、/etc/master.cfに記述しているamavis関連の設定を削除するとともに、postfixを停止。
メールログには、『451 4.3.0 Error: queue file write error』のように、メールキューの処理過程でエラーが発生しているらしきことが判明。
そこで、amavisの単体起動を試みたところ、『Scalar::List』でエラーが発生していたため、『Scalar::List::Utils』を再インストールし、amavisの再起動と、postfixの設定書き戻しで一件落着。
○参考サイト
週刊みけねこ通信 | 20071205
colinuxから配布されているFedora7のイメージには、locateがインストールされていない。
wget等も入っていないようなので、設定後に一括でインストールしたパッケージをメモ。
-----—-
mlocate
wget
httpd
php
php-mysql
php-mcrypt
perl-cpan
※随時追記
-----—-
colinux0.7は、それ以前のバージョンと異なった書式になっているようなので、設定ファイルをメモ。
----------------
kernel=vmlinux
cobd0=”C:\Program Files\coLinux\Fedora-7\Fedora-7.img”
cobd1=”C:\Program Files\coLinux\Fedora-7\swap.img”
root=/dev/cobd0
ro
initrd=initrd.gz
mem=512
eth0=tuntap,”TAP-Fedora-7″
----------------
CentOS5でmod_perlを導入してみました。
httpdおよびhttpd-develは導入済みであることを前提にしています。
○CPANモジュールのインストール
# perl -MCPAN -e “CPAN::Shell->install(Apache2::Reload)”
apxsのパスを求められた場合は、以下を入力。
/usr/sbin/apxs
○mod_perlのインストール
# yum install mod_perl
○設定ファイルの編集
# vi /etc/httpd/conf.d/perl.conf
以下を最下部へ追加。
-------------------------—-
# Indexに指定
DirectoryIndex index.pl
# 再起動時にキャッシュを破棄
# mod_perl2では不要
#PerlFreshRestart On
<Files “*.pl”>
# ハンドラの関連付け
SetHandler perl-script
# 動作モードの指定(1または2のいずれかを有効にする)
PerlHandler ModPerl::Registry # 1:速度に優れる(推奨)
#PerlHandler Apache::PerlRun # 2:既存CGIスクリプトとの互換性に優れる
# CGIで実行する場合に指定
#Options ExecCGI
# ヘッダーを出力
# 基本的には不要
#PerlSendHeader On
# モジュール内容の変更を自動的に反映
# 開発時にのみ利用
PerlInitHandler Apache2::Reload
</Files>
-------------------------—-
※拡張子(.pl)へ関連付けているので、httpd.conf内等で、AddHandlerに含めている場合は、いずれかの拡張子を変更してください。
○Apacheの再起動
# service httpd restart
○テストスクリプトの作成
$ vi /var/www/html/mod_perl.pl
-------------------------—-
#!/usr/bin/perl
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use CGI;
my $obj = new CGI();
print $obj->header,
$obj->start_html;
if (exists $ENV{MOD_PERL}) {
print ” $ENV{MOD_PERL}”;
} else {
print “mod_perl は組み込まれていません。”;
}
print $obj->end_html;
exit(0);
-------------------------—-
○スクリプトの確認
ブラウザで、スクリプトを開いて確認をしてください。
http://www.example.com/mod_perl.pl
『mod_perl/2.0.2』の様に表示がされれば、正常に動作しています。
InternalError等が起きてしまう場合には、文字コード(UTF-8等)や改行コード(LF推奨)を確認してください。
それでもうまくいかない場合には、下記コマンドでエラーログを参照しながら地道につぶしてみてください。
# tail -f /var/log/httpd/error
■Mingのインストール方法
yumでインストールされたApache2.2とPHP5へMingをインストールします。
(1) CVSでMing最新版をダウンロード
cvs -z3 -d:pserver:anonymous@ming.cvs.sourceforge.net:/cvsroot/ming co -P ming
※CVS関連でエラーが出る場合は以下のコマンドで、開発ツール(CVS含む)をインストール
yum group install “Development Tools”
(2) コンパイル
cd ming
./autogen.sh
./configure –enable-php
下記の結果が表示されることを確認
--------------------------------------------------------
Config summary:
C++ enabled
Perl extension disabled
PHP extension enabled← ここを確認
Python extension disabled
Tcl extension disabled
ZLIB enabled (-lz)
Freetype library enabled (/usr/bin/freetype-config)
GIF library enabled (-lungif)
PNG library enabled (-lpng)
--------------------------------------------------------
make
make install
(3) インストールの確認
php -r “dl(‘ming.so’);”
↓configure時に、prifexを指定していないためか、エラーが出る。
--------------------------------------------------------
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/ming.so’ – libming.so.0: cannot open shared object file: No such file or directory in Unknown on line 0
--------------------------------------------------------
(4) ライブラリのコピー
・ライブラリのコピー先を確認
php -i | sed ‘s/ /\n/g’ | grep libdir
--------------------------------------------------------
‘–libdir=/usr/lib64′
‘–with-libdir=lib64′
--------------------------------------------------------
・ライブラリのコピー
cp -a /usr/local/lib/libming.so* /usr/lib64/
(5) インストールをもう一度確認
php -r “dl(‘ming.so’);”
何も出力されなければインストール成功。
(6)PHPのiniファイルを作成
vi /etc/php.d/ming.ini
; Enable ming extension module
extension=ming.so
(7)Apacheの再起動
service httpd restart
■注意点
コンパイルに必要なライブラリがないことが原因でインストールに失敗することがあるので、その場合は以下のコマンドで、ライブラリ群をインストールしましょう。
yum install freetype-devel libpng-devel libungif-devel php-devel httpd-devel
また、Apacheのバージョンがあがると動作しなくなる場合があるので、バージョンアップを行った場合は、もう一度インストールしましょう。
■参考
インストールに当たって、下記のサイトを参考にさせていただきました。
the distinct object
CentOSやFedoraには、標準でdigコマンドがインストールされますが、colinuxのFedora7にはdigコマンドが含まれていません。
そのため、digを利用する場合には、以下のコマンドでインストールする必要があります。
yum install bind-utils
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/i18n
/etc/sysconfig/keyboad
/etc/sysconfig/network-script/ifcfg-eth0
上記ファイルを編集することで、とりあえずの利用が可能。