erro chroot PHP-FPM

1

Estou usando o lighttpd e o php-fpm.

O script .php é processado com a permissão de usuário correta, vejo o resultado no meu navegador. No momento, tudo funciona corretamente se eu comentar a opção chroot = no arquivo conf PFM. se eu adicioná-lo, eu sempre obtenho erro 404 não encontrado.

Minha raiz do documento (no arquivo lighttpdconf) é: / home / lighttpd / vhosts / website / web

Como posso usar o parâmetro chroot? Qual caminho devo usar?

Obrigado!

    
por Damiano 28.04.2011 / 18:23

1 resposta

1

Lembre-se de que sempre que você estiver usando o chroot, seu ambiente chroot deve conter tudo que você precisar. Neste caso, você precisa do php.exe, php.ini e todos os seus scripts .php, apenas para iniciantes. Se o seu aplicativo da Web precisar gravar em determinados diretórios (por exemplo, / tmp), isso também deve estar dentro do seu chroot.

Lembre-se que o chroot é literalmente "change root", como em mudar a raiz do seu sistema de arquivos. Então, se você quiser chroot php-fpm para, por exemplo, / home / lighttpd /, então, se tiver que escrever para / tmp que é, na verdade, / home / lighttpd / tmp, certifique-se de que exista. Se você está procurando /etc/php/php.ini, é similarmente /home/lighttpd/etc/php/php.ini - essencialmente o principal '/' em qualquer caminho de arquivo para um aplicativo chroot será substituído por o caminho chroot.

Isso torna a configuração do ambiente chroot um pouco complicada, já que você tem que criar essencialmente um espelho das partes do seu sistema de arquivos raiz que serão necessárias dentro do seu caminho chroot. Isso também significa que você precisa saber tudo o que seu ambiente chroot também precisa.

Minha recomendação é não se incomodar com o chroot. É uma camada muito fina de segurança na melhor das hipóteses, fazendo o esforço necessário para fazer com que funcione quase sem valor, e com toda a honestidade eu acho que você está melhor servido certificando-se de que o php-fpm está sendo executado no contexto apropriado do usuário , e não root) e que você use permissões de sistema de arquivos adequadas para fornecer a esse usuário apenas os privilégios mínimos necessários em seu sistema. Isso inclui garantir que o usuário não possa efetuar login em um shell interativo (excluir a senha do usuário e definir seu shell como / bin / false ou / bin / nologin) e não possui sudo privileges ( a menos que seja absolutamente necessário, e só conceda sudo de acesso aos comandos específicos de que necessita).

    
por 28.04.2011 / 18:37

Tags