誰かが以前にこの質問をしたり回答したりしたことがあると思いますが、私の検索ではあまり役に立たなかったので...
私のLinuxボックス(LM13)にはEclipse IDEがインストールされており、「ワークスペース」フォルダは@にあります。
/home/user/projects/workspace
私はApacheをインストールしてセットアップし、さまざまな仮想ホストで動作させていますが、それらはすべてWebルートの下のどこかにフォルダを持っています。/var/www/...
私が抱えている問題は、Eclipse ワークスペース内のプロジェクト用に構成した vhost に Apache がアクセスできず、「403 - 禁止 - このサーバーの / にアクセスする権限がありません」というエラーが表示されることです。
まず、通常のvhost構成を試し、次に
/var/www/freelance/project
EclipseワークスペースのプロジェクトフォルダーにリンクされたWebルート@の下のSymLinkを使用してみました。
セクションのオプション ディレクティブの両方FollowSymLinks
を試しましたが、ブラウザーで Apache を使用してアクセスすることはできません。SymLinksIfOwnerMatch
<directory ...>
この設定を機能させる方法を教えてください。mod_userdir
まだ試していませんし、フォルダーのファイル権限を設定して/home
Apache へのアクセスを許可したこともありません。どちらも好ましくないようです。別の方法はありますか?
私の vhost 設定は次のとおりです:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>
アップデート
出力元ls -alFd ~/Projects/workspace/iagd
:-
drwxr-xr-- 6 user www-data 4096 Aug 22 14:12 IAGD/
同じ出力/home/user
:-
drwx------ 74 user user 20480 Aug 23 07:30 /home/user/
答え1
ホーム ディレクトリのサブディレクトリに Directory ディレクティブを追加する必要があります。Apache がシンボリック リンクにアクセスする場合、シンボリック リンク ポインタではなく、シンボリック リンクが指す実際のディレクトリがアクセスされます。
したがって、必要なものは次の 2 つです。
まず、オペレーティング システムの権限です。ディレクトリは Apache ユーザーに対して読み取り可能である必要があります。つまり、その上の階層にあるすべてのディレクトリに Apache ユーザーの実行ビットが設定されている必要があります。
次に、Apache の設定です。Apache に、そのディレクトリからの読み取りが許可されていることを伝える必要があります。通常は、Apache が読み取りを許可されるディレクトリ階層を限定する必要があります。そうしないと、すべての Web ユーザーが、たとえばパスワード ファイルを見たり、全員のホーム ディレクトリを閲覧したりできるようになります。したがって、Web ルート階層外のディレクトリにアクセスしたい場合は、Apache に許可するように伝えるディレクティブを追加する必要があります。次のようになります。
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
<Directory /home/user/projects/workspace>
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>