2009-09-01 9 views
40

OS XのLeopard(10.5)またはSnow Leopard(10.6)バージョンを実行できるMacがあります。私は、プロダクションホストにファイルを公開する前に、Web開発/テストを行うためにそれを使用しています。Mac OS Xで/ homeディレクトリを使用するには

プロダクションホストでは、マイサイトのドキュメントルートがホームディレクトリ(/ home/stimulatingpixels/public_htmlなど)の下にあり、その場所をMacで複製したいと考えています。残念なことに、彼らは/ homeの場所に何も置かれていないマウントされたドライブのように見える、Mac上の隠されたロックプレースホルダです。

私は経験から、アップグレードは自分の/ homeディレクトリに移動するのが賢明ではないことを知っています。アップグレードによって消去される可能性があります(そして、それはTimeMachineのバックアップには保存されません)。

質問:MacでLeopardやSnow Leopardの/ homeを安全に使用する方法はありますか?

(注:私はすべての拠点をカバーするだけでなく、ここでお聞きしたかった、これは非常にマック特有のものであり、同様にアップルのフォーラムでそれを尋ねることでしょう実現しています。)

更新:なぜ説明しやすくするために私はこれをしたい、フロントエンドのWebサイトに加えて、私も実行したい一連のスクリプトを持っている。/homeディレクトリ(特にサーバールートからの同じパス)を使用できる主な目標の1つは、開発用Macで同じ出力パスを使用し、運用サーバーでも使用できるようにすることです。私はこれを回避する方法があることを知っていますが、私はむしろそれに対処する必要はありません。実際の目標は、開発用Macのすべてのファイルに、本番サーバーと同じディレクトリツリーの/ rootからの同じファイルパスを持たせることです。

もう1つの更新:これについて先に言及したことを忘れたもう1つの理由は、基本認証を使用するときに.htaccessパスを設定することです。これらのパスはウェブサイトのdocrootではなくファイルシステムのルートからのものなので、ツリーの一部であるときには "/ home"を通過します。

+0

が鳴ります。 –

+0

私は上記のアップデートを追加しました。実際には、私が実行しているプロダクトと同じファイルパスをデベロッパーMacにプロダクションサーバーとして追加したいという二次的なスクリプトがたくさんあります。 –

+0

注:アップルのサポートサイトでお尋ねしてください。 http://discussions.apple.com/thread.jspa?threadID=2138336&stqc=true –

答えて

55

注:2015年以降、私はもはやこの方法を使用または推奨しません。代わりに、私はVagrantを使用して、仮想マシンの開発とテストをセットアップします。無料で、比較的簡単で、プロダクション環境のマッチングを改善できます。これは開発環境を完全に分離し、必要なだけ多くのことを行うことができます。 強くお勧めします。私は後世のために元の答えを残しています。


私は答えhere on the Apple forumsを見つけました。

/homeディレクトリを再利用するには、/etc/auto_masterファイルを編集し、/homeという行をコメントアウト(または削除)します。変更を有効にするには、この後に再起動する必要があります(または、nilbusのコメントごとにsudo automount -vcを実行してみてください)。これはMac OS X 10.5(Leopard)で動作します。あなたの穀物はバージョンによって異なるかもしれませんが、似ているはずです。そのフォーラムの投稿で述べたように

することは、あなたもタイムマシンが自動的に/homeディレクトリを除外してはない戻ってそれをアップを行うことに注意する必要があります。警告の


一つのノートでは、システムのアップデートを行う前に、手動で/homeディレクトリをバックアップしてください。私は私が行ったアップデート(例えば10.6から10.7へ)の1つが、警告なしで/homeに保存したものを一掃したと思います。私は何が起こったのかを100%確信しているわけではありませんが、それは見通しにあるべきものです。

+9

リブートする必要はありません。ただ実行する:sudo automount -vc –

+0

アップルのフォーラムへのリンクが切れています。 – Juve

+0

AppleはフォーラムのURLの形式を変更しました。新しい場所を指すようにリンクを更新しました。 –

-2

MAMPを実行してSitesディレクトリを使用するのはなぜですか?あなたはlocalhostを開発して、あなたのサイトのエイリアスをたくさん用意することができます。私はなぜあなたが特にホームディレクトリを使用する必要があるのか​​分かりません。


EDIT: [OK]を、私はあなたの問題間違った方法を解決するについて行くていると思います。

あなたが心配しているHTMLパスの場合は、スラッシュ「/」を使用してすべてを開始します。スラッシュ「/」は、それを家庭向けのディレクターに設定します。

PHPのリファレンスの場合は、グローバル(または類似のもの)を作成してサイトのルートとして設定する必要があります。次に、グローバルからすべてを参照することができます。また、開発者からプロダクションにサイトを移動するときに、変更する必要があるのはグローバルです。

プロダクションサーバーのように見えるので、/ homeから開発するという方法で試してみるのは悪い考えです。

MAMPをインストールし、階層のどこかにグローバルを作成して再参照を開始します。それは長期的には苦痛が少ないでしょう。

+0

ウェブサーバー問題ではありません。私はapacheを実行しても問題ありません。私が実際にやっているのは、/ homeディレクトリ自体を使用しているところです。同じ質問が、使用されているサーバーに関係なく適用されます。私は上記のコメントを追加しますが、本当の理由は私が実行しているローカルスクリプトがあり、ローカルのdevbox上のパスを定義してプロダクションのものと一致させたいと思っています。そうすれば、展開中に変更する必要はありません。 –

+0

シンボリックリンクを使用して、ローカルスクリプトが/ homeディレクトリで動作していると思うようにしてください。 –

+0

しかし、これはMAMPのような環境を使用することです...あなたが好きだが、パスはまったく同じでなければならないあなたの開発環境を設定することができます。相対パスまたは正確なパスを使用していますか? – Evernoob

8

上記のヒントやヒントから一緒にすべてを置く:

  • それで/homeとラインアウト編集/etc/auto_masterコメント。

  • 再マウント:

    sudo automount -vc

  • MAC-ifiedディレクトリへのソフトリンクします。その時点で

    sudo ln -s $HOME /home/$USER

を、あなたのパスが一致アップをすべきですプロダクションパスに追加します。 env varsはまだ/Users/xxxxを指していますが、.bashrcのパス、つまり~/.pip/pip.confのパスにハードコードされているものは、本質的に同等である必要があります。私のために働いた。

re:"実際の目標は、開発用Macのすべてのファイルに、プロダクションサーバーと同じディレクトリツリーの/ルートから同じファイルパスを持たせることです。"生産上

、私のデプロイ作業が/opt/projects/projnameに起こるかもしれないので、私はちょうど私のアカウントが/opt/projectsに書き込み、そこから行くことができることを確認します。私はこのような何かをすることから始めたい:

sudo mkdir /opt/projects sudo chown $USER /opt/projects mkdir /opt/projects/projname cd /opt/projects/projname

LVMで、私は/opt/のために別のパーティションを設定しますし、代わりに$HOMEのがアプリのデータを書き込みます。それでは、プロジェクトのためのディスク容量が必要な場合(LVMはあなたの友人です)、/optファイルシステムを拡張できます。

9

私はYosemiteで試しました(OS X 10。10.1)sudo automount -vcが機能しなかったので、sudo umount /homeを使用しなければなりませんでした。

したがって、私のワークフローは次のようになります。あなたはWordpressのか、地元のdevの超うまく処理しない別のCMSを使っているよう

# comment out line starting with /home sudo vi "+g/^\/home/s/\//#\//" "+x" /etc/auto_master sudo umount /home # link actual home directory (/Users/<user>) to new 'home' (/home/<user>) ln -s $HOME /home/$USER