跳转到内容

XForms/Apache

来自维基教科书,开放的书籍,开放的世界

Apache 网络服务器是互联网上最受欢迎的网络服务器。它提供高性能的网页服务,非常安全。

默认情况下,开箱即用的 Apache 服务器不允许用户将文件写入网络服务器。这是出于安全原因。

警告:以下内容仅应在内联网服务器上使用,并应由您组织的安全专业人员进行审查。

配置 Apache HTTP 服务器以启用“PUT”操作的步骤

[编辑 | 编辑源代码]
  1. 从 apache.org 下载并安装 HTTP 服务器。我使用的是 v2.2.4
  2. 验证它是否按预期提供常规的 xhtml 文件
  3. 停止服务
  4. 在您的 httpd.conf 中,取消对 dav_module 和 dav_fs_module 的 LoadModule 的注释,还取消对“Include conf/extra/httpd-dav.conf”行的注释,以便加载 httpd-dav.conf
  5. 编辑 conf/extras/httpd-dav.conf 并更改“uploads”别名和目录,使其符合您的要求。当然,它们应该匹配。
  6. 要对用户进行身份验证,您可以使用 htpasswd 命令行程序来创建密码并将其放在 uploads 目录中。当然,您也可以在项目的测试阶段禁用密码保护。

示例 httpd-dav.conf 文件

[编辑 | 编辑源代码]

这是我的 httpd-dav.conf 完成后的开头部分

   DavLockDB "E:/httpd/Apache2.2/var/DavLock"
   Alias /uploads "C:/www/xforms/uploads"

   <Directory "C:/www/xforms/uploads">
   Dav On

   Order Allow,Deny
   Allow from all

#AuthType Digest

   AuthType Basic
   AuthName DAV-upload

# You can use the htdigest program to create the password database:
# htdigest -c "E:/httpd/Apache2.2/user.passwd" DAV-upload admin
# AR: I used htpasswd -> htpasswd -c "C:/www/xforms/uploads/user.passwd" admin
#AuthUserFile "E:/httpd/Apache2.2/user.passwd"
   AuthUserFile "C:/www/xforms/uploads/user.passwd"

# Allow universal read-access, but writes are restricted
# to the admin user.
   <LimitExcept GET OPTIONS>
      require user admin
   </LimitExcept>
   </Directory>

重新启动 Apache

[编辑 | 编辑源代码]

对 Apache 配置文件进行任何更改后,您必须使用 Apache 重新启动命令重新启动 Apache,例如

  apachectl restart

 apachectl stop
 apachectl start

如果遇到问题,请确保检查 Apache 日志文件。如果您遇到错误,您可能没有为表单写入的文件夹设置正确的权限。

检查访问日志文件

[编辑 | 编辑源代码]

如果您的表单未保存,您还可以检查 Apache 访问日志文件。它们通常位于以下目录中:

  Windows: C:\Program Files\Apache Software Foundation\Apache2.2\logs\access.log

如果您看到类似以下内容的行:

192.168.1.105 - - [08/Feb/2007:16:58:01 -0600] "PUT /forms/data.xml HTTP/1.1" 405 235

这表明您收到的是 **HTTP 405 错误**:方法不允许。当客户端尝试使用服务器不允许的“请求方法”(如 PUT 或 POST)时,会返回 405 状态代码。这意味着您的配置尚不正确,并且您的 XForms 不会保存其数据。

参考资料

[编辑 | 编辑源代码]

此示例由来自 IBM Corporation Austin TX 的 Aaron Reed 建议。


华夏公益教科书