gpt4 book ai didi

c++ - 从服务器收到的 Wt FastCGI 不完整 header (0 字节)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:21 25 4
gpt4 key购买 nike

我正在努力设置 Apache 以在 FastCGI 上使用 Wt 应用程序。

我使用的是 arch linux 和 Apache 2.4.7。海湾合作委员会 4.9.0 20140604

hello world例子,这是最简单的例子,编译后给我这个错误:

[Thu Sep 11 22:46:01.208926 2014] [fastcgi:error] [pid 27628] (101)Network is unreachable: [client 127.0.0.1:52788] FastCGI: failed to connect to server "/xxx/hello/hello.wt": connect() failed, referer: http://local.hello/
[Thu Sep 11 22:46:01.208992 2014] [fastcgi:error] [pid 27628] [client 127.0.0.1:52788] FastCGI: incomplete headers (0 bytes) received from server "/xxx/hello/hello.wt", referer: http://local.hello/

这是我的做法:

编译:

$ g++ -o hello.wt hello.cpp -lwtfcgi -lwt

我的虚拟主机:

<VirtualHost *:80>
ServerAdmin admin@xxx.com
DocumentRoot "/xxx/hello"
ServerName local.hello
ErrorLog "/var/log/httpd/local.hello-error_log"
CustomLog "/var/log/httpd/local.hello-access_log" common
<Directory /xxx/hello/>
Options All
Require all granted
</Directory>
FastCgiExternalServer /xxx/hello/hello.wt -host 127.0.0.0:9090
</VirtualHost>

还有我的 fastcgi.conf,它包含在 httpd.conf 中:

<IfModule fastcgi_module>
AddHandler fastcgi-script .wt
# FastCgiIpcDir /tmp/fcgi_ipc/ # DOESN'T COMPILE WITH THIS UNCOMMENTED
FastCgiConfig -idle-timeout 100 -maxClassProcesses 1 -initial-env WT_APP_ROOT=/tmp
</IfModule>

如果我编译它:

$ g++ -o hello.wt hello.cpp -lwthttp -lwt

并运行它:

$ ./hello --docroot . --http-address 0.0.0.0 --http-port 9090

一切正常,所以我认为它与我的 apache/fastcgi 设置有关。

非常感谢每个提示。

最佳答案

我有一个类似的错误,但我不记得它到底是什么,以及我是否有不同的问题,但也许你的主要问题是你没有创建 /var/run/wt Wt 使用 fastcgi 连接器时用来管理 session 的文件夹。

问题是,至少在 Ubuntu 中,/var/run使用 tmpfs 文件系统,这是一个直接安装在 RAM 中的文件系统,因此在每次重启时都会被删除。因此,每次重新启动服务器时,您都需要确保该文件夹存在并具有适当的权限。

为什么 /var/run/wt而不是另一个文件夹?这取决于您在 wt_config.xml 中设置的文件夹文件。在 Ubuntu 14.04 中,该文件位于 /etc/wt/wt_config.xml 下; XML 标记 <run-directory> , 在 <connector-fcgi> 下部分。如果需要,您可以更改该指令以指向另一个持久文件夹。

然而,我所做的是创建一个 init创建 /var/run/wt/ 的作业文件夹,创建文件 /etc/init/witty.conf具有以下内容(upstart 脚本):

#
# This task is run on startup to create the Witty's run folder
# (currently /var/run/wt) with suitable permissions.

description "set witty's run folder (/var/run/wt)"

start on startup

task
exec /usr/local/bin/witty_mkrunfolder

还有我的witty_mkrunfolder可执行文件是:

#!/bin/bash

mkdir /var/run/wt
chown -R root:www-data /var/run/wt
chmod -R 770 /var/run/wt

额外:witty_mkrunfolder权限:

$ chown root:root witty_mkrunfolder
$ chmod 750 witty_mkrunfolder

关于c++ - 从服务器收到的 Wt FastCGI 不完整 header (0 字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25799993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com