【问题标题】:perl Dancer problems while running CGI with dispatch.cgi使用 dispatch.cgi 运行 CGI 时出现 perl Dancer 问题
【发布时间】:2014-07-09 09:28:24
【问题描述】:

我正在尝试让我的项目在 Dancer(perl 5.16.3 和 centos 5.10)上运行,到目前为止,这是一次愉快的体验 - 直到我尝试将它部署到服务器上。

我决定做最简单的事情,并在帮助下将其作为 CGI 应用程序运行 来自 Dancer 发行版的默认 dispatch.cgi 脚本。

我使用了 Dancer::Deployment 手册中的默认 apache 设置,但是 有些不对劲。经过一天半工作的挣扎 项目我推断出以下奇怪的事情:在运行时 dispatch.cgi,我的项目能够从 sqlite 数据库中读取,但是它 无法写入数据库,所以 Dancer::Session::DBI 不工作 正确,因此问题。

如果我使用独立的 app.pl 或使用

运行项目
plackup -E production -p 80 bin/app.pl

它工作正常并且能够将数据插入数据库。我试过改变 对 sqlite db 文件的 0666 权限,但它没有帮助。

那么为什么 sqlite 在作为 CGI 运行时会出现问题,以及如何解决这个问题?

【问题讨论】:

  • 当在cgi 中运行时,脚本正在使用您的网络服务器的用户而不是脚本的所有者,并且该用户需要对 sqlite db 文件具有读/写权限。允许 apache 对 SQLite 文件的读/写权限,你应该已经准备好了。
  • 嗯,是的。正如我所说,我什至使 dbase 文件普遍可写,但没有成功。我也将所有者更改为 apache 的用户 - 相同。

标签: apache perl sqlite cgi dancer


【解决方案1】:

嗯,这是权限问题,但不是 dbase 文件 - 因为目录包含该文件! 显然,sqlite 在更新基础时会创建一些临时文件。 小心。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2011-08-22
    • 2011-12-23
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多