自宅サーバ・VPS」カテゴリーアーカイブ

自前メールサーバで、iPhoneにメール着信のプッシュ通知を受け取る

CentOS6+Postfix+Dovecotな環境で自前メールサーバを運用している。
表題のようなことはできないと思っていたが、やってみたら簡単にできた。
日本語の扱いに問題があると指摘しているサイトもあるが、試した限りでは問題は見つけられない。
バージョンアップで修正されたということだろう。

概要

Z-PushなるPHPソフトを利用する。
デーモンとして起動するようなものを想像していたが、PHPなのは驚いた。
どういう仕組みなのか興味を持ったので、いずれ勉強したい。

設置作業

公式サイトからダウンロードして展開し、サーバの適当な場所に配置し、Apacheが読み書きできるように所有者とパーミッションを設定。
取説には/usr/share/z-pushに設置するように書かれていたが、Apacheの扱うものはまとめておきたいので、ここでは/var/www/z-pushに配置した。今のところ特に問題は起きていない。

次にconfig.phpを設定。
ここでは

 define('TIMEZONE', 'Asia/Tokyo');

 define('BACKEND_PROVIDER', 'BackendIMAP');

の2カ所を変更。
最後にApacheの設定。ここではhttpd.confに以下を追記した。

Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php
<Directory "/var/www/z-push">
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag magic_quotes_runtime off
php_flag short_open_tag on
</Directory>

これでApacheを再起動したら、
http://[ドメイン]/Microsoft-Server-ActiveSync
にアクセスし、

GET not supported
 This is the Z-Push location and can only be accessed by Microsoft ActiveSync-capable devices

とか書かれたエラーページが表示されれば、ここまでは成功。

iPhoneの設定

設定アプリからメールアカウントを追加、アカウントの種類はExchangeを選択。
メールアドレスやIMAPのパスワードを求められるままに入力。
認証できませんとのエラーが出るが、とにかくアカウント設定を保存。
追加したアカウントの設定を開き、詳細設定からSSLの使用を外す。
これでエラーが出なくなり、メールアプリでメールの確認が可能に、そしてプッシュ通知を受け取る設定も可能になる。

Imager::AnimeFaceをCentOS6にインストールしてみる

公式の情報に従って、
nvxs-1.0.2.tar.gz
Imager-AnimeFace-1.02.tar.gz
をダウンロードし、nvxsを
./configure
make install
Imagerはすでに入れてあるので、次にImager::AnimeFaceを
perl Makefile.PL
make install

これでできたと期待するも、
perl example1.pl
してみるとエラーと対面
Can’t load ‘/usr/local/lib64/perl5/auto/Imager/AnimeFace/AnimeFace.so’ for module Imager::AnimeFace: libnvxs.so.0: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib64/perl5/XSLoader.pm line 70.
at /usr/local/lib64/perl5/Imager/AnimeFace.pm line 21.
どうやらlibnvxs.so.0なるものがロードできないらしい。
インストールログからブツの場所を確認すると、/usr/local/lib/に入っていた。

どうやらこのパスが共有ライブラリをロードするときの検索対象に入っていないのではないだろうか。
参考サイトに従って/etc/ld.so.confを見ると、/etc/ld.so.conf.d/の中身をロードしているらしいので、
/etc/ld.so.conf.d/AnimeFace.conf (名前は適当でいい)を作成し、内容は
/usr/local/lib
の1行だけ。
ldconfig
を実行して変更を有効に。

今度こそ
perl example1.pl
動いた。

ownCloudにAppを追加する

ownCloudの設置について書かれているサイト等を見ると、最初から入っているAppの他に自分で追加もできるようなことが書かれている。
実際、webインタフェイスの画面にもApp追加ボタンがある。
ここで、WordPressのようにインタフェイスから追加できると考えていた自分は、追加の仕方がわからずにいた。

結局、ダウンロードして解凍してサーバのowncloud/appsにアップするだけだったとさ。

カゴヤ・クラウドVPSを契約してみる(3)

WordPressがVPSで動作するようになったので、このブログの公開を新サーバの仕事としてみた。
と、PerlのImagerを使っているCGIが動作していないことに気づいたので、入れ…ようとしたらcpanが入ってなくてびびる。
さっそくyum install perl-cpanしたら、No package perl-cpan available.
おかっしいなーと思ったら、perl-CPANでしたとさ。

cpanが入ったのでcpan -i Imagerしてみたらエラー。
なんとgccがないとのこと。
しかたなくyum install gcc
さらにyum install perl-YAML.noarch
その後CPANからモジュールを入れまくり、一通りのCGIが動くようになって一安心。

設定したいことはおおむね終了。
思っていたよりだいぶ楽だった

カゴヤ・クラウドVPSを契約してみる(2)

nanoインストール

設定をいじったりしていこうとしたら、nanoが入ってなかった。
初心者向けと言われようと好きなものは好きなので、さっそくyum install nano

ホスト名設定

インスタンス作成時にホスト名が与えられるとのことだったが、コンパネ上で表示が見つけられない。
hostnameコマンドで確認できた。

とはいえ目的は自宅サーバの機能移転なので、現在利用しているVALUE DOMAINのアドレスでアクセスできるようにする。
ドメイン名の管理をカゴヤに移すという手もあったが、今回はVALUE DOMAIN内でダイナミックDNSを解除してVPSのIPにバインドした。
数分後、iPhoneのLTE回線にてVPSにドメイン名でアクセスできることを確認。便利な時代になったものだ。

apache設定

初めからインストールされているので、設定ファイルをいじくり倒して終了。
元の自宅サーバよりもCPUが有利になった代わりにメモリは少なくなったので、じゃっかんチューニングしたつもり。

MySQL設定

初めからインストールされている。とりあえずセットアップを済ませ、自動起動するように設定する。

次に、自宅サーバからデータベースの内容をコピーする方法を考える。
これは初めての経験。
とりあえず自宅サーバでmysqldump -u root -p -x –all-databases > 保存先
作成されたファイルをVPSに送り、mysql -u root -p < ファイル どうやら日本語の文字列も含めてうまくいったようだ。便利。

WordPress設置

この段階で、WordPressがVPSに移行できるのではないかと期待する。
さっそく、ものぐさなので自宅サーバからWordPressのディレクトリを全部VPSにコピーしてみる。
root権限でtarするとパーミッションとかも保持されて便利。
これで動くといいなと思いつつ、さっそくアクセスしてみる。
「データベース接続確立エラー」
ちぇー。

いろいろ考えたのだが、ふと気になってコマンドラインからWordPressのユーザでmysqlにログインしてみようとするとエラーになることに気づく。
どうやら、MySQLの内容コピー時、ユーザー権限情報は保持されないようだ
参考サイト
指示通り自宅サーバでmysqldump -u root -p -x –allow-keywords mysql > 保存先
作成されたファイルをVPSに送り、mysql -u root -p mysql < ファイル これでmysqldを再起動すると、期待通り動作した。 とりあえずここまで。 なお、この段階で、懸案だったメモリの使用量がコンパネ読みで200MBを超える。

カゴヤ・クラウドVPSを契約してみる(1)

カゴヤ・クラウドVPSを契約してみた。
いろいろ試して遊びつつ、現在使用している自宅サーバの機能を移行できるかどうか検討していく。

登録

Webフォームに必要事項を記入すると、即座に(おそらくは自動返信)メールが届く。これで登録完了。

サーバの作成

コントロールパネルにログインして、インスタンス作成。
ここでは、最も安いタイプAでLAMPパックを作成してみた。
1分程度で処理が完了。
コントロールパネルから起動できるようになり、グローバルIPが割り振られる。

サーバにログインしてみる

サーバを起動するとSSHでログインできるようになる。
Tera TermでIPを指定してrootパスワードを入力すれば接続完了。

ここまで、現在の自宅サーバにCentOS6をインストールして別マシンからSSHログインができるようになるまでにかかった時間を考えると、楽すぎて驚くしかない。

操作してみる

操作にタイムラグがあるのではないかと心配していたが、気にならないレベル。
どうやらすでにhttpdとかが起動している状態になっているようなので、ab -n 1000 http://localhost/してみる。

まずは現在の自宅サーバ(CPU:AMD E-350)

Server Software: Apache
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 321 bytes

Concurrency Level: 1
Time taken for tests: 1.381 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 485000 bytes
HTML transferred: 321000 bytes
Requests per second: 723.87 [#/sec] (mean)
Time per request: 1.381 [ms] (mean)
Time per request: 1.381 [ms] (mean, across all concurrent requests)
Transfer rate: 342.85 [Kbytes/sec] received

続けてVPS(CPU:Xeon E5640)

Server Software: Apache/2.2.15
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 5039 bytes

Concurrency Level: 1
Time taken for tests: 0.396 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 5237000 bytes
HTML transferred: 5039000 bytes
Requests per second: 2526.71 [#/sec] (mean)
Time per request: 0.396 [ms] (mean)
Time per request: 0.396 [ms] (mean, across all concurrent requests)
Transfer rate: 12922.23 [Kbytes/sec] received

VPSの圧勝。
仮想化している分のオーバーヘッドがあって、Xeonといえど限度があるかと心配していたが、今より速いなら文句なし。

とりあえずここまで。

Yahoo!BBで自宅サーバから外部宛にメールを送る

数年ぶりに自宅サーバを作って遊んでいる。やはり外部宛にメールが送信できないと楽しくない。

最近はOP25Bとかいう面倒なものがあるが、外部宛メールはSubmission Portである587を使って、プロバイダのSMTPサーバにSASL認証を通し、中継してもらうように設定すればOK。なはずだったが…

症状

一部のアドレスからは送信できるが、他のアドレスからは送信できず以下のエラーメールが返ってくる。

 host ybbsmtp.mail.yahoo.co.jp[183.79.29.230] said: 521 ybbsmtp.mail.yahoo.co.jp closing transmission channel. This email address must be verified first before you can use it for Sender/From field. (in reply to MAIL FROM command)

エラーメールから分かるとおり、プロバイダはYAhoo!BBである。

原因

調べてみると、Yahooのウェブメールの画面で送信元アドレスをいちいち登録しないといけないらしい。めんどくさっ
画面を開いてみると、送信に成功したアドレスはすでに録されていた。そういえば大昔試しに登録して見た気もする…
そして当然、ここに登録していないアドレスではエラーが返ってきていたわけだ。

ならば新しい送信元アドレスを登録すればいいのだが、将来さらにアドレスを追加することを考えると、う~ん…

というか、よく見たらybbsmtpでリレーしたメールのヘッダにヘンなものがついてる。

X-Apparently-From: <xxxxxxxx@yahoo.co.jp>

認証に使ったYahoo! BBのアドレスが大公開されてる!

もはや使い続ける気がわかない。

ちなみに

最初はPostfixの設定に原因があるだと思い、少し検索したけど分からなかったのでオライリーの本を少し読んだ

結果から言えば関係なかったのだが、いい復習になったので、アフィリエイトリンクとかいうものを張ってみる。

対処

MyDNS.JPで利用者向けに当面のあいだメールリレーサービスが提供されているので、ここに中継してもらえばOK。何でこれまで知らなかったんだ…

「当面のあいだ」というのが気になるので次の手を考えたい。この機会にちょっと探してみたが、自宅サーバのメールをリレーしてくれるサービスは他に見つからなかった。有料でも月1000円くらいまでは払ってもいいと思うのだが、やはりニッチな需要なのか…

CentOS6+MySQLでphpMyAdminの日本語が文字化けする

表題の通り、MySQLのデータベースに日本語のレコードを保存して、それをphpMyAdminから見ると日本語が文字化けしていた。

症状

文字コードをUTF-8に設定したコンソールでは問題なく表示される。Perlからuse utf8;してDBIで接続しても問題ない。phpMyAdminから見るときだけ文字化けする。当然、ブラウザが文字コードの判定を間違えている状態でもない。

解決

my.cfgにdefault-character-set=utf8を記述。

注意点は、CenOS6でデフォルトで入っているMySQLは5.1でありこと。5.5以降で使うcharacter_set_server=utf8では不可。