linux apache python ошибка cgi: не удалось получить случайные числа для инициализации Python - PullRequest
0 голосов
/ 23 апреля 2020

Мой старый сервер CentOS 5 apache может без проблем запускать CGI скрипта Perl.

# cat t1.cgi
#!/usr/local/bin/perl

use CGI;
my $cgi = CGI->new();
print $cgi->header;

print "Test\n"; 



# GET HTTP://www.example.com/cgi/t1.cgi
Test

python Скрипты могут без проблем запускаться под оболочкой:

# cat t2.cgi
#!/usr/local/bin/python3

print("Content-Type: text/html\n")


print("hello!")

# python3 t2.cgi                                                                                                                                                              
Content-Type: text/html

hello!

, но не удалось выполнить сценарий python cgi:

# GET http://www.example.com/cgi/t2.cgi
<HTML>
<HEAD><TITLE>An Error Occurred</TITLE></HEAD>
<BODY>
<H1>An Error Occurred</H1>
500 Internal Server Error
</BODY>
</HTML>

apache Журналы ошибок показывают, что ошибка была:

Fatal Python error: _Py_HashRandomization_Init: failed to get random numbers to initialize Python
Python runtime state: preinitialized

Premature end of script headers: t2.cgi

любая идея будет оценена!

1 Ответ

0 голосов
/ 24 апреля 2020

исправил это как

mknod -m 444 /dev/random
chmod 444 /dev/urandom

у моих старых centos нет / dev / random, и режим файла по умолчанию для urandom был 600, только для чтения root.

...