2ヶ月もブログ放置しちゃった
今週はブログ書くぞ
Symfony2ネタとか
今週はブログ書くぞ
Symfony2ネタとか
2011年3月11日の地震が起きたときは
神戸の実家にいたときの地震を思い出してしばらくは怖いという気持ちだけでした。
ニュースを見ると悲惨な状況が報道されるので、あまり見ないようにしていました。
今の僕は完全な被災者ではないので、何かできることがあればと思い、
とりあえず、わずかながらですが義援金をだすことと節電をやっています。
神戸の時のたくさんの支援物資には感謝しています。そのお返しになればと思います。
こういう時は歌を歌うと元気になれます。頑張ってください。
homebrew 使うとMacPortsよりはやいってことで試してみました。
自分でパッケージをインストールするスクリプト作れるので面白いですね。(rubyですが)
https://github.com/mxcl/homebrew/wiki/installation のコマンドを1行実行します
インストールが終わったあととりあえず、git をインストールします
$ brew install git
僕が作ったFormula ファイルを githubにコミットしたので、使ってみてください><
rubyよく知らない、へなちょこなコミットなので、pull request とかあれば歓迎です。
$ cd /usr/local/Library $ git remote add urabe_formula https://ShinichiU@github.com/ShinichiU/homebrew.git $ git fetch urabe_formula $ git checkout -b urabe_master urabe_formula/master
php5.2 と 5.3 をインストールします (–main)とうつと php のバイナリは php とうつと使えるようになります
php5.2.17 は $ php52 -v
php5.3.5 は $ php53 -v
で使えます。
php5.2.17 のApache用のモジュールは /usr/local/Cellar/php52/5.2.16/libexec/apache2/libphp5.so
php5.3.5 の Apache用のモジュールは/usr/local/Cellar/php53/5.3.5/libexec/apache2/libphp5.so
にインストールされます。
$ brew install php52 --with-mysql55 --with-pgsql --with-apache $ brew install php53 --with-mysql --with-pgsql --with-apache --main
あと、パスの設定は balibali さんのブログをご参考くださいー
おしまい
MS Office Word の操作性の悪さが大嫌いなので、ドキュメント作成から逃げ出したくなります。
テキストベースで作成したものが、どの環境でも見れるファイルに簡単になればいいのにということで
Mac上で reStructuredText からPDFを作成してみました。
reStructuredText については このへんを見てください。(適当でごめんなさい!><)
MS Wordでよくわからない仕様にとまどって苦労する負荷を考えるとrst覚えるほうが楽勝ですね!
$ sudo port install jpeg $ sudo port install freetype $ sudo port install lcms $ sudo port install lcms2
$ sudo easy_install -UZ PIL $ sudo easy_install -UZ reportlab $ sudo easy_install -UZ rst2pdf
以下のページからフォントをダウンロードして、インストール(インストールしなくてもよい)
http://mix-mplus-ipa.sourceforge.jp/mplus2006_ipa2003/download.html
$ mkdir -p ~/.rst2pdf/style
$ vim ~/.rst2pdf/style/ja.json //新規ファイル作成
{ "embeddedFonts" :
[["M+2P+IPAG.ttf","M+2P+IPAG.ttf","M+2P+IPAG.ttf","M+1P+IPAG-circle.ttf"]],
"fontsAlias" : { "stdFont": "M+2P+IPAG",
"stdBold": "M+2P+IPAG",
"stdItalic": "M+2P+IPAG", "stdBoldItalic": "M+2P+IPAG",
"stdMono": "M+1P+IPAG-circle"
}, "styles" : [
["base" , {
"wordWrap": "CJK" }],
["literal" , {
"wordWrap": "None"
}]
]
}
$ vim ~/.rst2pdf/config //新規ファイル作成
[general]
stylesheets="~/.rst2pdf/style/ja.json" // 先程作ったスタイルシートのパス
compressed=false
font_path="~/Library/Fonts" // フォントのパス (先ほどダウンロードしたフォントのパスでもOKです)
header="" // None とかHeader に勝手に入るので空文字を渡す
footer="" // None とかHeader に勝手に入るので空文字を渡す
fit_mode="shrink"
break_level=1 // h1レベルの見出しは改ページ
language="ja_JP" //日本語
以上で準備はOK
試しに OpenPNE3 のセットアップドキュメントがrstで書かれているのでPDFにしてみました
こういうの⇛ https://github.com/openpne/OpenPNE3/raw/master/doc/ja/OpenPNE3_Setup_Guide.txt
$ rst2pdf OpenPNE3_Setup_Guide.txt // このコマンドで同じディレクトリにPDFができる
できたのがこれ (PDF: 120K)
みやすいです。ドキュメント作成が楽しくなりそうですね
SeleniumIDEにはいろいろなコマンドがあるので、何でもできそうな気がします。
mixiの未読メッセージがたまって、開く作業がだるいと思う人もいると思うので、自動で既読にするテストケースを作ってみました。
と、思ったのですが、数件あるメッセージを指定回数繰り返すテストとかできないんじゃないかな?と思い、どうすりゃいいかなと、探ってみたところいいのがありました。
これ http://51elliot.blogspot.com/2008/02/selenium-ide-goto.html
なるほど、
とういうことで
$ git clone git://github.com/darrenderidder/sideflow.git
でとってきたJSファイルをSeleniumIDEで読み込ませれば goto とか while とか label とか使えるんですね。
これを使って未読メッセージ開封テストケース作ってみました。
ちゃんと動いたようです。
おしまい
Debian にgitosisとgitwebをいれてみた
サーバ側での操作
$ sudo apt-get install gitosis $ sudo apt-get install gitweb
クライアント側操作
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa_nuts_git Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): //空エンター Enter same passphrase again: //空エンター Your identification has been saved in /Users/urabe/.ssh/id_rsa_nuts_git. Your public key has been saved in /Users/urabe/.ssh/id_rsa_nuts_git.pub. The key fingerprint is: //空エンター ce:5d:7b:37:35:d7:0a:2f:5c:16:30:64:2e:1c:dc:eb urabe@urabe-shinichi-no-MacBook-Pro.local The key's randomart image is: //空エンター +--[ RSA 2048]----+ | ..o= | | ..+.o | | o ... | | .. ..| | S .o o.+| | o . oE* .+| | o . + +..| | o ..| | | +-----------------+ ※ 空エンターしてますが、パスワード入れたい人はちゃんといれてくださいー $ vim ~/.ssh/config ※ SSHで接続する鍵について記述 (これで、SSH、git も nuts-choco.net へは ~/.ssh/id_rsa_nuts_git を使って鍵認証します) =================================== Host nuts-choco.net User urabe Port 22 Hostname nuts-choco.net IdentityFile ~/.ssh/id_rsa_nuts_git TCPKeepAlive yes IdentitiesOnly yes =================================== ちなみに nuts-choco.net はパスワード認証は許可していません 公開鍵を対象のサーバに送ります $ scp ~/.ssh/id_rsa_nuts_git.pub nuts-choco.net:~/.ssh/authorized_keys
サーバ上での作業
$ ssh nuts-choco.net // サーバに接続 $ chmod 600 ~/.ssh/authorized_keys $ sudo cp ~/.ssh/authorized_keys /home/gitosis/urabe@mac.pub $ sudo chown gitosis /home/gitosis/urabe@mac.pub $ sudo su gitosis //gitosis ユーザになる $ gitosis-init < urabe@mac.pub
https://nuts-choco.com/git/ でアクセスさせる想定
https://nuts-choco.com/git/gitweb/ 配下にCSSファイル、画像が置かれる
$ sudo vi /etc/gitweb.conf =================================== $projectroot = "/srv/gitosis/repositories"; $stylesheet = "/git/gitweb/gitweb.css"; $logo = "/git/gitweb/git-logo.png"; $favicon = "/git/gitweb/git-favicon.png"; =================================== $ ln -s /usr/lib/cgi-bin /var/www/sites/nuts-choco.com/public_html/git $ ln -s /usr/share/gitweb /var/www/sites/nuts-choco.com/public_html/git/
$ cd /etc/apache2/sites-available
$ sudo vi gitweb
===================================
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride None
DirectoryIndex gitweb.cgi
Order allow,deny
allow from all
SSLRequireSSL
# digest 認証が不要なら削除
AuthType Digest
AuthName "my site"
AuthDigestDomain /
AuthUserFile /etc/apache2/.htdigest
Require valid-user
Satisfy all
# digest 認証ここまで
<IfModule mod_rewrite.c># https 強制とかしなくていい場合は、不要
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/git$1 [L,R]
</IfModule>
===================================
$ cd ../sites-enabled
$ sudo ln -s ../sites-available/gitweb 001-gitweb
$ sudo /etc/init.d/apache2 restart
https://nuts-choco.com/git/ でアクセスするとgitwebが見れる
ただしまだリポジトリがない
ローカルでの作業
$ git clone gitosis@nuts-choco.net:gitosis-admin.git $ cd gitosis-admin $ vim gitosis.conf リポジトリを追加したい場合は、以下のように記述 memos というリポジトリ =================================== [group memos] writable = memos members = urabe@mac ===================================
members = はスペースでコミットできるメンバーを追記
ちなみに urabe@mac.pub というファイル名の公開鍵を keydir に配置するだけで、urabe@mac というメンバーでコミット権限が与えられる
gitosis.conf を修正して
$ git add . $ git commit -m "add repo memos" $ git push
https://nuts-choco.com/git/ にアクセスするとリポジトリが増えた!
おしまい
自分のサービスを xxx.nuts-choco.com に集約したくなったので
ブログのURLを nuts-choco.net → blog.nuts-choco.com に移行してみた。
移行作業はこれだけ
$ mkdir /var/www/sites/blog.nuts-choco.com $ ln -s /var/www/sites/nuts-choco.net/public_html /var/www/sites/blog.nuts-choco.com/
あんまり詳しくないけど、ドメインの移行はSEO対策的にはちゃんと301でリダイレクトしたほうがよいらしいので .htaccess を以下のようにした
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^nuts-choco\.net [NC]
RewriteRule ^(.*)$ http://blog.nuts-choco.com/$1 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c> は mod_rewrite が使える場合・・の条件分岐
使えると明らかに分かっていても、データ移行したときにうっかり使えないサーバに
ソースを置いてしまうと500エラーになってしまう。その対策
RewriteEngine On でrewrite を有効にする RewriteBase はrewrite する階層
RewriteCond は条件を指定、シンボリックリンクをはっただけの、リダイレクト先の blog.nuts-choco.com でもrewriteが適用されるとループが発生するためその対策
^(.*)$ に一致する文字列が リダイレクト先のURLの $1 に置き換えられ 301でリダイレクトする
移行完了したんだけど、、、、
ところで、管理画面にログインできないよ。。。!?
http://ja.forums.wordpress.org/topic/5597 でわかりました
option テーブルのsiteurlを nuts-choco.net → blog.nuts-choco.com にSQLで書き換えてOK
ども お久しぶりです。
冬眠してました。(一年以上更新してなくて・・)
やはりアウトプットはしっかりしたいと思うので、ブログちゃんと書きます。(まず、月一から)
こないだ妹にブログを見られたのですが、絵文字とか文字装飾が少なくてくだらないと批判されました。。まあ、余談です。
さくらVPSのDebian 5.0.7(Lenny)にUNIX システムアカウントを使わず、複数のドメインのメールをテスト用とかに使いたいと思ったことがあったので、そこで苦労したことをメモ程度ですが残しておきます(普通はこんなところでトラブらないだろってことばかりかも)
postfix をインストール
http://debiansrv.com/postfix_setting をそのまま実行しました
それが終われば、以下の操作
$ sudo apt-get install postfix-tls sasl-bin libsasl-modules-plain libsasl-digestmd5-plain
バーチャルドメインを管理する用アプリ:postfixadmin を導入
$ wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.2/postfixadmin-2.3.2.tar.gz $ tar zxvf postfixadmin-2.3.2.tar.gz $ mv postfixadmin-2.3.2 /var/www/sites/postfix.nuts-choco.com/public_html // 任意のウェブディレクトリに移動してください $ cd /var/www/sites/postfix.nuts-choco.com/public_html DB作成 $ mysqladmin -u root create postfix DB設定をconfig.inc.phpに記述 $ vi config.inc.php 49 $CONF['database_type'] = 'mysql'; //そのまま 50 $CONF['database_host'] = 'localhost'; //そのまま (1) 51 $CONF['database_user'] = 'root'; //任意 (2) 52 $CONF['database_password'] = 'postfixadmin'; //任意 (3) 53 $CONF['database_name'] = 'postfix';//そのまま (4) 54 $CONF['database_prefix'] = ''; $CONF['configured'] = false; → true に $CONF['setup_password'] = 'changeme'; → 任意のものに変更 # 全般的にファイル内の change-this-to-your.domain.tld の文字列をメインのドメインに変更
http://postfix.nuts-choco.com にアクセス (僕は /var/www/sites/%0/public_html でVirtualNameHostを設定しているので、こんな感じでアクセスしてます)
すると セットアップ用のパスワードが要求されるので $CONF['setup_password'] に入力したものを入力する。
管理用のアカウントが作成できたら、セットアップ用のphpファイルは削除
$ rm setup.php
http://www.aconus.com/~oyaji/centos/smtp-mysql-centos.htm の「事前準備」と「基本的な設定(main.cf)」「バーチャルドメイン関係の設定ファイルの作成」を実施
そして試しに作ったメールアドレスにメッセージを送ってみましょう
# tail -f /var/log/mail.err //ログを確認します postfix/trivial-rewrite[32106]: fatal: mysql:/etc/postfix/mysql_virtual_alias_maps.cf(0,lock|fold_fix): table lookup problem
う、なんだろこれ
これの解決方法は main.cf の mysql: 〜 となっている箇所を proxy:mysql: 〜 に書き換えればOK
http://hidelafoglia.livejournal.com/16100.html このブログをみて解決でした。はい
も、もういちど試しに作ったメールアドレスにメッセージを送ってみましょう
# tail -f /var/log/mail.err //ログを確認します imapd: authentication error: Input/output error
うげ、なんですかこれは
http://www.aconus.com/~oyaji/centos/smtp-mysql-centos.htm の「バーチャルドメイン関係の設定ファイルの作成」の mysql_virtual_domains_maps.cf の select_field が description って空にしてなかったっけ・・とりあえずdomain に変更する
user = root (2) password = new_password1 (3) hosts = localhost (1) dbname = postfix (4) table = domain select_field = domain where_field = domain
設定が終わったらpostfixを再起動してみましょう
$ /etc/init.d/postfix restart
これでエラーがきえた、やった
# ls /usr/local/virtual とすると希望通りのメールボックスのディレクトリができた
ついでに、簡易にウェブメーラでメールが見れるといいなと思ったので、libsasl2-modules-sql をインストール
# apt-get install libsasl2-modules-sql # vi /etc/courier/authmysqlrc 何も考えず、以下のように入力 ============================================ MYSQL_USERNAME root (2) MYSQL_PASSWORD new_password1 (3) MYSQL_DATABASE postfix (4) MYSQL_USER_TABLE mailbox # MYSQL_CRYPT_PWFIELD password ##コメントアウト MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD uid MYSQL_GID_FIELD gid MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD home MYSQL_MAILDIR_FIELD maildir MYSQL_QUOTA_FIELD quota ============================================ # vi /etc/courier/authdaemonrc ============================================ authmodulelist="authcustom authuserdb authmysql authpam" authmodulelistorig="authcustom authuserdb authmysql authpam" daemons=5 version="authdaemond.mysql" authdaemonvar=/var/run/courier/authdaemon DEBUG_LOGIN=2 #エラーのログを確認 ============================================ # /etc/init.d/courier-authdaemon restart
SquirrelMail は以下の記事を見ればできるよ!(省略)
http://www.bnote.net/kuro_box/kuro_debian_squirrelmail.shtml
SquirrelMailの設定が終わって、SquirrelMailにログインしてみます
ログイン失敗><
# tail -f /var/log/mail.err //ログを確認します imapd: authentication error: Input/output error
うげ、またですか><
認証の接続がうまくいかないような情報が出てきたので、試しに、mysqlのクエリの全ログをはくように以下のようにしてみました
# vim /etc/mysql/my.cnf ============================================ [mysqld] log = /var/log/mysql/mysql.log ============================================ # /etc/init.d/mysqld restart # tail -f /var/log/mysql/mysql.log 465 >->- 102 Init DB postfix 466 >->- 102 Query SELECT username, password, "", uid, gid, home, maildir, quota, name, "" FROM mailbox WHERE username = 'test@nuts-choco.net' 467 >->- 102 Quit-------
試しに SELECT username, password, “”, uid, gid, home, maildir, quota, name, “” FROM mailbox WHERE username = ‘test@nuts-choco.net’ をmysqlで実行
mysql> SELECT username, password, "", uid, gid, home, maildir, quota, name, "" FROM mailbox WHERE username = 'test@nuts-choco.net'; ERROR 1054 (42S22): Unknown column 'uid' in 'field list'
uid なんてフィールドないよってことですか
ついでに gid も home もないんだろう
無理やり作った↓
# mysql -uroot -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2751
Server version: 5.0.51a-24+lenny4 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use postfix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show create table mailbox\G
*************************** 1. row ***************************
Table: mailbox
Create Table: CREATE TABLE `mailbox` (
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`name` varchar(255) character set utf8 NOT NULL,
`maildir` varchar(255) NOT NULL,
`quota` bigint(20) NOT NULL default '0',
`local_part` varchar(255) NOT NULL,
`domain` varchar(255) NOT NULL,
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`username`),
KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Mailboxes'
1 row in set (0.00 sec)
mysql> exit
# vi update.sql
============================================
ALTER TABLE `mailbox` ADD `gid` VARCHAR(255) NOT NULL DEFAULT 10000;
ALTER TABLE `mailbox` ADD `uid` VARCHAR(255) NOT NULL DEFAULT 10000;
ALTER TABLE `mailbox` ADD `home` VARCHAR(255) NOT NULL DEFAULT '/usr/local/virtual';
============================================
# mysql -u root -p postfix < update.sql
# rm update.sql
で、
ログインできた!
おしまい。
かなりほったらかしでした。openpneのプラグインが今、面白いのでそれについて今月中に何か書きます。お楽しみにー
さくらの月500円プランのお試し期間使ってます。SSH使えて一番安いところにしました。2ギガも使えるようです。
昔は100メガぐらいの容量でFTPが使えるけど、SSHなんて使えないのに、月2000円ぐらいしませんでしたっけ?(あとPHPとPerlぐらいは使えてhtaccessはダメみたいな)
ブログだけならどっかのレンタルブログでいいかもなーって思うのですが、自由度が低くて面白くない。サーバー借りてやりたいように設置するのが面白いんですよね?。
折角SSHもつかえるのに、ブログだけなんてもったいないので、自分専用アプリの開発用に使っていきたいと思うのですが、なんてったってDBが一個しか使えないのが帯に短し襷に長しなんですよね。
ちょうどいい方法があれば考えていきたいですねー。
さくらにvimをインストールしたのですが役に立ったサイトがあるのでトラックバックします。ブログの作者さんありがとうございます。
http://www.hazama.nu/t2o2/archives/002696.shtml
あとはackをインストールしようっと