ローカルメールサーバー(ubuntu 11.10)構築メモ その2

ローカルメールサーバー(ubuntu 11.10)構築メモ
のつづきになります
今回、mail server + CGI を作りたいので
次に apache2 をインストールします
apt-get -y install apache2
でインストールします
次に、設定ファイルを書き換えていきます
sed -i “27s/OS/Prod/” /etc/apache2/conf.d/security
sed -i “39s/On/Off/” /etc/apache2/conf.d/security
sed -i “218s/^#//” /etc/apache2/mods-enabled/mime.conf
sed -i “11s/\$/\ ExecCGI/” /etc/apache2/sites-available/default
sed -i “10s/\$/\ ExecCGI/” /etc/apache2/sites-available/default
sed -i “11s/None/All/” /etc/apache2/sites-available/default
ln -s /usr/bin/perl /usr/local/bin/perl
最後に apache2 を再起動し設定を反映します
/etc/init.d/apache2 restart

ローカルメールサーバー(ubuntu 11.10)構築メモ

メールサーバー関連の勉強、そしてbacktrack を使って通信関連の
セキュリティの勉強をするため、ローカル環境でのみ使用する
メールサーバーを構築してみます
以前、fedora13 で 構築したことがありますが
今回はubuntu 11.10 を Mware Player で作成していきます
参考サイトは
Server World Ubuntu 11.04
です
少し違いはあるもののなんとかなりそうなので、そのまま実行します
ちなみに、公開する場合、メールサーバーの場合、Webサーバーよりも
面倒で ポート開放だけではなく
OP25B 対策や、プロバイダによってはメールアドレス登録も必要になるため、
これは省略し、ローカル限定のものを作成します
DHCPを有効化していますので
最初にIPを調べますが
さすがにいちいち調べるのは面倒なので、LANの状態をスキャンする
iPod touch アプリ Snap
を使い、IPを調べます
これでIPを取得したら、一度ゲストマシンに切り替え
sudo apt-get -y install ssh
でssh が使えるようにします
これで、接続可能になるので、あとは
Linux なら
Ctrl + Alt + t
で端末を開いて ssh接続すれば、リモート操作できます
(本来は、公開鍵認証にしたり、root接続禁止設定しますが、今回は省略)
毎回 sudo 使うのは面倒なので、
sudo passwd root
で root ユーザになれるようにして、以降は root ユーザで行います
次に、管理ツールを
apt-get -y install sysv-rc-conf
でインストール
sysv-rc-conf 
で起動して、終了するには q を押します
次に、
apt-get update
でリストを更新(システム更新じゃないので注意)
apt-get updrade
でシステム更新します
また、vim が簡易版のため使いにくいので
apt-get install vim
でvim をインストールします
現在、通信回線が遅いため、続きはまた明日行います

ページング処理 その2

続いて、前ページと後ろページの表示です
ページが膨大な数になると大変になってくるので、
DBとPHPを合わせると簡単表示できるようになります
<ul class=”paging”>
<li><a href=”index.php?page=<?php print($page -1); ?>”>
前のページへ
</a></li>
<li><a href=”index.php?page=<?php print($page +1); ?>”>
次のページへ
</a></li>
</ul>
ちなみに、ulタグですが
箇条書き 【タグ】:HTML入門
http://kumacrow.blog111.fc2.com/blog-entry-247.html
にかかれているように
箇条書きするためのタグです
ul で囲ったところが、箇条書きスペースとなり
li のところがその箇条書きになります
ただし、このままだと、pageがマイナスになることがあり、エラーになります
回避するため
pageが0以下にならないようにたするため
max()を使います
こはの関数は
指定した2つの数値のうち大きい方を適用するというもの
なので
$page = max($page,1);
とすれば
マイナスにならないというようになります

android で phonegap

web アプリをネイティブアプリに変換できると聞いたので
さっそく挑戦しました
しかし、情報そのものがすでに古いらしく
ver 0.96 で情報が載っていますが
いまの最新版では
ver 1.5 となっています
このため、twitter4j のときとおなじように、いくつか変更されているようなので
そのままでは動きません
そういえば、CakePHP のときにも
ver 1,3 と ver2.0 で仕様変更がされ、これが原因で悩みました
cordova.jar android phonegap
で検索すると情報がでてくるので、
これで少し検索してみます
現在、PhoneGap -> Cordova [Android]
でヒントを発見しました
どうやら、Android は更新が早いため
英語で検索したほうがよさそうです

ページング処理

ページング処理をつくると、次のページというような表現ができます
これを使うと、主にランキングとか、RPGのゲームのアイテムの表示とかに
使うことができます
これは、mysql の LIMIT を指定することで、ページ表現をすることができます
LIMIT に指定した数値が、1ページに表示される件数となります
$recordSet = mysql_query(‘SELECT m.name, i.* FROM
makers m, my_items i WHERE m.id=maker_id ORDER BY id DESC’);
これを
$recordSet = mysql_query(‘SELECT m.name, i.* FROM
makers m, my_items i WHERE m.id=maker_id ORDER BY id DESC 
  LIMIT 5‘);
これで、5件のみの表示となります
そして、HTMLの部分に、次のページへのリンクを作成します
<ul class=”pading”>

  • <a href=”<span style=”color:#FF0000″>index.php?page=2</span>”>次のページへ</a></li>
    </ul>
    ちなみに、ulタグですが
    ul で囲ったところが、箇条書きスペースとなり
    li のところがその箇条書きになります
    これで、次のページへというリンクができます
    ただし、これだけでは、クリックしても変化ありません
    なので、PHPで追記します
    $page = $_REQUEST[‘page’];
    $start = ($page – 1) * 5:
    を追記し、
    $recordSet = mysql_query(‘SELECT m.name, i.* FROM makers m, my_items i WHERE m.id=i.maker_id ORDER BY id DESC LIMIT 5’);

    ORDER BY id DESC LIMIT 5

    ORDER BY id DESC LIMIT ‘ . $start .’,5
    とします
    これで、範囲を $start から5つ という指示になります
    ただし、page パラメータが指定されていないとエラーになってしまうため
    if($page ==”){
    $page = 1;
    }
    というようにして、もし空なら
    つまり
    $page ==”
    なら
    $page に1を代入するような処理を書いておきます

  • Android と ipod touch アプリ追加

    最近は仕事が忙しいため、外出中から
    いろいろと操作できるように、携帯可能な
    Android と ipod touch のアプリを充実させることにしました
    いままでは、ポイントサイトやアンケートサイトは
    自宅に帰ってから行っていましたが、さすがに時間的に空き時間にすませておきたいので
    Android にパスワード管理アプリを追加しました
    今回追加したのは、KeePassDroid
    このアプリは Linux でもでています
    そして、パスワード管理にはこれを使っています
    もうひとつ、ipod touch に追加したのが、
    nPOP for iPhone
    無料の windows版もありますが、パソコンを持ち歩かなくても使えるので
    これを使うことにしました

    sed コマンドではまりました

    sed コマンドを使い、ファイル最終行へ追記するという処理をしていましたが
    なぜか追記できないということで30分ほど悩んだ結果
    ただファイル名が違っていたということでした
    sed -i “$r virtualhost.txt” test.txt
    というようにして
    test.txt の最終行へ追記しようとしたのですが
    なぜかコマンドを入力してエラーもでていないのに
    追記されないため悩んだのですが
    virtualhost.txt を
    virtulhost.txt
    とタイプミスしてファイルを間違えていました
    今回の結果、ファイルのパスやファイル名を間違えていても
    sed で記述したときにはエラーがでないということです
    もっとも、vim でファイル名を間違えたときにも新規ファイルが作成
    されますが、このときには白紙のファイルになるので
    間違いに気づきました
    今後はファイルのタイプミスがないか気をつけようと思います

    勉強会への参加とスキルアップ

     去年から、さまざまなセミナー、勉強会などに参加するようにしてみました
     書籍やweb 検索でも知識は入りますが
     やはり、こういった場所にいくことで新しい発見もあります
     ただ、私としては、実際になにか作るようなもの、もしくは体験できるものが
     向いているようです
     仮想化環境を構築したり、無線LANや Cisco の設定をするというもの
     そして、web API を使ってマッシュアップといったものは
     非常におもしろく、実際に自分で作ったりするため
     学習効率がよくなります
     facebook のセミナーとかにもでたことがあるのですが
     販売戦略やアクセスアップとなると、聞いていて興味もあるのですが
     スキルが足りないため、こういったものがあればおもしろいなぁ
     と思っても実装できないため、あまり充実感は得られませんでした
     ただし、スキルが上がってくれば、開発のヒントなども得られるため
     まずは開発スキルをあげていこうと思います
     ということで
     スキルアップに関連しそうなサイト、イベントなどを少しまとめてみました
     
     こんなに充実! Webで学べるIT系学習講座20選まとめ
     無料!プログラミング実践勉強会
     「Android Tips」最新記事一覧
     たった一人でWEBサービスを作るための、6つの技術と4つの知識