当我尝试点击 dwww 生成的网页上的链接时,出现以下错误:
Not Found
The requested URL /cgi-bin/dwww/usr/share/doc/ was not found on this server.
Apache/2.4.10 (Ubuntu) Server at randys-laptop Port 80
我已经安装了 Debian 文档浏览器包。
我究竟做错了什么?
答案1
dwww
用于cgi
提供网页服务,并且默认情况cgi
下不再启用apache2
;因此您需要启用cgi
:
sudo a2enmod cgi
然后apache2
使用以下命令重新启动服务:
service apache2 restart
dwww
这将解决您在返回时遇到的主要问题not found
。
但您可能会遇到另一个问题。dwww
允许从 Web 服务器访问/var/www/dwww
和中的文件/usr/share/doc
(并且它将跟随其他目录中的符号链接到/usr/share/doc
)。
您可能会发现的另一个问题是某些文档文件不存在/usr/share/doc
。
例如(这取决于您安装了什么文档),中的某些目录/usr/share/gtk-doc/html
符号链接到。这些目录将毫无问题地/usr/share/doc/...
显示。dwww
但其他文件则不会自动显示。/usr/share/gtk-doc/html/atk
例如,目录未使用符号链接/usr/share/doc
。尝试使用dwww
以下命令打开这些文件:
dwww will not allow you to read the file /usr/share/gtk-doc/html/atk/index.html
可能存在涉及apache2
/dwww
配置的解决方案;但我不是apache2
安全专家,也不想引入问题。
file://
简单的解决方法是对发现此问题的(非常)少数文件使用该协议。
对于atk
上面的文档示例,生成的 URL 是:
http://<server-name>/cgi-bin/dwww/usr/share/gtk-doc/html/atk/index.html?type=html
您可以转到地址栏并将其编辑为:
file:///usr/share/gtk-doc/html/atk/index.html?type=html
然后文件就会加载。
答案2
关于此dwww will not allow you to read ...
问题:
dwww
将仅显示其DWWW_DOCPATH
设置中列入白名单的路径中的文件/etc/dwww/dwww.conf
。
默认值是/usr/share/doc:/usr/share/info:/usr/share/man:/usr/local/share/doc:/usr/local/share/info:/usr/local/share/man:/usr/share/common-licenses
。不是跟随符号链接,因此你必须手动添加它们的目标。