2017-02-20 63 views
0

我已經在Ubuntu 16上安裝了Apache 2.4,所有的作品。Apache別名無法在.htaccess中工作

我有一個網站坐在localhost,這也很好。

我需要能夠訪問USB驅動器上的文件以在網站中使用。

我使用PHP訪問USB驅動器並獲取文件的信息,這工作正常,但是當我嘗試在網頁上顯示圖像時出現問題。

我使用.htaccess文件,並試圖使用mod_alias中的文件夾添加的USB驅動器到網站上,這裏是我的.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 

所以我知道了。 htaccess文件正在工作,因爲它加載我的index.php文件作爲主文件,當我去LocalHost。

我知道USB驅動器的文件路徑是正確的,因爲PHP腳本訪問它並收集圖像文件以顯示在頁面上,所以PHP使用scandir來獲取文件夾中的所有圖像(/ mnt/sdb1/images),並正確回顯到頁面以顯示圖像,例如;

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

但是圖像沒有加載到頁面本身,我認爲這是因爲別名看起來沒有工作。

請幫忙。

回答

0

一種可能性是您需要授予www數據訪問USB文件。通常在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 

我看到:

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

這表明該目錄的組vboxsf。然後我可以做一個:

usermod -a -G vboxsf www-data 
+0

感謝您的幫助。 我不能通過PHP訪問驅動器的事實意味着我的權限很好? –

+0

不是。它是關於代碼執行時PHP是誰,並且需要文件權限。當PHP在你的用戶名下運行時,它具有你的權限,但是當它在apache下運行時,它是www-data – Katie

+0

再次感謝。我嘗試了以下; sudo chown -R root:www-data/mnt/sdb1 然而,它說'操作不允許' –