Wt FastCGI Неполные заголовки (0 байт), полученные от сервера

Я изо всех сил пытаюсь настроить Apache для работы с приложением Wt на FastCGI.

Я использую Arch Linux и Apache 2.4.7.
gcc 4.9.0 20140604

Привет, мир пример, который является самым простым примером, после компиляции выдает мне эту ошибку:

[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.

Каждый намек в основном ценится.

2

Решение

У меня была похожая ошибка, но я не помню точно, что это было, и были ли у меня другие проблемы, но, возможно, ваша главная проблема в том, что вы не создали /var/run/wt папка, используемая Wt для управления сеансами, когда он использует соединитель fastcgi.

Дело в том, что, по крайней мере, в Ubuntu, /var/run использует файловую систему tmpfs, которая является файловой системой, смонтированной непосредственно в ОЗУ и, следовательно, удаляемой при каждой перезагрузке. Таким образом, вы должны убедиться, что папка существует и имеет соответствующие разрешения при каждой перезагрузке сервера.

Зачем /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
1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector