Apache Alias ​​не работает в.htaccess

Я установил Apache 2.4 на Ubuntu 16, все работает.

У меня есть сайт, сидящий на 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" />

Но изображения не загружаются на самой странице, и я предполагаю, что это потому, что псевдоним не работает.

Пожалуйста помоги.

1 ответ

Решение

Одна из возможностей заключается в том, что вам необходимо предоставить www-доступ к данным USB-файлам. Обычно в каталогах Apache вы устанавливаете владельца на что-то вроде:

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

Но, возможно, вы не сможете сделать это на USB-накопителе (извините, никогда не имел дело с USB), но если это определенная группа, вы можете добавить www-data в эту группу:

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

Так, например, у меня есть виртуальный диск на моей виртуальной машине (/media/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
Другие вопросы по тегам