2017-02-20 6 views
0

私はApache 2.4をUbuntu 16にインストールしましたが、すべて動作します。Apacheエイリアスが.htaccessで動作しない

私はローカルホストに座っているウェブサイトを持っていますが、これもうまくいきます。

ウェブサイト内で使用するには、USBドライブ上のファイルにアクセスできる必要があります。

私はUSBドライブにアクセスしてファイルの情報を取得するためにPHPを使用していますが、これは問題なく動作しますが、Webページに画像を表示しようとすると問題が発生します。

私はここに、.htaccessファイルを使用してウェブサイトにUSBドライブ上のフォルダを追加するにはmod_aliasを使用しようとしている内容は、私の.htaccessファイルにある

DirectoryIndex index.php 
    Alias "/USB" "/mnt/sdb1/images" 
    <Directory "mnt/sdb1/images"> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all granted 
    </Directory> 
    AddType audio/mpeg .mp3 

だから私は知っています。 LocalHostに行くとindex.phpファイルがメインファイルとして読み込まれるため、htaccessファイルが動作しています。

私は、PHPスクリプトがアクセスしてページに表示する画像ファイルを収集したため、USBドライブのファイルパスが正しいことを知っています。したがってPHPはscandirを使用してフォルダ内のすべての画像(/ mnt/sdb1/images)、画像を正しく表示するようにページにエコー表示します。

<img src="/USB/image1.jpg" /> 

しかし、画像はページ自体に読み込まれていないので、エイリアスが動作していないと思われます。

助けてください。

答えて

0

1つの可能性は、USBファイルにwww-データアクセスを許可する必要があることです。通常、Apacheのディレクトリに、次のようなものに所有者を設定します。

chown root:www-data * 
chmod 750 * (for directories) 
chmod 640 * (for files) 

しかし、あなたは、USBドライブ(申し訳ありませんが、USBを扱ったことがない)の上にそれを行うことができない場合があり、それは、特定のグループがある場合、あなたはそのグループにWWW-データを追加することができます。

sudo usermod -a -G <USBGroup> www-data 

ので、例えば、私は推測しています私の仮想マシン(/メディア/ sf_node)、上の共有ドライブを持っているが、USBドライブのように多くの作品。私は、次のコマンドを実行したときにそう:

ls -la /media/sf_node 

を私が参照してください。そのディレクトリのグループvboxsfを示し

drwxrwx--- 1 root vboxsf 4096 Jan 27 11:10 web 

を。それから、私はできる:

usermod -a -G vboxsf www-data 
+0

あなたの助けをありがとう。 私はPHPを介してドライブにアクセスできるという事実は、私の許可が良いことを意味するのではないでしょうか? –

+0

コードが実行されているときにPHPが誰であるかについてのもので、ファイルへのアクセス権が必要です。 PHPがあなたのユーザ名で実行されているとき、あなたの特権を持っていますが、Apacheの下で実行されているときは、www-data – Katie

+0

ありがとうございます。私は次のことを試みた。 のsudoのchown -Rルート:WWWのデータを/ mnt/sdb1が しかしそれは操作が許可されていない "と述べ –

関連する問題