サイトのウェブスペースからサーバ上の別のディレクトリへのシンボリックリンクを使用することはできますか?

Created:

2016-11-16 12:51:00 UTC

Modified:

2017-06-17 15:51:01 UTC

3

Was this article helpful?


Have more questions?

リクエストを送信

サイトのウェブスペースからサーバ上の別のディレクトリへのシンボリックリンクを使用することはできますか?

Applicable to:

  • Plesk for Linux/Unix

症状

  1. サイトのウェブスペースからサーバ上の別のディレクトリへのシンボリックリンクを使用することはできますか?

  2. ドメインエラーログに次のようなエラーが記述されています。

    # tail -f /var/www/vhosts/system/domain.tld/logs/error_log
    Symbolic link not allowed or link target not accessible:         /var/www/vhosts/domain.tld/httpdocs/public_html
    

原因

シンボリックリンクは許可されません。デフォルトで、Apache はセキュリティ上の懸念からシンボリックリンクをフォローせず、リンクにアクセスを試みると Forbidden エラーが表示されます。このような挙動は、 FollowSymLinks オプションにて制御されています。

解決策

シンボリックリンクをフォローしたい場合は、メインの Apache 構成ファイルでこのオプションを全サーバに対して有効にする必要があります。

    Options +FollowSymLinks

あるいは、シンボリックリンクを有効にしたいドメインの vhost.conf ファイルに設定することにより、ドメイン単位で設定することができます。

例:

ドメインに対してシンボリックリンクを有効にするには、 Plesk コントロールパネルで、契約> domain.tld >[Web Server Settings]>[Additional directives for HTTP] に進みます。

次のような内容にします。

<Directory /var/www/vhosts/domain.tld/httpdocs>
        Options +ExecCGI +FollowSymlinks
</Directory>

旧バージョン(11.5 より前のバージョン)の Plesk でも、これと類似の手順となります。

  1. カスタム構成ファイル /var/www/vhosts/domain.tld/conf/vhost.conf を、次のような内容で作成します。

    <Directory /var/www/vhosts/domain.tld/httpdocs> 
    Options -Includes +ExecCGI +FollowSymlinks 
    </Directory> 
    
  2. グループ所有者を apache に変更します。

    chown root:apache /var/www/vhosts/domain.tld/conf/vhost.conf
    
  3. ドメインを再構成します。

    /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain domain.tld
    

注: suexec はシンボリックリンクをフォローしません。シンボリックリンク経由で CGI スクリプトにアクセスしようとしても、機能しません。

他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。