我无法让 dwww 工作 - 不断收到 404 Not Found

UoP*_*son 8 dpkg documentation document-management

当我尝试单击 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
Run Code Online (Sandbox Code Playgroud)

我已经安装了 Debian 文档浏览器包。

我究竟做错了什么?

cha*_*kes 6

dwww用于cgi提供网页,默认情况下cgi不再启用apache2;所以你需要启用cgi

sudo a2enmod cgi
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令重新启动apache2服务:

service apache2 restart
Run Code Online (Sandbox Code Playgroud)

这将解决您在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 
Run Code Online (Sandbox Code Playgroud)

可能有一个涉及apache2/dwww配置的解决方案;但我不是apache2安全专家,也不想引入问题。

简单的解决方法是将file://协议用于发现此问题的那些(极少数)文件。

对于atk上面的文档示例,生成的 url 是:

http://<server-name>/cgi-bin/dwww/usr/share/gtk-doc/html/atk/index.html?type=html
Run Code Online (Sandbox Code Playgroud)

您可以转到地址栏并将其编辑为:

file:///usr/share/gtk-doc/html/atk/index.html?type=html
Run Code Online (Sandbox Code Playgroud)

然后文件将加载。