Apache 别名在 .htaccess 中不工作
Apache Alias not working in .htaccess
我在 Ubuntu 16 上安装了 Apache 2.4,一切正常。
我在本地主机上有一个网站,这也能正常工作。
我需要能够访问 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 文件正在工作,因为它在我转到 LocalHost 时将我的 index.php 文件加载为主文件。
我知道U盘的文件路径是正确的,因为PHP脚本访问了它并收集了图像文件显示在页面上,所以PHP使用scandir获取所有文件夹中的图像 (/mnt/sdb1/images),它会正确回显页面以显示图像,例如;
<img src="/USB/image1.jpg" />
但是图像没有加载到页面本身,我认为这是因为别名似乎不起作用。
请帮忙。
一种可能是您需要授予 www-data 对 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
我在 Ubuntu 16 上安装了 Apache 2.4,一切正常。
我在本地主机上有一个网站,这也能正常工作。
我需要能够访问 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 文件正在工作,因为它在我转到 LocalHost 时将我的 index.php 文件加载为主文件。
我知道U盘的文件路径是正确的,因为PHP脚本访问了它并收集了图像文件显示在页面上,所以PHP使用scandir获取所有文件夹中的图像 (/mnt/sdb1/images),它会正确回显页面以显示图像,例如;
<img src="/USB/image1.jpg" />
但是图像没有加载到页面本身,我认为这是因为别名似乎不起作用。
请帮忙。
一种可能是您需要授予 www-data 对 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