mac OS X snow leopardにmacfusionを入れてみた
Mac OS X snow leopardにmacfusionを入れてみました。少しはまったのでメモ。
1.MacFUSEをインストール
MacFUSEのインストールサイトはgoogleCodeのここにあるので、dmgファイルをダウンロードして、インストールします。自分は、システム環境設定からβ版までインストールしちゃいました。その後再起動。
2.macfusionをインストール
macfusionのインストールサイトはここにあります。dmgファイルをダウンロードして、インストールします。
ここからが、少しはまりどころ。snow leopardの場合、アプリケーションディレクトリ下にインストールした場合、次のコマンドをターミナルから入力します。
rm /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.soこれをしないと、snow leopardでは接続エラーがおこり、マウントできません。
3.使い方
以上で、macfusionを使えるところまで行きました。ここからは簡単で、macfusionを起動し、+ボタンを押すと、追加することができます。ホスト名、ユーザ名、パスワードを入力し、マウントすると、デフォルトでは、そのユーザ名のホームディレクトリがMacの/Volumes/(ホスト名)下にマウントされます。
また、サーバ側に.DS_storeファイルを作成しないようにするには次のコマンド。
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true
mac OS X snow leopardにmysql5を入れる
macにmysql5を入れました。
(1)mysqlのダウンロードサイトからMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロード(最近64-bitにしたので試しに)
(2)ダウンロードしたインストーラを使ってインストール。ちなみにmacの環境設定にmysqlの起動などをできるような設定を追加するインストーラもあります。
(3).profileにPATHを追加
export PATH=/usr/local/mysql/bin(4)my.cnfをコピー
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
mac OS X snow leopardにmysql5を入れる
macにmysql5を入れました。
(1)mysqlのダウンロードサイトからMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロード(最近64-bitにしたので試しに)
(2)ダウンロードしたインストーラを使ってインストール。ちなみにmacの環境設定にmysqlの起動などをできるような設定を追加するインストーラもあります。
(3).profileにPATHを設定
export PATH=/usr/local/mysql/bin:$PATH(4)my.cnfをコピー
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
symfonyのフォームの登録時に値を変換したい場合
formクラス内にprocessValues関数を記述することで、登録時に値変換を行うことができる。
例えば、ユーザにパスワード入力させて、暗号化した後、暗号化に使ったsaltと暗号化済みパスワードをデータベーステーブルに登録したい場合を考える。
1.データベース定義
テーブル名はuser,カラムはid, name, salt, sha1_passwordとする。schemaは以下のようになる。
database:このとき、symfonyは上のカラム定義に沿ったBaseUserFormクラスを自動生成する。
user:
id: ~
name:
type: varchar(80)
salt:
type: varchar(32)
sha1_password:
type: varchar(40)
2.ユーザパスワード入力用ウィジェットの作成
sha1_passwordは暗号化した後のカラムであり、ユーザに入力した内容のバリデートをすることができない。symfonyのフォームクラスではカラムで定義している以外のものもウィジェットとして登録できるため、ユーザパスワード入力用のウィジェットを作成する。UserFormクラスのconfigureオペレーションを以下のように変更する。
<?phpこれによって入力項目はユーザ名、暗号化していないパスワードとなり、入力させたパスワードをバリデートすることができるようになった。class UserForm extends BaseUserForm
{
public function configure()
{
$this->widgetSchema['password'] = new sfWidgetFormInputPassword();
$this->validatorSchema['password'] = new sfValidatorString(
array(
'min_length' => 6,
'max_length' => 15,
),
array(
'min_length' => 'パスワードは6文字以上にしてください',
'max_length' => 'パスワードは15文字以下にしてください'
)
);
$this->useFields(
array('name', 'password')
);
}
}
3.登録時の変換
もちろん上の状態では、テーブルにないカラムがあるため、そのままではデータベースに登録することはできない。そのため、登録時に値を変換する。
symfonyの場合、登録前に必ずprocessValuesという関数を通すため、これを利用して値を変換し、登録するときにはname, salt, sha1_passwordとして登録するようにする。UserFormクラスは最終的に以下のようになる。
<?phpclass UserForm extends BaseUserForm
{
public function configure()
{
$this->widgetSchema['password'] = new sfWidgetFormInputPassword();
$this->validatorSchema['password'] = new sfValidatorString(
array(
'min_length' => 6,
'max_length' => 15,
),
array(
'min_length' => 'パスワードは6文字以上にしてください',
'max_length' => 'パスワードは15文字以下にしてください'
)
);
$this->useFields(
array('name', 'password')
);
}
/**
* フォーム入力値をオブジェクトに渡す前に行う処理
*
* @param array $values フォームフィールドに入力され、バリデーションを経た値の配列
* @return array 処理を行った後の値の配列
*/
public function processValues($values)
{
$password = $values['password'];
unset($values['password']);
$salt = md5(microtime().mt_rand());
$sha1_password = sha1($password.$salt);
$values['salt'] = $salt;
$values['sha1_password'] = $sha1_password;
return $values;
}
}
これにより、登録時には値が変換されて、暗号化されたパスワードが登録される。
mac OS X snow leopardへのmacportsのインストール
macportsインストールしてみました。mac OS X snow leopardにインストールするのは簡単でした。
ちなみにインストールするためには、
(1)Xcode developer tools version 3.2.1以上
(2)X11 windowing environment
をインストールしている必要が有ります。
1.macportsのダウンロードページからMacPorts-1.8.2-10.6-SnowLeopard.dmgをダウンロード
2.ダウンロードしたファイルを開き、インストールするだけ
3.確認
$ port -v
MacPorts 1.8.2
centos5.4にredmineを入れてみる
Redmineを自宅サーバCentOSにインストールした。
1.Rubyのインストール
yumだと、古いrubyが入ってしまうため、ソースコードからインストール最初にrdocを入れてしまう。
$yum install rdoc次にrubyを入れる。http://www.ruby-lang.org/ja/downloads/からダウンロード$wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gzさらにRubyGems。http://rubyforge.org/frs/?group_id=126&release_id=33411から。
$tar zxvf ruby-1.8.7-p249.tar.gz
$cd ruby-1.8.7-p249
$./configure --prefix=/usr
$make && make install$cd /tmprailsをインストール。
$wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
$tar zxvf rubygems-1.3.5.tgz
$gem install rails --include-dependencies
2.sqliteのインストール
sqlite3をインストールする。yumで一発。あとsqlite3-rubyを入れないといけない。$yum install sqlite sqlite-devel
$gem install sqlite3-ruby
3.redmineのインストール
redmineのインストール。http://redmine.jp/からダウンロード。$mkdir /home/redmine/
$cd /tmp/
$wget http://rubyforge.org/frs/download.php/69052/redmine-0.9.2.tar.gz
$tar xzvf redmine-0.9.2.tar.gz
$cp -rp redmine-0.9.2/* /home/redmine
4.redmineの設定
次にRedmineの設定。まずは、データベース接続設定。
$cd /home/redmine/configここで、productionの設定を以下に変更。
$cp database.yml.example database.yml
$vim database.ymlproduction:次にセッション暗号化用鍵の生成。
adapter: sqlite3
dbfile: db/redmine.db
timeout: 5000$rake config/initializers/session_store.rbデータベースの初期化。$rake db:migrate RAILS_ENV=productionサーバのポート3000にブラウザでアクセスすると、ページが見れました。やったー。
$rake redmine:load_default_data RAILS_ENV=productionとりあえず起動してみる。
$script/server -e production
明日は、Apacheとの連携をします。やっぱり自宅サーバはいいなー。さくらインターネットと違ってインストールが楽すぎる。