2017-03-04 53 views
0

私の仮想サーバーのルートディレクトリの外にあるmp3ファイルでいっぱいのディレクトリにアクセスしたい。ドキュメントルート以外のファイルにアクセスする

私は、運がない仮想ホストでさまざまな構成を試しました。私が読むほど、私はより多くの異なるソリューションを見ています。それらのどれも私のために働かない。ここで

は、私は、私は、Apacheを再起動し、私はその後、

<?php 
    $root = $_SERVER["DOCUMENT_ROOT"]; 
    $time = new Datetime(); 
    echo $time->format ("H:i:s")."<br>"; 

    echo $root."<br>"; 
    echo realpath ("$root/mp3music")."<br>"; 

    $biglist = scandir ("$root/mp3music/"); 

?> 

でPHPからファイルにアクセスしようと結果は

Warning: scandir(/var/www/www.dmdefd.com/mp3music/): failed to open dir: No such file or directory in /var/www/www.dmdefd.com/musicmanager/aliases.php on line 9 

Warning: scandir(): (errno 2): No such file or directory in /var/www/www.dmdefd.com/musicmanager/aliases.php on line 9 

ある

DocumentRoot /var/www/www.dmdefd.com 

    ServerName www.dmdefd.767 

    <Directory "/var/www/www.dmdefd.com"> 
     allow from all 
     Options Indexes FollowSymLinks MultiViews 
     Require all granted 
    </Directory> 

alias /mp3music '/media/dmd/DUsers/music' 



    <Directory "/media/dmd/DUsers/music"> 
     #Options Indexes MultiViews FollowSymLinks - no help 
     Options +Indexes 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

を管理することができる最善の方法です仮想サーバーは正常に動作し、ファイルにアクセスできないことに注意してください。

+0

ディレクトリをソフトリンクまたはハードリンクしてみましたか? Apacheはdocroot afaik – Psi

+0

ハードリンクが機能しません。ドキュメントルート外のファイルにアクセスできるはずです。スタックオーバーフローには多くの例があります。私はそれを働かせることができません。 –

+0

私は同じことをやろうとしたことを知っています。私が知る限りは、コア設定のどこかに、そのディレクトリにApacheをロックするディレクトリがあるという事実が原因でした。 – Psi

答えて

0

PHPコードは、DOCUMENT_ROOT CGI変数のもとでディスク上の音楽を探します。 DOCUMENT_ROOTは1つだけです。エイリアスまたはmod_userdir経由でファイルにアクセスすると変更されません。

Apacheは、2.4では、CONTEX_DOCUMENT_ROOTと呼ばれる比較的最近/優先度が追加されています。これは、別名ディレクティブによって提供される接頭辞です。

それ以外の場合は、Apache設定で独自の環境変数を設定するだけで、PHPコードで音楽がどこに直接存在するかを知ることができます。

関連する問題