У меня почти полная установка apache, которая отказывается выполнять сценарии CGI.
Чтобы включить функциональность CGI, я сделал следующее:
- Включил модуль mod_cgi (a2enmod cgi)
- Включена конфигурация CGI по умолчанию (a2enconf serve-cgi-bin)
- Назначена оболочка / bin / bash пользователю www-data
- Перезагрузка сервера
После этого я поместил эти файлы в / usr / lib / cgi-bin:
#!/usr/bin/env python3
with open('/tmp/itexists', 'w') as f: f.write('well, we got that far, at least')
print("Content-Type: text/html\n\n")
print('something')
#include <stdio.h>
int main( void ) {
FILE* f = fopen("/tmp/cpowah", "w"); fwrite("WORKS!!!!\n", 10, 1, f); fclose(f);
printf("Content-Type: text/plain\n\n");
printf("Blah-Blah-Blah");
}
test. c был скомпилирован в test.exe
Затем все эти файлы были назначены www-data user / group и при наличии соответствующих разрешений (например, 755)
Если я запускаю их вручную как пользователь www-data, они работают так, как они должны, но когда я пытаюсь сделать запрос к localhost / test.py или Вместо этого localhost / test.exe я получаю сообщение «500 Internal Server Error».
Для каждой попытки запустить один из этих сценариев error.log имеет рекомендацию Вот так: End of script output before headers: test.py
На самом деле, похоже, что Apache даже не пытается запустить эти скрипты: не создаются ни / tmp / itexists, ни / tmp / cpowah. Я не использую SE Linux и mod_suexe c также не используется. Apache версия 2.4.29-1ubuntu4.13
Кто-нибудь знает, что здесь может быть не так?