Recebi ajuda do IRC do phpfreaks ontem à noite. Foi um problema no lado do Apache que eu precisei enviar o "/ www" para o PHP-FPM.
Estou tentando configurar um site dentro de um chroot PHP-FPM. Meus caminhos são os seguintes:
chroot = /var/www/
chdir = www/
O chroot funciona bem sem chdir. Mas quando eu adiciono chdir eu recebo este erro na inicialização do php-fpm:
ERROR: [pool www] the chdir path '/usr/www/' within the chroot path '/var/www/' ('/var/www///usr/www/') does not exist or is not a directory
Alguém sabe por que iria acrescentar /usr/
ao caminho chdir? Existe uma maneira de removê-lo desse caminho?
Além disso, se eu alterar o caminho chdir para /www/
, preciso procurar http://localhost/www/filename.php
para ver meu arquivo. Não é o ponto de chuck fazer isso desnecessário?
Simplesmente configurar um diretório arbitrário não é suficiente - você realmente precisa construir o chroot e garantir que ele inclua todas as bibliotecas, dispositivos e binários necessários.
Caso contrário, coisas básicas como a resolução de DNS não funcionarão e você receberá erros aleatórios, interrupções ou segfaults de aplicativos. Parece que você está confundindo a simplicidade de open_basedir
com a de um chroot.
Para começar, esse script, uma vez personalizado, deve fornecer uma base para um chroot.
Mas, realisticamente, se você não tem muita experiência com chroots ...
Eu acho que a segurança é o seu objetivo, mas é muito provável que você acabe com o exato oposto.
Tags apache-2.2 php5 php-fpm