前回

さくらVPSにもう1台のさくらVPSをマウントする(VPSその2) - nplll

構成

  • vps1 … ブログの公開領域
  • vps2 … mt.cgi + MySQL


前回、VPSその1のディレクトリをVPSその2にマウントすることが出来たのだけど、MySQLデータのインポートを行って実際に再構築を掛けてみたらばファイルが作成できないというエラーが出た。該当ディレクトリのパーミッションを試しに777にしてみたらばそのファイルについては作成できたのだけど、関連する全てのディレクトリのパーミッションを777にするわけには行かないし、新規作成ディレクトリは777では作成されない。要するにそんな誤魔化しじゃなくて、もうちょっとちゃんとパーミッションを調整しなくてはいけない。

最初、マウントポイントの権限の問題(マウントポイントの所有者はrootになる)かなと思ったけど、
そうではなくオプションを付ければいいらしい。

参考にしたのはこちら。

注意: まだ確認ができていないが、Subversionリポジトリのバックアップにおいて、マウント先に生成した一時ファイルのリネームが行われるらしい。 上記の方法でsshfsを起動すると既存ファイルのリネームができないため、「許可されない操作」とか「ファイルシステムエラー」というエラーが起こる。
 

書かれているのはSubversionに関することで僕の問題とは違うけれども、
エラーの状況から見てそれが起こる理由は同じように思えたので試してみたら上手く行った。

実行コードはこうなった。

$ sshfs -p SSHポート番号 ユーザー名@サーバ:ディレクトリ マウントポイント -o workaround=rename


ちなみに、マウントしたディレクトリは扱いやすいところにシンボリックリンクを貼って適当にやると思うんだけど、そのディレクトリ構成がマウント元のディレクトリ構成と異なるとmt:Includeで嵌るので注意。
(そんなことやってる人いないだろうから注意も何もないけど)

<$mt:Include module="メインメニュー"$>

こう書き出される↓

<?php require("/mnt/vps1/www/main_menu.php"); ?>

本当はこう書き出されて欲しい↓

<?php require("/home/hoge/www/main_menu.php"); ?>

まぁ、自分自身が存在しているサーバで使用することを前提に書き出してるんだから当たり前なんだけどね。
mt:Includeを使わないようにすることも考えたけど、様々な利便性を考えた上で、
マウント元でシンボリックリンク貼ることで対応した。

とりあえず何とかなってるっぽい。