Posso usar o servidor da web Apache em um ambiente chroot no Gentoo? E como?

1

Acabei de instalar o Apache pela primeira vez no Gentoo. Quando eu chroot no Gentoo de outro sistema operacional (neste caso, Microknoppix) e tento iniciar o Apache (com /etc/init.d/apache2 start ), recebo o erro WARNING: apache2 is already starting . Se eu tentar pará-lo, recebo ERROR: apache2 stopped by something else . O Apache funciona normalmente quando eu o executo no Gentoo sem o chrooting.

Eu provavelmente poderia usar o Apache dentro do próprio Gentoo e pular o chrooting completamente, mas estou curioso. Por que isso está acontecendo e posso consertar isso?

Eu falei com alguém que achava que poderia ser:

  1. um problema com vários programas tentando usar o mesmo arquivo pid
  2.   ou   
  3. um problema com o modo como o Gentoo lida com o chrooting.

Mas eu não sei o suficiente para discutir os assuntos de maneira coerente.

Edit: Aqui estão os comandos que eu tenho usado para chroot no Gentoo, escritos de as instruções de instalação no manual do Gentoo :

sudo mount --bind /etc/resolv.conf /mnt/gentoo/etc/resolv.conf sudo mount -t proc proc /mnt/gentoo/proc sudo mount --rbind /sys /mnt/gentoo/sys sudo mount --rbind /dev /mnt/gentoo/dev sudo chroot /mnt/gentoo /bin/bash env-update && source /etc/profile export PS1="(chroot) $PS1"

    
por Robert Larkins 29.10.2014 / 04:27

1 resposta

0

Os scripts de inicialização do Gentoo não funcionam bem quando o Gentoo está sendo executado em um chroot. O Gentoo geralmente tem interdependências onde o apache não inicia até que o 'net' seja iniciado, e assim por diante, e como nenhum deles rodou na inicialização (porque o Gentoo não é o sistema host) as coisas geralmente serão quebradas. Na pior das hipóteses, o Gentoo pode atrapalhar suas configurações de rede ou executar o fsck no seu disco rígido, pensando que ainda não está montado.

Além disso, os scripts init precisam ser executados como root. Se você não estiver executando como root, ele não terá permissões para modificar os arquivos que rastreiam o estado de um serviço. Se você ainda estiver rodando como root, cuidado com o fato de o root poder escapar de um chroot facilmente.

Eu sugeriria pular o script de inicialização, e apenas passar um arquivo de configuração personalizado para o apache conforme você o inicia no chroot. Algo como:

chroot /path/to/gentoo /usr/sbin/apache2 -f /etc/apache2/httpd.conf

Também recomendo executar este comando no sistema externo com um programa de supervisor, como perp ou runit ou s6 . Consulte o link

Também pode ser que você tenha / proc montado no chroot. Cuidado, se proc estiver montado no chroot, as coisas no chroot poderão obter uma lista de processos do sistema host, o que pode ser ruim. Eu suponho que você está fazendo isso porque você não confia em um script que você servirá do apache?

    
por 29.10.2014 / 07:34