Monthly Archives: 11月 2007

2007年11月2週ソーラー発電

とりあえずPDF作成が先週まで追いつきました。
11月5日から11月11日の分です。
7日間の発電量は「55.15kWh」でした。前週の分に比べるとちょっと少ないです。
以下環境換算です。
石油削減換算で「12.5リットル」
CO2削減換算で「17.3kg」
森林面積で「48.6平方メートル」
ちなみに自給率は「27%」でした。

一週間のグラフ(PDF)
週間ソーラー発電(2007年11月2週)週間ソーラー発電(2007年11月2週)
他にも発電記録を掲載しておられる方のブログにトラックバックさせていただきました。
早くシステムの詳細を掲載するようにします。

LeopardのAFPでクリアテキストを使用する

LeopardのAFPでクリアテキストを使用した接続ができなくなっているという問題がいろいろと話題になっているようですがLeopard側でクリアテキストを使用可能にする方法もあるそうです。
(サーバー側を対応させる方法)
速報4) AFPのクリアテキストパスワードを有効にする

簡単なことにコマンド一つで終わりです。
「アプリケーション」の中の「ユーティリティー」の「ターミナル」を開きます。
ターミナル

実行するコマンドは(特権は使わないほうが良いというコメントをいただきました。ご指摘ありがとうございます。sudoは必要ないかもしれませんが)

<code>
defaults write com.apple.AppleShareClient afp_cleartext_allow -bool yes
</code>

です。

逆に無効に戻す場合は

<code>
defaults write com.apple.AppleShareClient afp_cleartext_allow -bool no
</code>

です。設定を有効にするには再ログインをすればよいそうです。
申し訳ありませんが、残念ながら試す方法がないので確認はしていません。

2007年11月1週ソーラー発電

10月29日から11月4日の発電記録です。
今週は「70.3kWh」の発電でした。
例によって環境換算です。
石油換算「16リットル」
CO2削減「22.1kg」
森林換算「61.9平方メートル」
でした。1週間で16リットルも削減できたことになるとは驚きです。

一週間のデータ
週間ソーラー発電(2007年11月1週)週間ソーラー発電(2007年11月1週)

2007年10月4週ソーラー発電

AppleのNumbersで1週間分の電気発電消費量をまとめるシートを作ったので過去のぶんを週別に投稿していきます。
今回は10月22日から10月28日の分です。
初日は3時からなので発電は少ないです。
今週の発電量は「52.45kWh」でした。
京セラのページに石油換算やCO2換算や森林面積換算があったのでそちらも掲載します。
石油削減換算で「11.9リットル」
CO2削減換算で「16.5kg」
森林面積で「46.2平方メートル」
でした。

一週間のグラフ(PDF)
週間ソーラー発電(2007年10月4週)週間ソーラー発電(2007年10月4週)

自家ソーラー発電

10月22日から自宅の屋根に取り付けたソーラーパネルによる自家発電をしています。
せっかくブログもつくったもで毎日の発電量や消費量の記録を投稿していこうと思います。
構成の詳しい情報は別に整理して公開します。

WordPressに特殊文字変換機能をつける

記事を投稿するとき「<」などと入力するときは「&lt;」と書く必要があります。
特殊文字についてはこちら
これを普通に入力した後変換してくれる下のようなボタンを投稿ページにつけたいと思います。
WordPressのescapeボタン

編集するのは「wp-includes/js/quicktags.js」です。
まず、「function edToolbar() {」の行の上に以下のように追加します。

<code>
function edEscapeString(strOld)
{
    var strNew = "";

    for(var i = 0; i &lt; strOld.length; i++){
        var c = strOld.charAt(i);

        switch(c){
        case '&lt;':
            c = "&amp;lt;";
            break;
        case '&gt;':
            c = "&amp;gt;";
            break;
        case '&amp;':
            c = "&amp;amp;";
            break;
        case '    ':
            c = "    ";
            break;
        }
        strNew += c;
    }
    return strNew;
}
function edEscapeChars(myField) {
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        strTmp = sel.text;
        strTmp = edEscapeString(strTmp);
        sel.text = strTmp;
        myField.focus();
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var strTmp = myField.value.substring(startPos, endPos);
        var strPos = myField.value.substring(endPos, myField.value.length);
        var strPre = myField.value.substring(0, startPos);
        strTmp = edEscapeString(strTmp);
        myField.value = strPre + strTmp + strPos;
        myField.focus();
        myField.selectionStart = startPos + strTmp.length;
        myField.selectionEnd = startPos + strTmp.length;
    }
}
</code>

次に「function edToolbar() {」の中の「document.write(‘<input type=”button” id=”ed_spell” class=”ed_button” onclick=”edSpell(edCanvas);” title=”Dictionary lookup” value=”lookup” />’);」の上に以下の行を追加します。

<code>
document.write('&lt;input type="button" id="ed_escape" class="ed_button" onclick="edEscapeChars(edCanvas);" title="escape characters" value="escape" /&gt;');
</code>

これで「escape」というボタンができるので変換したい部分を選択しこのボタンをクリックすると変換してくれます。

今回参考にさせていただいたサイト
エディターのボタンを増やす -2

DebianとApache2でSSL通信

「mod_ssl」をつかってApache2を「https」で接続できるようにしようと思います。
まずは「mod_ssl」をインストールします。

<code>
$ su
# apt-get install libapache-mod-ssl
</code>

これから「/etc/apache2/ssl」に鍵などを作っていきます。

<code>
# cd /etc/apache2
/etc/apache2# mkdir ssl
/etc/apache2/ssl# cd ssl
/etc/apache2/ssl# cp /usr/lib/ssl/misc/CA.sh ./CA.sh
CA certificate filename (or enter to create)  (空欄のままEnter)
Enter PEM pass phrase:(パスフレーズを決める。一時的なものなので何でもよいが覚えておくこと)
Verifying - Enter PEM pass phrase:(もう一度パスフレーズ)
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto(都道府県)
Locality Name (eg, city) []:Kyoto(市区町村)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Personal(個人なので)
Organizational Unit Name (eg, section) []:web(ここは組織単位らしい)
Common Name (eg, YOUR name) []:hogehoge(ニックネームでも入れましょう)
Email Address []:(メールアドレス)
A challenge password []:(空欄)
An optional company name []:(空欄)
Enter pass phrase for ./demoCA/private/./cakey.pem:(最初に決めたパスフレーズ)
</code>

これで認証局の証明書関係ができます。
続いて鍵の作成。

<code>
/etc/apache2/ssl# /usr/bin/openssl genrsa -rand /var/log/apache2/access.log -des3 -out ./serverkey.pem 1024
1407562 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
...++++++
.........++++++
e is 65537 (0x10001)
Enter pass phrase for ./serverkey.pem:(決めたパスフレーズ)
Verifying - Enter pass phrase for ./serverkey.pem:(もう一度)
</code>

以下のコマンドで作成した鍵のパスフレーズを削除します。

<code>
/usr/bin/openssl rsa -in ./serverkey.pem -out ./serverkey.pem
Enter pass phrase for ./serverkey.pem:(決めたパスフレーズ)

/usr/bin/openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
Enter pass phrase for ./demoCA/private/cakey.pem:(決めたパスフレーズ)
</code>

「writing RSA key」とでれば成功。
証明書を発行する為の申請書ファイル「CSR」の作成。質問は基本的に上と同じ。
コマンド中の365は有効日数。変更可能。

<code>
/usr/bin/openssl req -new -days 365 -key ./serverkey.pem -out ./csr.pem
Country Name (2 letter code) [AU]:JA
State or Province Name (full name) [Some-State]:Kyoto(都道府県)
Locality Name (eg, city) []:Kyoto(市区町村)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Personal(個人なので)
Organizational Unit Name (eg, section) []:web
Common Name (eg, YOUR name) []:(ニックネームでも)
Email Address []:(メールアドレス)
A challenge password []:(ここはちゃんとパスワードを決める)
An optional company name []:(空欄)
</code>

証明書を作成。

<code>
/usr/bin/openssl ca -in ./csr.pem -keyfile ./demoCA/private/cakey.pem -cert ./demoCA/cacert.pem -out ./cert.pem
</code>

「/etc/apache2/ssl」に「cert.pem」ができてればOK。
(なぜか参考にしたページのような質問はなかった。)

続いてApache2の設定。
既に「/etc/apache2/sites-available」あるサイト設定(以下の例は(default))を「default-ssl」(ファイル名は使用するサイト設定にあわせてください)コピーします。SSLを有効にしたいサイトはすべて行ってください。
そのファイルを以下のように編集します。

<code>
NameVirtualHost * =&gt; NameVirtualHost *:443
virtualhost * =&gt; virtualhost *:443
ServerName(あるいはServerAliasも) hogehoge.com =&gt; ServerName hogehoge.com:443
</code>

以下を追加

<code>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/demoCA/cacert.pem
SSLCertificateKeyFile /etc/apache2/ssl/demoCA/private/cakey.pem
</code>

このサイト設定を有効にする為に(このコマンドは最近知った。自動でsites-enabledにシンボリックリンクを作成してくれる。)

<code>
#a2ensite default-ssl
</code>

さらにポート443からの接続を受けるために「/etc/apache2/ports.conf」に「Listen 443」を追加して保存。

そしてApache2の再起動

<code>
# /etc/init.d/apache2 restart
</code>

これで「https://」で接続できれば成功。この証明書は信頼されていませんとでますがこれはどうしようもありません、お金を払って「VeriSign」などから証明書をもらえばこの問題も解決します。
証明書のサンプル

ついでにphpMyAdminへの接続を「http」からは接続できないようにすることもできます。セキュリティーを考えていろいろ設定しましょう。基本的にSSLなしとSSLありの設定は別サイトとして扱われるので共通の編集はどちらにもしましょう。

今回参考にさせていただいたサイト。
mod_sslの設定
暗号化通信の有効化 [mod_ssl]

phpMyAdmin接続エラー

phpMyAdminを開くと「Internal Server Error」が表示されて接続できなくなっていました。
原因を探すために「/var/log/apache2/error.log」を確認すると以下のようなものがありました。
「/var/www/phpmyadmin/.htaccess: Option FollowSymLinks not allowed here」
「FollowSymLinksでは.htaccessは使用できないのに.htaccessがあるよ。(意訳)」ということなのでドキュメントルートにphpMyAdminのシンボリックリンクを作成する方法をやめサイト設定を編集し以下のようなものを追加しました。
以前の記事でBASIC認証をかけるために一部既に書いてあるので以下のようになるように修正したとするほうがいいでしょうか。「.htpasswd」のパスなどは環境に合わせてください。

<code>
        Alias /phpmyadmin/ /var/www/phpmyadmin/
        &lt;directory "/var/www/phpmyadmin"&gt;
                AuthType Basic
                AuthName "phpMyAdmin"
                AuthUserFile /var/.htpasswd
                Require user hogehoge
                AllowOverride All
        &lt;/directory&gt;
</code>

と編集しドキュメントルートにあるphpMyAdminへのシンボリックリンクは削除しておきましょう。
ちゃんとApache2は再起動しましょう。
これでちゃんと接続できるようになりました。
phpMyAdminログイン画面

P.S.
はやくApache2をSSL通信に対応させたいのですが、なかなかうまくいかなくて…
でき次第投稿します。

Moguraでアクセス解析

せっかくホームページを作ったのでどれぐらいの方が見に来てくれているのかわかるといいですよね。
ということで「Mogura」というツールを使ってアクセス解析をしようとおもいます。
公式ページはこちらです。
説明によるとMySQL + PEARが必要ですとあり、GDを使用する機能もあります。
PEAR以外はインストールしたので「PEAR」をインストールします。

<code>
$ su
# apt-get install php4-pear
# /etc/init.d/apache2 restart
</code>

次にMoguraをダウンロードし、説明通り/inc/config.phpの設定を編集します。
このときデータベースの名前を決めWordPressのインストール時のようにphpMyAdminからその名前のデータベースを作っておきます。
Moguraフォルダをドキュメントルートにコピーします。
ブラウザから「http://サーバーのアドレス/mogura/setup.php」にアクセスします。
セットアップが完了したら説明通りsetup.phpは削除しておきましょう。
「http://サーバーのアドレス/mogura/w3a.php」が今後アクセス解析を確認するページです。

次にログを取得するためのタグを追加しましょう。
Moguraのトップページの左のメニューの「コントロールパネル」をクリックし「ログ取得用」をクリックします。
Moguraログ管理
使うのは「WriteType:JavaScript and Image (拡張子がPHP以外のページ)」です。このタグをコピーしておきます。
これをテーマファイルの「header.php」の「div id=”left-col”」の行の下に貼付けて保存します。
これでOKです。