Как я настраиваю полномочия для апача запустить fastCGI программы?

Я пытаюсь заставить Apache2.4 запускать скомпилированные fastcgi программы на Ubuntu система на основе 14.04. Я использую mod_fastcgi и получаю ошибки

FastCGI: can't start server "/var/www/fcgi/fhello.fcgi" (pid 29037), execle() failed: Permission denied
[Sun Jun 14 14:16:23.322632 2015] [:warn] [pid 29022] FastCGI: server "/var/www/fcgi/fhello.fcgi" (pid 29037) terminated by calling exit with status '255'

мой апачский блок конфигурации похож

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiWrapper /var/lib/apache2/fastcgi
  FastCgiServer /var/www/fcgi/fhello.fcgi -socket /var/www/fcgi/fhello.sock -user www-data -group www-data
  ScriptAlias /fhello "/var/www/fcgi/fhello.fcgi"
  <Directory /var/www/fgci>
    Require all granted
    Options ExecCGI
  </Directory>
</IfModule>

если помогает, что код fhello

#include "fcgi_stdio.h" /* fcgi library; put it first*/
#include <stdlib.h>

int count;

void initialize(void) {
  count=0;
}

int main(void) {
/* Initialization. */  
  initialize();

/* Response loop. */
  while (FCGI_Accept() >= 0) {
    printf("Content-type: text/html\r\n"
      "\r\n"
      "<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
      "<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
      "Request number %d running on host <i>%s</i>\n",
      ++count, getenv("SERVER_HOSTNAME"));
  }
  return 0;
}

www-данные владеют и имеют исполнительные права на программу и имеют полномочия записи к fcgi dir для файла носка. Это - мой первый раз, настраивая что-либо для выполнения как fastcgi помимо жемчуга навсегда назад, и мне, кажется, недостает google-fu для нахождения эффективной информации об этом предмете.

Если кто-либо может указать на то, что я делаю неправильно или что я пропустил, сделайте так.

0
задан 12 December 2017 в 21:37

1 ответ

Таким образом, после некоторой поверхности, гладящей фрагмент кода, я использовал seg, давший сбой в getenv("SERVER_HOSTNAME"), видят

  "Request number %d running on host <i>%s</i>\n",
  ++count, getenv("SERVER_HOSTNAME"));

, таким образом, я заменил это (также зафиксировал HTML)

   "Request number %d running on host <i>host</i></body></html>\n",
    ++count);

, и в апачской конфигурации я упростил его до

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiServer /var/www/fcgi/fhello.fcgi
  ScriptAlias /fhello.fcgi "/var/www/fcgi/fhello.fcgi"
</IfModule>

разрешение серверу управлять подключением. Я все еще не выяснил проблему полномочий, которую я получал выше, но все работает, поскольку я хочу ее теперь.

1
ответ дан 4 October 2019 в 03:21

Другие вопросы по тегам:

Похожие вопросы: