0

osx にインストールした xampp のサイト ディレクトリ内にシンボリック リンクを設定できません。私はApacheとシンボリックリンクの両方に不慣れですが、とにかくやってみます.

私が達成しようとしているディレクトリ構造は次のとおりです。

htdocs/symlinktest/
    whoami.php
    img/
        test.img.jpg
    app/
        ->img/
            test.img.jpg

シンボリック リンクは、次のリンク コマンドでセットアップされました。

ln -s img app

正しく設定されているようです:

drwxrwxrwx   3 username  admin   102B Aug 14 16:26 app
    lrwxr-xr-x  1 username  admin     3B Aug 14 16:26 img -> img
drwxrwxrwx   3 username  admin   102B Aug 14 16:17 img
-rwxrwxrwx   1 username  admin    29B Aug 14 23:16 whoami.php

localhost/symlinktest/ にアクセスすると、サブディレクトリとして img と app を含むディレクトリ インデックスが表示され、whoami.php が表示されます。ただし、localhost/symlinktest/app/ には空のディレクトリが表示されます。

ブラウザで whoami.php を開くと、nobody が表示されます。htdocs の親で ls -l を実行すると、htdocs について次のように表示されます。

drwxrwxr-x@  70 root    admin   2380 Aug 14 16:12 htdocs

htdocs で ls -l を実行すると、symlinktest について次のように表示されます。

drwxrwxrwx    6 username  admin       204 Aug 14 17:59 symlinktest

子ディレクトリについても同様です。

xampp/etc/ の httpd.conf でユーザー設定を変更したので、次のユーザー設定になりました。

User nobody
Group admin

すでに次のディレクティブ セットがありました。

DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Require all granted
</Directory>

変更するたびに、xamppコントロールパネルからxamppを再起動しようとしました。htdocsフォルダーをnobody:adminにchownしてみましたが、symlinktestフォルダーとサブディレクトリをnobody:adminに再帰的にchownしてみました。残念ながら、symlinktest/app/ に空のインデックスがまだあります。ブラウザで test.img.jpg を表示しようとすると、403 が返されます。

スタックオーバーフローや他のサイトで同様の質問に対して受け入れられたすべての回答を確認しましたが、運がありませんでした。

私は途方にくれており、間もなく立ち上げられるプロジェクトに間に合うように展開戦略を立てるのにかなり遅れをとっています。ヘルプ、アドバイス、またはリダイレクトをいただければ幸いです。

(明確にするために、これを行う理由は、大きい静的ファイル ディレクトリをリポジトリから分離して、プッシュ/プルを高速化するためです。)

4

1 に答える 1

1

g+ に関する回答を提供してくれた Bryan Encina に感謝します。

答えは、詳細を確認することです。私はシンボリックリンクを参照する自己を作成していました。私が理解した方法では、シンボリックリンクのパスはコマンドに対して相対的でしたが、ターゲットは実際には最後のシンボリックリンクへの相対パスでなければなりません。したがって、次のようにシンボリックリンクを設定する必要がありました( に注意してください../):

ln -s ../img app

問題は、単に詳細を再確認するのではなく、私が最もよく知らないことにあると思い込んでいました。

ダープ。

于 2013-08-16T14:57:31.980 に答える