1

我有一个大硬盘驱动器,我想存储数据映射服务器(在 Apache 下作为 cgi-bin 运行),但是在尝试访问数据时却出错了。

当我尝试使用 mapserver 访问 /bac/data/gis 中的任何内容时,我得到:

msDrawMap():图像处理错误。未能绘制名为“世界”的图层。msShapefileOpen():无法访问文件。(/var/www/html/gis/world.shp) msShapefileOpen():无法访问文件。(/bac/data/gis/global/world.shp)

从地图服务器日志文件:

[Fri Aug  2 01:12:15 2013].100850 CGI Request 1 on process 28658
[Fri Aug  2 01:12:15 2013].105687 msDrawMap(): rendering using outputformat named png (AGG/PNG).
[Fri Aug  2 01:12:15 2013].105731 msDrawMap(): WMS/WFS set-up and query, 0.000s
[Fri Aug  2 01:12:15 2013].105819 msShapefileOpen(): Unable to access file. (/bac/data/gis/global/world.shp)
[Fri Aug  2 01:12:15 2013].105838 msShapefileOpen(): Unable to access file. (/var/www/html/gis/world.shp)
[Fri Aug  2 01:12:15 2013].105848 msDrawMap(): Image handling error. Failed to draw layer named 'world'.
[Fri Aug  2 01:12:15 2013].106077 mapserv request processing time (msLoadMap not incl.): 0.005s
[Fri Aug  2 01:12:15 2013].106085 msFreeMap(): freeing map at 0x1bdfde0.

我还尝试使用 Apache 直接访问数据,看看它是否可以读取 /bac/data/gis 中的任何内容。这是通过向 httpd.cfg 文件添加 ailes 和目录指令来完成的。这会在 httpd-error 日志中显示流动的错误消息而失败。

[Thu Aug 01 22:52:37 2013] [error] [client 192.168.0.1] (13)Permission denied: access to /gis/ denied (filesystem path '/bac') because search permissions are missing on a component小路

文件系统挂载为“/bac”,数据在 /bac/data/gis 我的 httpd 目录是 /var/www/[html cgi-bin]/

我已确保对 /bac/dat/gis 路径中的所有控制器具有 +x 权限。我都禁用了 seliux,因为这通常是我在面临访问被拒绝情况时尝试的第一件事。

是否可以使用 Apache 和 cgi-bin 脚本(例如 mapserver)访问其他文件系统上的数据?

4

1 回答 1

1

正如 arkascha 指出的,在考虑访问权限时,挂载点和文件系统是无关紧要的。您应该检查您的 apache 用户是否有权访问这些文件:

user@host$ sudo su apache (apache may need to be replaced by httpd, www-data, check your apache config file to see under which user apache runs)
apache@host$ ls /bac/data/gis/global/world.shp

如果 ls 命令返回权限错误,则您已确定错误原因。在这种情况下,检查 /bac/data/gis/global/world.shp 上的权限是否对 apache 有“+r”(可能是“其他”),并且所有中间目录都有 +x。

sudo chmod o+r /bac/data/gis/global/world.*
sudo chmod o+x /bac
sudo chmod o+x /bac/data
sudo chmod o+x /bac/data/gis
sudo chmod o+x /bac/data/gis/global
于 2013-08-06T10:37:23.727 回答