Pergunta

Alguém já foi capaz de obter xinc para funcionar corretamente sob o chroot padrão do Apache?Eu gostaria de manter o nosso servidor de desenvolvimento em execução totalmente enjaulado como o nosso servidor de Produção, de modo que temos certeza de que nosso código funciona muito bem enjaulado.

Foi útil?

Solução

Você já postei o problema no Xinc bug tracker?Xinc em si deve executar bem como ele é executado como um daemon e como um aplicativo web.Como você aludido, o problema pode ser que o daemon não está em execução em um ambiente chroot, onde, como a interface web é, levando para ambos os lados, não agarrando os arquivos.

Outras dicas

@dragonmantank

Em Xinc caso, eu espero que você usou o PEAR para instalar-lo.

pear list-files xinc/Xinc

Este deve fazê-lo, e mostrar-lhe onde está o seu Xinc instalar colocar seus arquivos.Assim, mesmo que Xinc é "apenas" um grande script PHP, ainda se espalham scripts rc e todas essas outras coisas que são necessárias para fazer um aplicativo executado.Tenho certeza de que você não precisa adicionar todos os caminhos listados lá, mas provavelmente algum para fazê-lo funcionar.

Além de Xinc em si, eu acho que ele também precisa de phpUnit e um monte de outras PÊRA libs para executar, então o que eu gostaria de propor é este:

pear config-get php_dir

E, em seguida, você precisa adicionar esse caminho (como Henrik sugerido) para o ambiente chroot.

Sem nunca ter usado xinc mim, eu só posso dica de como eu geralmente começar a fazer chroot apps.

Primeiro passo seria a de reunir informações sobre tudo o que o aplicativo precisa para executar;esta eu costumo fazer executando systrace(1) e o ldd(1) para descobrir o que é necessário para executar o software.

Ir através da saída da

systrace -A -d. <app>
ldd <app>

e certifique-se de que tudo o que o app toca e necessidades (muito toque de aplicativos coisas, ela não precisa realmente) está disponível em um ambiente chroot.Você pode precisar de ajustar configurações e variáveis de ambiente um pouco.Além disso, se houver uma opção para ter o log de aplicativo para o syslog, eu costumo fazer isso e criar um syslog socket (veja a opção-a do syslogd(8)) a fim de diminuir os lugares que o aplicativo precisa de acesso de escrita.

O que eu acabei de descrever é uma forma genérica, para fazer apenas sobre qualquer programa executado em um ambiente chroot (no entanto, se você precisar importar metade do espaço de usuário e alguns suid comandos, você pode querer apenas não fazer chroot :).Para aplicações executando sob o Apache (que eu tenho certeza que você está ciente de que o OpenBSD o httpd(8) é um pouco diferente), você tem a opção (uma vez iniciado o programa;quaisquer bibliotecas dinâmicas ainda precisa estar presente na cadeia) de usar o apache para acesso a arquivos, permitindo o uso de o httpd.conf para importar recursos no ambiente chroot, sem realmente copiar.

Também é útil (se ligeiramente desatualizado) é este link, descrevendo algumas dicas em enjaulado PHP no OpenBSD.

Primeiro passo seria a de reunir informações sobre tudo o que o aplicativo precisa para executar;esta eu costumo fazer ao executar o systrace(1) e o ldd(1) para descobrir o que é necessário para executar o software.

Eu vou tentar dar um presente.O grande problema que eu encontrei com xinc é que, embora seja uma aplicação PHP, ele quer saber o aplicativo caminhos de instalação (no entanto, ainda se espalha coisas para outras pastas) e executa alguns scripts de PHP em modo daemon (os scripts de ser o mais difícil de fazer funcionar).Assim, por exemplo, eu disse a ele para instalar em /var/www/xinc e, em seguida, fez um link simbólico do

/var/www/var/www/xinc -> /var/www/xinc

e é parcialmente trabalhado.Eu tenho o GUI para vir até pouco, ele se recusou a reconhecer os projetos que eu tinha levantado.Eu acho que o maior problema é que parte do que está a executar o chroot e a outra metade é a execução de fora.

Se tudo o mais falhar, eu vou ter que construir algo como temos o programa dentro de ambientes chroot, desde a nossa produção está enjaulado.Estamos em problemas onde temos o código fora da chroot e, em seguida, volte para encontrar o que precisa para fazer o trabalho dentro de uma chroot.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top