Ola,
A meses traz havia perguntado como rodar um .php como certo usuário.
Ontem, devido a um erro na hospedagem da locaweb, vi que eles usam o suphp.
Interessante que já conhecia o suphp, então porque não usei na época?
Talvez pelo fato de ser "somente" para o apache, ou não ter encontrado
informação de como por no lighttpd (achei isso ontem sem dificuldade).
O importante e que após algumas mensagens de erro, o susphp esta
funcionando no lighttd o .php esta rodando como o usuário e grupo a qual o
arquivo pertence.
O texto que segui, e de 2008.
http://www.markgrenham.com/articles/howto_lighttpd_and_suphp
Basicamente, carregar os modulos mod_cgi e mod_setenv;
Configurar a variavel de ambiente, foi necessário adicionar o application/ .
setenv.add-environment = ( "SUPHP_HANDLER" => "application/x-httpd-suphp"
)
Associar o .php ao suphp
cgi.assign = ( ".php" => "/usr/lib/suphp/suphp" )
Ajustar o /etc/suphp/suphp.conf conforme a necessidade.
E como só preciso disso dentro de um vhost ssl, a configuração final ficou
assim:
$SERVER["socket"] == ":443" {
....
$HTTP["url"] =~ ".php" {
setenv.add-environment = (
"SUPHP_HANDLER" => "application/x-httpd-suphp"
)
cgi.assign = ( ".php" => "/usr/lib/suphp/suphp" )
}
}
Além do suphp, lighttpd, essa aplicação web usa:
https://github.com/jhuckaby/webcamjs
http://jquery.com/
https://github.com/jaysalvat/jquery.facedetection
2015-09-21 12:06 GMT-03:00 Paulino Kenji Sato <[email protected]>:
> Ola,
> Estou desenvolvendo uma aplicação web de uso interno em que e necessário
> fazer o upload de um arquivo.
> A parte que processar o upload esta em php (devido a ser mais fácil), e
> funcionando.
> O problema e que, o arquivo precisa ser gravado ou ter as permissões de um
> outro usuário, que não seja o www-data:www-data.
> Pelo que me lembre, isso pode ser feito via um suid wrapper.
> O webserver e o lighttpd.
> Achei duas soluções possíveis:
> O Execwrap http://stbuehler.de/debianserver/execwrap.html
> Não tem pacote debian, precisaria compilar.
> E o pacote debian sbox-dtc, e esse que estou tentando configurar.
> O problema e que as configurações exemplo são para o apache, e estou
> usando o lighttpd.
> Pelo que entendi, preciso reescrever a url de /cgi-bin/algo.php para
> /cgi-bin/sbox/algo.php
> E o .php ser interpretado pelo sbox.
> A configuração ficou assim:
>
> alias.url += ( "/cgi-bin/" => "/usr/lib/cgi-bin/" )
>
> url.rewrite = ( "^/cgi-bin/(.*)" => "/cgi-bin/sbox/$1" )
>
> $HTTP["url"] =~ "^/cgi-bin/" {
> cgi.assign = ( ".php" => "/usr/lib/cgi-bin/sbox" )
> }
>
> Só que, vem vez de executar o sbox, e feito o download arquivo sbox, com o
> nome do script php.
> Ou o sbox reporta o seguinte no log:
> [Mon Sep 21 11:23:40 2015] sbox[22024]: Please specify the script to run
> with the format: "/cgi-bin/sbox/script/to/run".
>
> O exemplo para o apache e esse:
>
> <VirtualHost 10.0.0.1:80>
> ServerName www.example.com
> ScriptAlias /cgi-bin /usr/lib/cgi-bin
> AddHandler php-cgi-wrapper .php
> Action php-cgi-wrapper /cgi-bin/sbox
> AddHandler python-cgi-wrapper .py
> Action python-cgi-wrapper /cgi-bin/sbox
> AddHandler ruby-cgi-wrapper .rb
> Action ruby-cgi-wrapper /cgi-bin/sbox
> AddHandler ruby-cgi-wrapper .pl
> Action ruby-cgi-wrapper /cgi-bin/sbox
>
> Options +ExecCGI
> DocumentRoot /var/www/example.com/html
> RewriteEngine on
> RewriteCond %{REQUEST_URI} ^!/cgi-bin.*
> RewriteRule ^(.*) /cgi-bin/sbox/$1 [PT]
> DirectoryIndex index.php index.cgi index.pl index.py index.rb
> index.htm index.html index.php4
> </VirtualHost>
>
> Sugestões de como fazer o sbox rodar no lighttpd?
>
> Ou, outra solução para gravar o arquivo.
>
> Outras opções que já considerei, além do wrapper.
> fast-cgi (um daemon a mais rodando)
> ftp (precisa de um ftpd)
> scp (autenticação por chave)
> samba (php tem cliente?)
> cron copiando o arquivo para o destino final e com as permissões
> necessárias. (atraso na disponibilidade do arquivo)
> mudar o grupo que o ligthttpd roda. (segurança)
> Além da mais trabalhosa, um httpd (C, perl, python, php, etc) especifico
> para a tarefa.
>
>
> Ainda não tentei com o Execwrap.
>
>
> --
> Paulino Kenji Sato
>
--
Paulino Kenji Sato