Saudações,
Por muitas vezes nós nos deparamos com uma outra situação eu que precisamos adaptar e/ou criar funções, classes, objetos, etc no PHP para que o mesmo execute uma tarefa que "aos olhos" de outra linguagem se resolveria com poucas linhas de comando...
Neste ponto entra o poder do CGI - Common Gateway Interface.
CURIOSIDADE:
O PHP foi um simples conjunto de binários Common Gateway Interface (CGI) escrito em linguagem de programação C.
O PHP foi um simples conjunto de binários Common Gateway Interface (CGI) escrito em linguagem de programação C.
Eu mesmo já crie "trocentos" scripts CGI para ajudar na administração de um ou vários sistemas.
Lembro que um destes CGIs era bem peculiar. Era um CGI com bash e expect. O usuário, via web, podia reiniciar um voip remotamente sem ter que conhecer o comando telnet, usuário, senha e comandos de administração do voip.
NOTA:
A questão aqui não é definir quem é melhor em que. Mas, ajudar o programador para que ele não precise reinventar a roda.
Sendo assim, levando em consideração o pouco dito acima, eu gostaria de deixar a dica:
Com o Lighttpd instalado no seu Ubuntu, crie o seguinte link simbólico:
#ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-available/
Edite o arquivo 10-cgi.conf:
#vim /etc/lighttpd/conf-available/10-cgi.conf
Deixe-o seu conteúdo como abaixo:
Salve o aquivo e reinicie o Lighttpd.
#/etc/init.d/lighttpd restart
Para testes, crie os seguintes arquivos no seu diretório cgi-bin:
#vi ola.lua
Com o conteúdo:
#vi ola.pl
Com o conteúdo:
#vi ola.py
Com o conteúdo:
Modifique a permissão dos 3 arquivos:
#chmod 540 ./ola.*
Modifique o dono dos arquivos:
#chown 33:33 ./ola.*
Agora acesse o seu navegador:
http://127.0.0.1/cgi-bin/ola.lua
http://127.0.0.1/cgi-bin/ola.pl
http://127.0.0.1/cgi-bin/ola.py
Pronto você acaba de habilitar o suporte CGI para seu web server e também criou 3 atribuições CGI. Uma para linguagem Lua, uma para a Perl e outra para a Python.
Mais informações acesse:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModCGI
Paz a todos!
Lembro que um destes CGIs era bem peculiar. Era um CGI com bash e expect. O usuário, via web, podia reiniciar um voip remotamente sem ter que conhecer o comando telnet, usuário, senha e comandos de administração do voip.
NOTA:
A questão aqui não é definir quem é melhor em que. Mas, ajudar o programador para que ele não precise reinventar a roda.
Sendo assim, levando em consideração o pouco dito acima, eu gostaria de deixar a dica:
Ativando o suporte CGI no Lighttpd.
Com o Lighttpd instalado no seu Ubuntu, crie o seguinte link simbólico:
#ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-available/
Edite o arquivo 10-cgi.conf:
#vim /etc/lighttpd/conf-available/10-cgi.conf
Deixe-o seu conteúdo como abaixo:
# /usr/share/doc/lighttpd-doc/cgi.txt # ATIVANDO O MODULO CGI server.modules += ( "mod_cgi" ) # LEBERANDO EXECUÇÃO SOMENTE PARA A PASTA CGI-BIN $HTTP["url"] =~ "^/cgi-bin/" { cgi.assign = ( ".pl" => "/usr/bin/perl", ".py" => "/usr/bin/python", ".lua" => "/usr/bin/lua", ) } ## Atencao! Risco de seguranca. ## As linhas abaixo permitem a execução ## de arquivos .pl e .py mesmo fora do diretório cgi-bin #cgi.assign = ( # ".pl" => "/usr/bin/perl", # ".py" => "/usr/bin/python", #)
Salve o aquivo e reinicie o Lighttpd.
#/etc/init.d/lighttpd restart
Para testes, crie os seguintes arquivos no seu diretório cgi-bin:
#vi ola.lua
Com o conteúdo:
#!/usr/bin/lua io.write("Content-Type: text/plain\n\n") io.write("Ola mundo Lua!!!")
#vi ola.pl
Com o conteúdo:
#!/usr/bin/perl print "content-type: text/html \n\n"; print "Ola mundo Perl!!!";
#vi ola.py
Com o conteúdo:
#!/usr/bin/python print "Content-Type: text/plain \n\n" print "Ola mundo Python!!!"
Modifique a permissão dos 3 arquivos:
#chmod 540 ./ola.*
Modifique o dono dos arquivos:
#chown 33:33 ./ola.*
Agora acesse o seu navegador:
http://127.0.0.1/cgi-bin/ola.lua
http://127.0.0.1/cgi-bin/ola.pl
http://127.0.0.1/cgi-bin/ola.py
Pronto você acaba de habilitar o suporte CGI para seu web server e também criou 3 atribuições CGI. Uma para linguagem Lua, uma para a Perl e outra para a Python.
Mais informações acesse:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModCGI
Paz a todos!
0 comentários:
Postar um comentário