2017-02-20 2 views
0

Я установил Apache 2.4 на Ubuntu 16, все работает.Apache Alias ​​не работает .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), и это echos на странице правильно, чтобы показать изображения, например;

<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 Однако он сказал: «Операция не разрешена» –