Apache Server Information Apache Server Status 環境変数

Apache2.0 の文字化けについて
Yahoo!メッセンジャーに付いて
アンチウイルスゲートウェイ

メール処理プログラムの雛形

IE5.0以上
漢字:ime-mode:active

半角:ime-mode:inactive

IME使用禁止:ime-mode:disabled

inactiveはユーザーによってIME切換ができますが、disabledは全く使え無くなります。

メールソフトの不正終了等でメールアカウントがロックされた場合、

-ERR Can't get lock.  Mailbox in use
Connection closed by foreign host.

telnet でログインして mail コマンドでメールを見るとロックが解除される

URLでユーザ認証
http://ユーザ名:パスワード@ホスト名.ドメイン名:ポート番号/
(例) http://komuro:passwd@www.komuro.ne.jp:80/
ポート番号の 80は省略可

テキストボックス内のデザイン変更

<style type="text/css"> <!-- .coment {font-size:10pt;font-weight:bold;color:red;} //サイズ 10pt、太文字、赤い色 --> </style> <input type=text class="coment" size=40>

日付時間の変更
root になって
# date mmddhhmmyy
(例)
2003年01月28日17時05分 の場合、
# date 0128170503

まとめてIPアドレスを設定する
/etc/rc.d/rc.local 等に追加
# ipaliase
i=0
while [ $i -le 127 ]; do
  ifconfig eth0:$i inet 192.168.0.$i netmask 255.255.255.255
  i=`expr $i + 1`
done

削除するときは
ifconfig eth0:127 down
また再開するときは
ifconfig eth0:127 up

どんなサブドメインでもホームページを表示する

DNSの正引きファイルに
*.komuro.ne.jp.	IN	A	nn.nn.nn.nn

apache の httpd.conf の適当な場所に
ServerAlias *.komuro.ne.jp

※この場合それぞれのファイルには一番下に書かないとうまくいかない。
ServerAlias *.komuro.ne.jp の下に ServerAlias aaa.komuro.ne.jp が有ったら
aaa.tv には行かなくなってしまうと思う。

参考ページ

パスワードの変更が出来ない場合

パスワードを変更しようとしても Authentication token manipulation error
と言って変更を受け付けてくれない場合

 pwconv

PWCONVの日本語man
http://www.linux.or.jp/JM/html/shadow/man8/pwconv.8.html

アーカイブを解凍出来ない

$ tar fvxz hoge.tar.gz
をしても以下の様なエラーが有る場合
gzip: stdin: not in gzip format

gzip で圧縮されていない可能性あり
リネームして tar を実行する

$ mv hoge.tar.gz  hoge.tar
$ tar fvx hoge.tar

「UNEXPECTED INCONSISTENCY...」の表示で起動できない

/dev/hda1;UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY;
(i.e., without -a or -p options)

***An error occurred during the file system check.
***Dropping you to a shell the file system will reboot
***when you leave the shell
Give root password for maintenance
(or type Control-D for normally startup) 

root のパスワードを入力する。
fsck をする。(その時 -a と -p のオプションはつけない)
fsck -t <ファイルシステムタイプ> <チェックするデバイス>

(例)エラーが /dev/hda1 の場合
fsck -t ext2 /dev/hda1
ファイルタイプが ext2 なら以下のコマンドでもOK
e2fsck /dev/hda1

apache2でCGIをEUCで動かすときのヘッダ

print "Content-type: text/html; charset=euc-jp\n\n";

80番以外のポートでも Apache を動かす方法

/etc/httpd/conf/httpd.conf に以下を付け足す Listen 880 <VirtualHost 192.168.0.1:880> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /www/docs/dummy-host.example.com ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost>

inetd が以下のようなログを吐くとき、

ftp/tcp server failing (looping or being flooded), service terminated for 10 min

-------------------------------------------------------------------------
Inetd counts the number of connection occuring within a minute. 
If that number exceeds some threshold, is assumes the ftp service is broken (or under attack) 
and keeps getting restarted - and shuts down the service. In most systems, this can be overcome
 by adding a parameter to the inetd.conf file like .... nowait.400 (400 connections per minute). 
Check the specific syntax for your operating system. 
-------------------------------------------------------------------------

/etc/inetd.conf ファイルを変更する。
(例)
ftp	stream	tcp	nowait.100	root	/usr/sbin/tcpd	in.proftpd 
# POPサーバは 400ぐらいに設定しておく。
pop-3   stream  tcp     nowait.400  root    /usr/sbin/tcpd  ipop3d

APOPの設定 (imap-2001) 
/etc/cram-md5.pwd がパスワードファイルになる。
(ない場合は新規作成する)

cram-md5.pwdの形式は以下の通り。

ユーザ名  パスワード(平文)

(例)
test1test1pass
test2test2pass

平文なのでパーミッションの変更をする。
# chmod 0600 /etc/cram-md5.pwd

proftpd でログインするまでに時間がかかる場合
DNSルックアップをオフにする
# vi /etc/proftpd.conf
...
UseReverseDNS off 

telnetログイン時のLinuxバージョン表示を隠す
/etc/issue.net を書き換える。
再起動したとき変更されないように /etc/issue も同じように書き換える

参考ページ

cron 等で標準出力やエラー出力を破棄したい場合、コマンドの後ろに以下をつける。
 > /dev/null 2>&1
(例)
ping -c 1 10.1.1.1 > /dev/null 2>&1

telnet でメールを送信する

% telnet mail.xxxxxxxx.jp 25

HELO xxxxxxxx.jp

MAIL FROM: xxxx@xxxxxxxx.jp

RCPT TO: xxx@xxxxxxxx.jp

DATA
From: user@foo.or.jp
Subjet: test
Hello world.
.

QUIT

CPUの情報を見る
vi /proc/cpuinfo
メモリーの情報を見る
vi /proc/meminfo

起動時のログ
/var/log/dmesg

  Perl

日付のフォーマット
PerlでCSVファイルを2次元配列にする
正規表現テストプログラム(簡易版)
URIエンコード・デコード
サーバ間でミラーリングFTPをするソフト
Perlでapache BASIC認証

毎月5の付く日に何かする

if ((split //, (localtime())[3])[-1] == 5) {
# 処理     ( 数字を変えるといつでもOK →^ )
}

特定の日付の曜日を知る

(例)2003-6-23
use Time::Local;
($yy,$mm,$dd) = split (/-/, $kigen);
$wday = (qw(日 月 火 水 木 金 土)) [(localtime(&timelocal(0, 0, 0, $dd, $mm - 1, $yy)))[6]];
$kigen = "$yy年$mm月$dd日($wday)";

特定の文字列をその文字数分別の任意の文字に変更する

$maildata =~ s/(ID:\d+)/&ast($1)/ge; sub ast { for (1..(length $_[0])) {$astsuu .= "*";} return $astsuu; }

ファイルをCGIからダウンロードする方法

print "Content-type: application/octet-stream;\n"; print "Content-Disposition: attachment; filename=\"$file_name\"\n\n"; open(LOCK,"lockfile"); flock(LOCK,2); open TEXT, "/virtual/anonymous/$file_name"; while (<TEXT>) { # アスキーモードの時は改行コードを勝手に変えられてしまうので再度変更する if ($in{'fname'} =~ /\.txt$/) {s/\n/\r\n/;} print "$_"; } close(TEXT); flock(LOCK,8); close(LOCK);

RedHat 8.0 に含まれる Perl は改行コードが LF (\n) 以外だとエラーになる。
これを回避するにはプログラムの1行目を、
#!/usr/bin/perl --
とすることでも回避できる。

$ perl -v
This is perl, v5.8.0 built for i386-linux-thread-multi

インストールされているモジュールの一覧を取得
#!/usr/bin/perl --

$INC = join (" ", @INC);
@PM = `find $INC -type f -name *.pm`;
print "Content-type: text/html\n\n";
print join ("<br>", @PM);

HTMLヘッダ

text文章    Content-type: text/plain
HTML文章    Content-type: text/html
画像        image/jpg, image/jpeg, image/gif ...

ループ制御

LOOP: foreach $k (sort {$a <=> $b} keys (%DATA)) { for $i (0..(@sdata - 1)) { if ($DATA{"$k"} !~ /$sdata[$i]/) {next LOOP;} } # ヒットしたものだけ表示 print "$k => $DATA{$k}"; } }

CSVファイルで先頭の値をキーにしてデータベースに登録する。
# csv ファイル名 $csv = 'data.csv'; # データベースファイル名 $dbm = 'data'; open(LOCK,"lockfile"); flock(LOCK,2); dbmopen(%DATA,"$dbm",0666); open CSV, "$csv"; while (<CSV>) { split (/,/,); $key = shift @_; # 区切り文字を , にする場合 my $data = join (',', @_); $DATA{"$key"} = $data; } close(CSV); dbmclose(%DATA); flock(LOCK,8); close(LOCK); # foreach (split (/,/, $data)) {print;}

ソケットモジュールを使ってPOST送信する。
$HOST = 'www.hogehoge';
$HTML = 'cgi-bin/test.cgi';
$TEXT = 'key=value&key2=value2';

use Socket;
$port = getservbyname('http','tcp');
$iaddr = inet_aton("$HOST");
$sock_addr = pack_sockaddr_in($port,$iaddr);
socket(SOCKET,PF_INET,SOCK_STREAM,0);
connect(SOCKET,$sock_addr);
select(SOCKET); $|=1; select(STDOUT);

$length = length($TEXT);

print SOCKET "POST /$HTML HTTP/1.0\r\n";
print SOCKET "Host: $HOST\r\n";
# ユーザ認証が必要ならば、
#use MIME::Base64;
#print SOCKET "Authorization: Basic " . MIME::Base64::encode("$user:$pass",'') . "\r\n";
# ブラウザ名が必要ならば、
#print SOCKET "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\n";
# HTTP Referer
#print SOCKET "Referer: http://www.komuro.jp/index.html\r\n";
# cookie 情報
#print SOCKET "Cookie: key=value; \r\n";

print SOCKET "Content-Type: application/x-www-form-urlencoded\r\n";
# データの Length をヘッダで渡す。
print SOCKET "Content-Length: $length\r\n\r\n";
print SOCKET "$TEXT";

Net-FTP を使ってファイルのみの一覧を取得して GET する
use Net::FTP;
$ftp = Net::FTP->new($server);
if ($ftp->login($user, $pass)) {
    $ftp->cwd("/public_html");
    @dirlist = $ftp->dir();
    foreach (@dirlist) {
        split;
        $file = pop;
#       $date = $ftp->mdtm("$file");  #タイムスタンプの取得
        if ($_[1] eq 1) {
            $ftp->get("$file","/home/backup/$file");
        }
    }
}
# $_[1] が 2 だったらディレクトリ

サブルーチンでスカラーの変数を変更する
$aaa = &kaigyo($aaa);

sub kaigyo {
$_[0] =~ s/\n//g;
return $_[0];
}

http:// と https:// 両方にヒットさせる方法
m#^http(s|)://#

本当に簡易なメールアドレスチェック(本当に簡単なもの)
/.+@.+\..+/

# ファイルのタイムスタンプを取得する。
@time = localtime(time - ((-M "$file_name") * 24 * 60 * 60));
$time = sprintf ("%04d/%02d/%02d",$time[5] + 1900,$time[4] + 1,$time[3]);

# メールアドレスのみを取得
sub extract_address {
	my ($from) = @_;
	if ($from =~ /.*<(.+)>/) {return $1;}              # From: Foo Bar <foobar@com.edu>
	elsif ($from =~ s/\s*\(.*\)//) {return $from;}     # From: foobar@com.edu (Foo Bar)
	else {return $from;}                               # From: foobar@com.edu [I hope]
}

正規表現の変わりに index を使う方法
(検索エンジンなどでEUCを使わない方法)
if ($sdata[$i] && $data[$i] !~ /$sdata[$i]/) {next LOOP;}
if ($sdata[$i] && (index $data[$i], $sdata[$i]) == -1) {next LOOP;}

標準モジュール File::Find を使ってディレクトリーのツリー表示する
#!/usr/bin/perl @dir1 = split (/\//, $ENV{'SCRIPT_FILENAME'}); pop @dir1; $dir1 = join ('/', @dir1); print "Content-type: text/html\n\n"; use File::Find; find(\&wanted, "$dir1"); sub wanted { @dir = split (/\//, $File::Find::name); pop @dir; unless (/^\.$/ || /^\.\.$/) {print "$_<br>\n";} }

JavaScript

Mac のブラウザ Safari でPOSTで送信したときに文字化ける問題 JavaScript を使って注意を勧告する <script type='text/javascript'> <!-- if (navigator.userAgent.indexOf("Safari")!=-1) {alert('★Safariご使用の方へ★\n確認のページで文字化けを起こす場合があります。\nその際はViewのTEXT EncodingでJapanese(MacOS)の\n設定にしてリロードを行ってください。 ');} //--> </script>

自分のフォームを参照する

<form> <input type="button" value="送信" onClick="alert(this.form.elements[0].value)"> </form>

左クリックでのダウンロードを禁止する
<a href="http://www.komro.ne.jp" onClick="alert('左クリックは使用できません');return(false);">
SAMPLE(左クリックできません)
右クリックしてダウンロードさせたいときなどに使う

NN4でもセレクトボックスの value を取得する方法
document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].value

クリップボードにコピーする方法
<SCRIPT LANGUAGE="JavaScript"> <!-- function copy(NO){ var doc = document.body.createTextRange(); doc.moveToElementText(document.all(NO)); doc.execCommand("copy"); } //--> </SCRIPT> <SPAN ID=COPY>コピーされる文字列</SPAN> <a href="javascript:copy('COPY');">Click Me</a> <SPAN ID=1234>複数でもOKです</SPAN> <a href="javascript:copy('1234');">Click Me</a>

コピーされる文字列 Click Me
複数でもOKです Click Me

■NetBEUI プロトコルをインストールする方法
Windows XP では小規模なネットワークで使用される NetBEUI プロトコルはサポートされていません。
しかし、Windows XP の CD-ROM には NetBEUI プロトコルのインストールに必要なファイルが準備されていますので、以下の方法で Windows XP にインストールすることができます。
なお、パソコンにプレインストールされた Windows XP ではこれらのファイルがない場合がありますので、詳細は各パャRンメーカーにご確認ください。
パソコンに Windows XP の CD-ROM を挿入し、\Valueadd\msft\net\netbeui\ フォルダにある Netnbf.inf ファイルを Windows XP がインストールされたフォルダの \INF\ フォルダにコピーします。
同じく nbf.sys ファイルを Windows XP がインストールされたフォルダの \SYSTEM32\DRIVERS\ フォルダにコピーします。
通常どおり NetBEUI プロトコルをインストールします。

リンク集

Linux

日本の Linux 情報
  JM Project
  Linux JF (Japanese FAQ) Project.
ZDNet デベロッパー
  Linux Tips
@IT
  Linux Tips
Linux活用日記
Red Hat Linux
  オフィシャル Red Hat Linux7.2リファレンスガイド
  オフィシャル Red Hat Linux7.3リファレンスガイド
Vine Linux
Turbolinux Japan Knowledge Center
Mosquito
rpmfind.net
OCN SECURITY WEB

北星学園大学の Online Manual
松阪大学の 奥村教授

apache
  Apache HTTP サーバ バージョン 1.3 ドキュメント
  Apache HTTP サーバ バージョン 2.0 ドキュメント
  文字化けやホームページがダウンロードするエラーの件
Pop Before SMTP
ProFTPD

SSL
 日本ベリサイン
 Thawte Japan
 GeoTrust

UPS
 APC Japan
 UPSを利用した電源対策
 Apcupsd User's Manual 3.10.3(英文)
 Apcupsd User's Manual 3.8.3(日本語)

ウイルスからLinuxサーバを守る

  第1回:アンチウイルスソフトの導入
  第3回:メールサーバでのウイルススキャン −Postfix編−
  第6回:メールサーバの不正利用対策
   (SMTP Authenticationの導入-Postfix編)
  第8回:メールサーバの不正利用対策その3
   (POP Before SMTPの導入−Postfix編)

HTML JavaScript Perl

とほほのWWW入門
perl日本語ドキュメント
Perlメモ
河馬屋二千年堂's Page
68user's page
KENT WEB
D [ CONTENTS ]

CPAN
  よく使うモジュール

  ・Net::Telnet
  ・Net::SSLeay
    ・Net::SSLeay(日本語)
  ・Net::FTP
    ・Net::FTP(日本語)
  ・MIME::Base64
    ・MIME::Base64(日本語)

  ・PDFJ(日本語のPDFをPerlで作るモジュール)

  よく使うライブラリ
  ・jcode.pl
  ・cgi-lib.pl
  ・mime_pls
  ・base64.pl

お役立ち

Excite 翻訳
郵便番号検索
BLINK(ブックマーク)

検索

Google
Yahoo! JAPAN
Vector
窓の杜

ドメイン

JPRS
JPNIC
JPNIC Whois Gateway

その他

PGP User's Manual
BASP21
  BASP21 Pro
OpenBlockS
OpenBlockS S/R


Page last modified: 08-Jun-04