2017年03月 / 01月≪ 12345678910111213141516171819202122232425262728293031≫02月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2012.03.05 (Mon)

hotmailにメール送ったら550 OU-001とか言って戻ってくる

サーバーからhotmailにメール送ったら
(reason: 550 OU-001 (BAY0-MC1-F00) Unfortunately, messages from xxx.xxx.xxx.xxx weren't sent. Please contact yo...ock list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.)

とか言って戻ってきた。

とりあえず書かれてるURLを開いてみると、エラー内容について説明があった。
550 OU-001はどうもhttp://www.spamhaus.orgこのサイトのブラックリストに載ってるよってことらしい。

さっそくそこ行って解除してもらうぞ!
http://www.spamhaus.org

英語無理
わからんからぐぐったところ、このスパムリスト的なサイトはIPベースでリストに入れてるらしい。

真ん中あたりのBlocklist Removalがブラックリストから削除してくれそうな気がするので、その中の
Blocklist Removal Centerをクリック。
IP入れろって出るので、エラーメールのmessages from xxx.xxx.xxx.xxx weren't の部分(サーバーのIP)をいれてチェック。

赤字がでたらそこのブラックリストに入ってますよってこと。
今回は鶏の絵のところ(CBL)で引っかかってたらしく、そこ行って同じくIPで確認すると
エラー原因とか英語で出てきた。
よくわからんけど翻訳して読んだら、SMTPにつないでHELOコマンドしたら「localhost.localdomain」が返ってきました。
localhost.localdomainはスパムに多いんであなたもスパム。
っていう判断をされたらしい。
ページ一番下のリンクをクリックするとブラックリストから削除されるけど、この問題を解決しないで削除したらまたすぐ登録されるだけですよ。って書かれていたので解決しなくては。

試しに自分のそのサーバーに自分のPCからtelnetでSMTPにつないで、HELOコマンド打ってみた。
C:\>telnet xxx.xxx.xxx.xxx 25または587
220 localhost ESMTP Sendmail Ready; Mon, 5 Mar 2012 20:31:01 +0900
HELO mail.example.com(適当でいい)
250 localhost.localdomain Hello ...

そしたらたしかにlocalhost.localdomainて出た。

どこいじったらここに反映されるのかがよくわからず、/etc/hostsとかいろいろいじって見てみたけど最終的に
sendmailなので
/etc/mail/sendmail.mcに
define(`confDOMAIN_NAME', `ドメイン名')dnl

の一行を追加して(記述が無かった)
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

して
service sendmail restart

sendmail再起動したらHELO後に返されるドメインが指定したドメインになった。

これで問題は解決したはずなので、鶏の絵のぺーじのリンクからブラックリスト削除申請して10分だか20分待って、もいっかい
Blocklist Removal CenterからIP確認。
全部緑字になったのでためしにホットメールに送信してみた。

無事受信できた。けど迷惑メールフォルダに入ってた。あとは受け取り側の問題かな。もう知らん。
スポンサーサイト


 |  20:45  |  サーバー  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.08.23 (Tue)

postfixのバーチャルドメインで同じユーザー名を使って振り分ける

postfixで頑張ってバーチャルドメイン設定が終わった後の振り分けメモ。
普通に受信するアドレス(メールボックス要)、空メール用のアドレス(メールボックス不要)それぞれ設定する場合。

/etc/postfix/virtual
/etc/aliases
を設定する。

info@aaa.com
info@bbb.com
↑受信する用アドレス
info_aaa
info_bbb
↑受信するアカウント(useraddで追加しとく)

regist@aaa.com
regist@bbb.com
↑空メール用アドレス

/var/www/aaa/mail.php
/var/www/bbb/mail.php
↑空メール処理PHP

だとした場合。

/etc/postfix/virtual
aaa.com anything
info@aaa.com info_aaa
regist@aaa.com regist_aaa

bbb.com anything
info@bbb.com info_bbb
regist@bbb.com regist_bbb

/etc/aliases
regist_aaa: "|/usr/bin/php /var/www/aaa/mail.php"
regist_bbb: "|/usr/bin/php /var/www/bbb/mail.php"

設定したら
#postmap /etc/postfix/virtual
#newaliases

で設定を更新。

これで
info@aaa.comに送ったらinfo_aaaのメールボックスに届き、
info@bbb.comに送ったらinfo_bbbのメールボックスに届き、
regist@aaa.comに送ったら/var/www/aaa/mail.phpが動き、
regist@bbb.comに送ったら/var/www/bbb/mail.phpが動く。と思う。たぶん。


 |  22:19  |  サーバー  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.06.10 (Fri)

cronだとLANGとかLC_CTYPEが反映されない

rubyのhpricot使ってたら
/usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/builder.rb:9:in `gsub': invalid byte sequence in US-ASCII (ArgumentError)
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/builder.rb:9:in `uxs'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/tag.rb:139:in `to_s'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/traverse.rb:160:in `block in inner_text'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/traverse.rb:160:in `map'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/traverse.rb:160:in `inner_text'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:480:in `block in '
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:495:in `[]'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:495:in `block (3 levels) in '
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:310:in `block in filter'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:308:in `each'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:308:in `find_all'
from /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.4/lib/hpricot/elements.rb:308:in `filter'
...

ってエラーが出てしまった。
ruby1.9だと出てしまうらしい。
処理しようとしているデータはUTF8なんだけども、ここではなぜかUS-ASCIIとして処理されてしまってエラーが出ちゃってるようだ。
対処法としては
rubyを1.8にさげるか、LC_CTYPEにutf8をセットするか・・・他にあればいいんだけどみつからなかった。

rubyとかいちいちインストールしなおすのがめんどくさかったのでLC_TYPEにutf8をセットする方にした。

(ServersMan@VPS CentOS での場合)
デフォルトの文字コード自体をutf8にした。
ついでにLC_CTYPEも設定
# vi /etc/sysconfig/i18n


LANG=ja_JP.utf8
LC_ALL=ja_JP.utf8
LC_CTYPE=ja_JP.utf8
LINGUAS="ja da_DK en de_DE"

これで直接rubyコマンドをたたいた時点では上記のgsubのエラーは出なくなった。

が、同じ物をcronで動かした場合、gsubのエラーがまた発生した。
localeで設定されている文字コードを確認してみたところ

直接打った場合
[root@localhost ~]# locale
LANG=ja_JP.utf8
LC_CTYPE=ja_JP.utf8
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=


cronでlocale > 保存先/locale.log
みたいな感じでlocaleしてみたところ
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

これじゃあエラー出るわけだ・・・
直接打った時と同じにするには実行するcrontabの中に直接記述すればいいみたい。

# crontab -e

LC_CTYPE=ja_JP.utf8
LANG=ja_JP.utf8
# locale test
* * * * * locale > /home/.sites/xx/site1/web/locale.log

出力されたlocale.log
LANG=ja_JP.utf8
LC_CTYPE=ja_JP.utf8
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

同じ感じになった!
これでエラーの出てたやつをcronに登録してもエラーが出ず、無事に動くようになった。ややこしい。


 |  00:03  |  サーバー  |  トラックバック(0)  |  コメント(0)  |  Top↑

2011.06.09 (Thu)

BlueOnyxを入れてるとURLにadminとかいれるとBlueOnyxのログイン画面が出る

ServersMan@VPSでBlueOnyxが入ってるんだけども、
仮想サイト構築してそのサイトの独自の管理画面のURLに
/admin/とか/siteadmin/とか/personal/とか/login/とか入ってるとBlueOnyxのログイン画面(http://ドメイン:444/login.php)がひらいちゃってなんでだよってなる。

httpd.confに設定あるのかと思ったらなくて、includeさがしたら
/etc/httpd/conf.d/blueonyx.conf
にあった。
このなかで

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteCond %{DOCUMENT_ROOT} !-d
RewriteRule .* http://%1:444/error/forbidden.html [L,R]
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteRule ^/admin/?$ http://%1:444/login.php [L,R]
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteRule ^/siteadmin/?$ http://%1:444/login.php [L,R]
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteRule ^/personal/?$ http://%1:444/login.php [L,R]
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteRule ^/login/?$ http://%1:444/login.php [L,R]

ってなってる部分がある。ここだ。
だいたい仮想サイト全てで/adminとか入れたらBlueOnyxのログイン画面が出ること自体が良くないので、
ここはコメントアウトしてもいいと思うのでコメントアウトしたら無事動いた。

↓どこからコメントアウトしたらいいかよくわからなかったのでこの辺にした

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^:]+)
RewriteCond %{DOCUMENT_ROOT} !-d
RewriteRule .* http://%1:444/error/forbidden.html [L,R]
#RewriteCond %{HTTP_HOST} ^([^:]+)
#RewriteRule ^/admin/?$ http://%1:444/login.php [L,R]
#RewriteCond %{HTTP_HOST} ^([^:]+)
#RewriteRule ^/siteadmin/?$ http://%1:444/login.php [L,R]
#RewriteCond %{HTTP_HOST} ^([^:]+)
#RewriteRule ^/personal/?$ http://%1:444/login.php [L,R]
#RewriteCond %{HTTP_HOST} ^([^:]+)
#RewriteRule ^/login/?$ http://%1:444/login.php [L,R]


 |  11:30  |  サーバー  |  トラックバック(0)  |  コメント(2)  |  Top↑

2010.10.20 (Wed)

WindowsだけどLinux風のパスを使いたい

ローカルでテストするとき、ローカルと実際に動かすサーバーでのパスの違いがめんどくさい。
特にwindowsだと、linuxみたいな/devとかじゃなくてC:\とか全然違う。

ローカルでパス合わせて、アップロード時にサーバーのパスに置換すればいいんだがそれがまためんどくさい。
特にPerlの先頭の#!/usr/bin/perlとか(なんていう呼び名だっけ?)、ローカル・サーバー毎に書き換えるのめんどくせえと何度思ったことか。

windowsでは、シンボリックリンクを使うとこのドライブ名のない/usr/bin/perlとかのパスでも全然使えるみたい。

早速コマンドプロンプトからシンボリックリンクを作る。
コマンドはmklink。これ打ってエンターで使い方が出る
C:\>mklink
シンボリック リンクを作成します。

MKLINK [[/D] | [/H] | [/J]] リンク ターゲット

/D ディレクトリのシンボリック リンクを作成します。既定では、
ファイルのシンボリック リンクが作成されます。
/H シンボリック リンクではなく、ハード リンクを作成します。
/J ディレクトリ ジャンクションを作成します。
リンク 新しいシンボリック リンク名を指定します。
ターゲット 新しいリンクが参照するパス (相対または絶対)
を指定します。


例えば、「C:\xampp\perl\bin\perl.exe」を「/usr/bin/perl」のパスでperlが使えるようにする。
手順は↓。

管理者権限でコマンドプロンプトを起動

c:\に作るのでc:\直下に移動
>cd c:\


bin/perlの部分は一緒だから、/usr→C:\xampp\perlのようにリンクする。
ディレクトリのリンクだから/Dで。
c:\>mklink /D usr C:\xampp\perl
usr <<===>> C:\xampp\perl のシンボリック リンクが作成されました


試しにそのまま/usr/bin/perlにアクセスしてみる。
-hでperlのヘルプ表示。
c:\>/usr/bin/perl -h

Usage: /usr/bin/perl [switches] [--] [programfile] [arguments]
-0[octal] specify record separator (\0, if no argument)
-a autosplit mode with -n or -p (splits $_ into @F)
-C[number/list] enables the listed Unicode features
-c check syntax only (runs BEGIN and CHECK blocks)
...

アクセスできたよー。
ちゃんとリンクできてなかったら
c:\>/usr/bin/perl -h
指定されたパスが見つかりません。

ってでる。
こんな感じで本番環境のサーバーに合わせてシンボリックリンクを貼っとけば、
もうperlの#!/usr/bin/perlなんかも編集せずそのまま使える!便利!
助かった!

存在しないディレクトリを挟む場合は、適当な場所にリンク用のディレクトリでも置いとけばいいかな。
リンクの削除は、rdコマンドか、エクスプローラから矢印が付いてるリンクアイコンを消せばいい。
ファイルのシンボリックリンクも合わせて使えばなんとでもなりそうだ。

参考
Windows Vista/Windows Server 2008でシンボリック・リンクを作成する


 |  13:09  |  サーバー  |  トラックバック(0)  |  コメント(0)  |  Top↑
 | BLOGTOP |  NEXT
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。