Estou tentando configurar o servidor da Web Lighttpd com um script cgi básico e SIMPLES. Eu não preciso de fastCGI nem nada (eu poderia usar PHP, mas o ubuntu agora força você a usar o PHP7 que quebra todos os scripts PHP5 que eu tenho obrigado pela comunidade PHP!).
De qualquer forma, perdi os últimos 2 dias com este problema, o que não deve ser um problema, mas por alguma razão as versões recentes do Ubuntu quebraram coisas que costumavam sempre funcionar.
Soooo .. Aqui está o problema.
Lighttpd instalado ... ok funciona bem
Ativado o módulo CGI ... ok, bom
no arquivo de configuração 10-cgi.conf alterado:
cgi.assign = (
# ".pl" => "/usr/bin/perl",
# ".php" => "/usr/bin/php-cgi",
# ".py" => "/usr/bin/python"
)
para:
cgi.assign = (
# ".pl" => "/usr/bin/perl",
# ".php" => "/usr/bin/php-cgi",
".py" => "/usr/bin/python"
)
Verificamos que / usr / bin / python está realmente nesse caminho .... ok..good.
criou um diretório cgi-bin .... ok
definir permissões no diretório cgi-bin para estar no grupo e pertencer a: www-data .... ok
criou um arquivo cgi python de teste no diretório cgi-bin, e o definiu como executável e fez um chmod 0755 test.py .... ok ... bom. suceess
abriu um navegador da Web: link ... BOOM
funciona, sim, mais ou menos. Quer baixar a resposta da web como um arquivo chamado test.py. Na verdade, ele não está baixando o arquivo python no servidor, apenas a resposta que o servidor da Web deve enviar de volta ao navegador. Eu comecei a trabalhar antes e trabalhei sem problemas. Mas, como eu disse, o que os desenvolvedores de distros do ubuntu estão fazendo, está quebrando muitas coisas que costumavam funcionar. Portanto, tutoriais on-line são remendados, na melhor das hipóteses.
no começo eu pensei que talvez algumas configurações MIME não estivessem corretas, então eu adicionei manualmente o Python MIME ao arquivo lighttpd.conf. Não parece mudar nada. Eu adicionei o seguinte na parte inferior do arquivo lighttpd.conf:
mimetype.assign += ( ".py" => "text/x-python" )
mimetype.assign += ( ".pyo" => "application/x-python-code" )
mimetype.assign += ( ".pyc" => "application/x-python-code" )
aqui estão os meus dois arquivos de configuração:
10-cgi.conf:
# /usr/share/doc/lighttpd/cgi.txt
server.modules += ( "mod_cgi" )
## Warning this represents a security risk, as it allow to execute any file
## with a .pl/.php/.py even outside of /usr/lib/cgi-bin.
#
cgi.assign = (
# ".pl" => "/usr/bin/perl",
# ".php" => "/usr/bin/php-cgi",
".py" => "/usr/bin/python"
)
lighttpd.conf:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
# "mod_cgi",
)
server.document-root = "/var/www/html"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc",)
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi", ".py")
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
mimetype.assign += ( ".py" => "text/x-python" )
mimetype.assign += ( ".pyo" => "application/x-python-code" )
mimetype.assign += ( ".pyc" => "application/x-python-code" )
estou apenas sendo absolutamente retardado, ou os scripts de configuração que são executados automaticamente quando o ubuntu instala o lightty são corrompidos em algum lugar?