前回、Webメールアプリ RoundCube その2
にて、メールサーバー機能がないため、導入が頓挫していましたので
これを機会に、再度ローカルメールサーバーを構築してみました
とはいっても、今回は以前のように暗号化などは行っていません
前回のローカルメールサーバー構築については
POP形式で行いました
そのときのメモがわりに書いたのが
メールサーバー構築(Postfix+Dovecot)
から載っています
カテゴリ Postfix+Dovecot
にいろいろと書き込んでありますので
もしよければ参考にしてみてください
それにしても、ブログでメモしておくと
後々同じようなトラブルが起きたとき対処しやすくなりますので
これからも続けていこうと思います
さて、話がそれましたが
今回は、シェルスクリプトを使ってのセットアップとなります
とはいっても、まだ if や switch などを使った制御ではなく
ただ単にコマンドの羅列程度です
参考にさせていただいたのは、前回のときと同じサイトです
ただし、今回の設定したのは fedora13 32bit
メールサーバー構築(Postfix+Dovecot)
のほうになります
ある程度はスクリプトでできたのですが、
どうしてもコマンドを入力する場面はでてきます
まぁそれは今後の課題ということで、まずは今回の実験結果です
それでは、今回作成したスクリプト
setup_fedora_mail_server.sh
の内容です
途中に cp コマンドがあるように
あらかじめ同ディレクトリ内に
procmail設定ファイルの procmailrc
そして
procmailログローテーション設定ファイルの
procmail
を用意する必要があります
------------------------------—-
#!/bin/bash
#yum -y install yum-fastestmirror
#yum -y install nautilus-open-terminal
#/etc/rc.d/init.d/yum-updatesd stop
#yum -y remove yum-updatesd
#yum -y install yum-cron
#chkconfig yum-cron on
yum -y install postfix
#7行めに追記(自FQDN名を指定)
sed -i “77i myhostname = mail.linuxwiki.com” /etc/postfix/main.cf
#88行めに追記(自ドメイン名を指定)
sed -i “85i mydomain = linuxwiki.com” /etc/postfix/main.cf
#102行めに追記(ローカルからのメール送信時の送信元メルアド@以降にドメイン名>を付加)
sed -i ‘102i myorigin = $mydomain’ /etc/postfix/main.cf
#perl-TimeDate のインストール
yum -y install perl-TimeDate
#外部からの受信を許可
sed -i “s/inet_interfaces = localhost/inet_interfaces = all/g” /etc/postfix/main.cf
#167行目、行末へ , $mydomain を追記
#($は特殊記号なのでエスケープが必須になる)
sed -i “167s/\$/, \$mydomain/” /etc/postfix/main.cf
#423行目追記(メールボックスの形式をMaildir 形式へ)
sed -i “423i home_mailbox = Maildir/” /etc/postfix/main.cf
#575行めにメールサーバーソフトの隠蔽を追記
sed -i “575i smtpd_banner = \$myhostname ESMTP unknown” /etc/postfix/main.cf
#最下行へ追記
#SMTP-Auth 設定
echo -e ‘smtpd_sasl_auth_enable = yes’ >> /etc/postfix/main.cf
echo -e ‘smtpd_sasl_local_domain = $myhostname’ >> /etc/postfix/main.cf
echo -e ‘smtpd_recipient_restrictions =’ >> /etc/postfix/main.cf
#行頭に空白がはいっていないと、なぜかエラーになるので注意
echo -e ‘ permit_mynetworks’ >> /etc/postfix/main.cf
echo -e ‘ permit_sasl_authenticated’ >> /etc/postfix/main.cf
echo -e ‘ reject_unauth_destination’ >> /etc/postfix/main.cf
#受信メールサイズ設定
echo -e ‘message_size_limit = 20485760’ >> /etc/postfix/main.cf
#saslauthd 起動
/etc/rc.d/init.d/saslauthd start
chkconfig saslauthd on
sed -i “s/saslauthd/auxprop/g” /usr/lib/sasl2/smtpd.conf
mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/
sed -i “453i mailbox_command = /usr/bin/procmail” /etc/postfix/main.cf
## procmail procmailrc に関してはcp コマンドで作成済みファイルをコピー
cp -p procmailrc /etc/
cp -p procmail /etc/logrotate.d/
/etc/rc.d/init.d/sendmail stop
chkconfig sendmail off
#メールサーバー切り替え
#2を選択すること
alternatives –config mta
/etc/rc.d/init.d/postfix start
chkconfig postfix on
#Dovecot の導入
yum -y install dovecot
#設定ファイル変更
sed -i “21i protocols = imap imaps pop3 pop3s” /etc/dovecot.conf
sed -i “226i mail_location = maildir:~/Maildir” /etc/dovecot.conf
/etc/rc.d/init.d/dovecot start
chkconfig dovecot on
--------------------------------------------------—
ここまでで、大抵の設定はできるのですが
メールユーザの設定等は
自力で入力することになります
これはまだ、ログインなどの処理スクリプトをかけないのが原因です
このため、今回はメールユーザをそのまま fedora
パスワード関連に関しては
ローカル メールサーバー構築
を参考に
echo “hebereke” | saslpasswd2 -p -u linuxwiki.com -c fedora
としました
ユーザ登録のスクリプト化については
”簡単なユーザアカウント登録するシェルスクリプト’
とか
Linux処理の自動化 (GUI処理含む)
などを参考に、つくってみようと思います
今回の設定では、暗号化などは行っていません
このため、セキュリティには問題がありますので
実用はこのままではできません
次回は、前回中断してしまった RoundCube の導入を行おうと思います
投稿者: Snowpool
sedコマンドの練習(追記偏)
引き続き、sed コマンドの練習です
前回は、sed コマンドを使って
行頭の文字の追記、削除を行いました
今回は、行番号を指定して追記してみます
今回も同様に、前回使ったファイルを使用します
今回は 4行目に credit test という文章を追記します
この行指定ができるようになると、後々設定ファイルをスクリプトで
設定するときに役立つと思います
【 sed 】 文字列の置換,行の削除を行う を参考に
行ってみました
vi エディタで行番号を調べるには
:set number で表示させることができます
このため、あらかじめ追記したいところを事前に調べておけば
次回からスクリプトで設定変更ができたりります
では、今回の実験です
sed -i “4i credit test” sedtest.txt
これで、4行めに追記されます
iの前に指定した文字の行数に書き込めます
また、今回追加した行がいらないと思ったとき
行ごと削除するなら
sed -i ‘5d’ sedtest.txt
で削除することができます
これも同じようなかんじです
d の前に記述した行が削除されます
また、複数の行指定も可能です
sed -i ‘1,9d’ sedtest.txt
で1~9行目が削除できますし
前回の先頭に挿入と組み合わせれば
# でコメントアウトする行を指定することも加納です
sed -i ‘1,4s/^/# /” sedtest.txt
とすれば、1行めから4行めまでコメントアウトできます
逆に、コメントアウトを解除したいのであるなら
sed -i “1,4s/^#[ ]*//” sedtest.txt
で変更できます
sedを使っての編集
にいろいろなパターンが載っていましたので
これらを使ってスクリプトを作っていこうと思います
sedコマンドの練習
再度、Linux のメールサーバー構築の必要性がでてきたので
次回からの作業効率化のために
sed コマンドを勉強し
セットアップスクリプトを作成しようと思います
sed コマンドは -i オプションを使うことで
ファイルに変更を反映することができます
この機能と、シェルスクリプトをまぜれば
毎回 vi エディタで設定をしていくという手間が省けるはずです
まずは、簡単な
sed コマンドの実験からいってみましょう
まず、練習用に
vi sedtest.txt
で練習ファイルを作成します
次に内容ですが
aaaaaaaaaaaaa
bbbbbbbbbbbb
cccccccccccccc
ddddddddddddd
eeeeeeeeeeee
fffffffffffff
ggggggggggggg
というように適当に書きます
では、このファイルの行頭にコメントアウトをする # 記号を追記します
sed -i “s/^/## /” sedtest.txt
これを実行すると、ファイル内の行頭に
##
が追記されます
結果をみてみましょう
## aaaaaaaaaaaaa
## bbbbbbbbbbbb
## cccccccccccccc
## ddddddddddddd
## eeeeeeeeeeee
## fffffffffffff
## ggggggggggggg
となります
^は、行頭という意味になります
このため、
“s/^/## /”
は、行頭に ## を書き込む
という意味になっています
空白を書き込みたいのなら
sed -i “s/^/ /” sedtest.txt
とすれば空白が挿入されます
また、行頭のスペースを削除したいときには
sed -i “s/^[ ]*//” sedtest.txt
で削除できます
今回は、参考サイトとして
sedを使っての編集
と
【 sed 】 文字列の置換,行の削除を行う
を参考にさせていただきました
Webメールアプリ RoundCube その2
ひきつづき、今回は MySQL での設定になります
まず、MySQL root になるために
/opt/lampp/bin/mysql -uroot -p
で
パスワードを入力し
mysql>
という画面になります
CREATE DATABASE roundcubeemail CHARACTER SET utf8;
でデータベース作成します
正確には、
CREATE DATABASE roundcubeemail
でデータベース作成し、
CHARACTER SET utf8
が文字コードを設定しています
さらに
GRANT ALL PRIVILEGES ON roundcubeemail.* TO roundcube@localhost IDENTIFIED BY ‘pass’;
でユーザ権限の設定をします
ちなみに、今回作成したのは
GRANT構文の実行権限をもたないユーザの作成をしているようです
基本的に、MYSQL の文字は大文字でかかれますが
小文字でも問題はありません
ただ、見やすさを考えると、大文字にしたほうがよいでしょう
そして
FLUSH PRIVILEGES;
で設定を反映します
これはファイルの変更をして、保存みたいなかんじです
ここまで実行したら
quit
でmysql の画面を抜けます
ここまでの設定で
データベース名
roundcubeemail
ユーザ名
roundcube
パスワード
pass
という設定になりました
次に、テーブルを作成するのですが
これはソースアーカイブを解凍したときにできた
mysqlinitial.sqlというファイルを使えば
楽に設定できるようです
SQlの設定には、SQLファイルを使うことで
SQLを実行する手間が省けるようです
Linux でコマンドで1つ1つ設定していくのを
シェルスクリプトに記述しておいて
スクリプト実行だけですませるのに近いのかもしれません
設定は
cd /opt/lampp/htdocs/roundcube/
で移動してから行います
/opt/lampp/bin/mysql -uroundcube -p roundcubeemail < SQL/mysql.initial.sql
でパスワードに pass を入力します
たぶん、絶対パスを指定すれば、一度ディレクトリ移動をしなくても
設定できそうですが....
ちょっと興味がでてきたので、.sqlファイルで検索してみました
サーチマンさんのサイト
に解説が載っていました
今回の設定に使用した mysql.initial.sql
の中身をみるには
vi SQL/mysql.initial.sql
とします
中身をみるとわかるのですが
シェルスクリプトのように、コマンドの実行が記述されているファイルです
細かく調べたい方は、コマンドの内容をコピペし
google で検索してみるといろいろとでてきますので
興味のある方は行ってみてください
今回、作成した MySQL のテーブルを確認するには
/opt/lampp/bin/mysqlshow -uroundcube -p roundcubeemail
を実行し
パスワードに pass を実行することでみることができます
ここまでで、データベースの設定は終了です
次回から、ようやく設定ができると思ったのですが
残念ながら、今回の日経Linux では
Amazon EC2 での設定は載っているのですが
自宅でのXAMPPでのメールサーバー構築が載っていません
このため、アプリを導入できても
実験ができないという状況です
以前、POP3 のメールサーバーは構築したことがあるのですが
今回使用する IMAP4 では構築経験がありません
このため、まずは今回の実験環境である
fedora 13 32bit の仮想環境をもう一つ用意し
ローカルメールサーバを作ってみようと思います
OP25B対策に関しては
各プロバイダーにより設定がかわる上に
ルーターによっても変わるので
再現性の難しさから今回は省きます
Webメールアプリ RoundCube
昨日、発売された日経 Linux 2011-03 に
Webメールアプリ RoundCube の導入が載っていましたので
さっそく実験してみようと思います
今回も、以前導入した XAMPPで実験をしてみます
XAMPPの導入に関しては
XAMPP で実験
XAMPPのセキュリティ設定に関しては
XAMPP で実験 2
を参考にしてみてください
ちなみに
ただし、このRoundCube はPOP3ではなく
IMPA4 で動くので、メールサーバにメールが蓄積していきますので
サーバーのリソースをその分消費しますので、
サーバーの負荷は大きくなります
でも、この RoundCube はYahooメールや
G-Mail のようなかんじで使えるので
とても便利なのではないのでしょうか?
なにはともあれ、実験開始してみます
まず
管理者権限になり
/opt/lampp/lampp start
で
XAMPPを起動
次に、必要な RoundCube のアーカイブを用意します
ダウンロードするなら
http://roundcube.net/download
でダウンロードできます
ちなみに、今回は付録DVDに収録されているので
これを使います
cp -p /media/LIN201103/article/rensai_server/roundcubemail-0.5.tar.gz $HOME
これで用意ができました
次にファイルを展開し、XAMPP のルートディレクトリに移動します
面倒なので
tar zxvf roundcubemail-0.5.tar.gz -C /opt/lampp/htdocs/roundcube
としましたがエラーになるので
tar zxvf roundcubemail-0.5.tar.gz
mv roundcubemail-0.5 /opt/lampp/htdocs/roundcube
と1つずつ実行しました
さらに、設定ファイル、ログの書き込みのため
所有権を変更
cd /opt/lampp/htdocs/roundcube/
chown -R nobody temp
chown -R nobody logs
ここまで完了したら、次にデータベースを作成します
続きは明日以降になります
Ustream にちょっと興味持ちました
日経 Linux 2011-02 の16ページに
Ustream のアカウントの取得、そして
配信について載っていました
こういうサービスを使うことで
個人でいろいろとできそうです
最近は時間がないため、まだ実験していませんが
春先には時間がとれそうなので、いろいろと実験してみようと思っています
Eclipse で文字の検索
日経Linux 2011-02 で Android プログラミングの特集がありました
基本的に、ソースコードなどは雑誌に載っているし
サンプルコードなども
ほぼ付録に収録されているので、そこまで困ることはありませんでした
しかし、ソースコードを変更し
別のアプリにしようとする記事を実験しようとしたところ
どのあたりに記述されているのかがわからず
さがすのも面倒なので、いっそ簡単に検索できないか?
ということで調べてみました
eclipseエディタでの文字列検索について
にその答えが載っていました
Ctrl + f
これで、検索するための画面がでてきます
Android アプリの開発
日経Linux 2011 2月号を参考に、
Android アプリを開発する勉強をしています
興味深いものがあったので、メモしてみました
お財布ケータイ機能のライブラリー、技術資料をまとめた
android?adhoc?libs.zip
を
http://ap.pitsquare.jp/pc/developers/download.html
からダウンロードできます
ubuntu 10.10 で日本語セットアップヘルパを使って
zip を入れてある場合、
文字化けせずに解凍することができました
解凍は
unzip android_adhoc_libs.zip
で解凍できます
解凍してできたディレクトリの中にある
UFCUtility_1.0.1.jar
が必要となるようです
ファイルの場所は
解凍してできた
Android端末向けアドホック機能対応アプリ開発資料というディレクトリの中の
モバイルFelicaクライアントユーティリティライブラリ for Android
の中となります
さらに
付録DVDに収録されていたものをコピーするため
cp -p /media/LIN201102/article/toku2/AppListActivity.zip $HOME/nikkei_Linux/2011-02/
でHDDにコピー
そして、同様に解凍します
unzip AppListActivity.zip
で解凍
必要なファイルを任意のディレクトリに移動するために
今回は
mkdir $HOME/Android
cp -rp $HOME/nikkei_Linux/2011-02/AppListActivity $HOME/Android
cp -p $HOME/Android端末向けアドホック機能対応アプリ開発資料/モバイルFelicaクライアントユーティリティライブラリ for Android/UFCUtility_1.0.1.jar $HOME/Android
でまとめておきます
ここから後は、雑誌どおりにすすめるとできました
ただ、どうしてもエミュレータではアプリの起動まで
しか確認できません
近々、IS04 を購入予定なので、実機検証をそのときに
行ってみようと思います
XAMPPで MySQL
PHP と MySQL を組み合わせ、Webアプリをつくる勉強を始めました
まず、簡単に実験環境を作成するために
XAMPP を導入し
この環境で まずは mySQL から勉強開始です
XAMPP で起動するには
ubuntu なら
sudo /opt/lampp/lampp start
で起動します
続いて、MySQL の画面に入るには
/opt/lampp/bin/mysql -uroot -p
で MySQL の root パスワードを入力し、ログインします
勉強する教材としては
以前、購入した 動画でわかるシリーズの
MySQL の項目、そしてMySQL初心者入門講座、
あとは google での検索です
最新のAndroid SDKと adb その2
adb の設定をしましたので、忘れずにメモ
今回、使用したのは
Android SDK r08 linux です
adb が収録されているのは
/android-sdk-linux_x86/platform-tools
の中にありますので
ここへパスを通します
私の場合。bin の中にありますので
vi .bashrc
で設定ファイルを開き、ファイルの最下行へ
PATH=$PATH:$HOME/bin/android-sdk-linux_x86/platform-tools
を追記します
その後、設定を有効にするために
source .bashrc
を実行します
これで、adb コマンドを実行可能になります
続いて、仮想化環境で作成した androidx86 へ接続します
まず、virtualbox の android x86 のIPアドレスを調べます
私の場合、ローカルIPは 192.168.10.177でした
IP アドレスがわかったら
adb connect を使う方法
を参考に
adb kill-server
adb start-server
adb connect 192.168.10.177:5555
これで接続します
接続確認するのには
adb devices
を実行
これで
List of devices attached のところに、接続しているデバイスが表示
されます
ちなみに、今回の私の環境では
192.168.10.177:5555 device
と表示されました
ここまで準備できたら、いよいよアプリ起動です
eclipse を起動し 作成した アプリのプロジェクトを選択
そして、アプリを実行しようとすると
どのデバイスで起動するかを聞かれますので
先ほど設定した device を選択します
これで、Virtualbox でアプリが起動します
Eclipse で起動したアプリを終了するには
ESCキーを押すことで終了できます
接続を切るには
adb disconnect IPアドレス
となります
今回なら
adb disconnect 192.168.10.177:5555
となります