apache2-mpm-worker em Linux11.10

Iniciado por maurov, 15 de Março de 2012, 09:45

tópico anterior - próximo tópico

maurov

Olá,
instalei a versão 11.10 numa máquina nova.
-Pela central de programas instalei o Apache2. It works!
-Instalei o MySQL Server 5.1, também sem problemas.
-Ao instalar o PHP5, ele diz que tem que ser removido o apache2-mpm-worker, ou dá a opção (nunca desejada) de instalar assim mesmo. Saí da instalação do PHP5 e fui remover o apache2-mpm-worker. Este por sua vez, diz que teria que remover o apache2 !
E agora?

zekkerj

Você está instalado o PHP5 a partir da Central de Programas?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Sim, através da central de programas, a qual, imagino, faz por baixo um apt-get-install, e mostra as dependências de uma forma bem visível.

irtigor

É uma questão de resolução de dependência. O apache2 é um meta pacote, as opções são:

apache2-mpm-event
apache2-mpm-itk
apache2-mpm-prefork
apache2-mpm-worker

Você havia optado pelo "worker", como não havia nada do php instalado, uma dependência foi resolvida para o padrão (libapache2-mod-php5), ela por sua vez depende do apache2-mpm-prefork ou apache2-mpm-itk (por isso a sugestão de remoção do "worker", já que o "prefork" ou "mpm-itk" deveriam ser usados). No final das contas você resolveu remover o "worker", como ele era o único pacote na sua máquina que fornece o apache2, esse também deveria ser removido. Essa relação pode ficar mais clara, olhando a descrição dos pacotes.

Resumindo: a solução vai depender do que deseja/é necessário, uma vez que essas dependências possuem equivalentes.

maurov

Oi,
sobre os módulos multi-processados (mpm) do MySQL.
apache2-mpm-event : Esta MPM tenta consertar o 'keep alive problem'.
apache2-mpm-itk: Este parece ser para rodar hosts virtuais.
apache2-mpm-prefork: Faz com que um processo de controle possa disparar processos filhos.
apache2-mpm-worker: Semelhante ao anterior.

Eu não cheguei a optar por nenhum em especial, talvez então o worker seja default.

Como desejo usar PHP5, como posso fazer agora? Instalo primeiro o PHP5 e depois o MySQL?

zekkerj

tente instalar o pacote "libapache2-mod-php5". Além de ser justamente o módulo que liga os dois, tanto o Apache quanto o PHP5 são dependências dele. Assim, no final da instalação, ambos têm que estar instalados também.

PS: Olhei aqui em uma máquina com o PHP5 instalado, o módulo do apache que aparece instalado também é o "apache-mpm-prefork", em vez do "apache-mpm-worker". Provavelmente então a instalação do PHP5 está removendo o "apache-mpm-worker" pra instalar o "apache-mpm-prefork" no lugar. Ao tentar remover manualmente, você remove sem colocar outro no lugar, por isso ele tenta remover o pacote todo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

irtigor

"...vai depender do que deseja/é necessário", em miúdos: use o apache2-mpm-worker com php5-cgi ou php5-fpm (substituem o libapache2-mod-php5), ou use o "prefork" com libapache2-mod-php5, ou use o "itk" com libapache2-mod-php5...

maurov

Gente,
como o worker já entrou como default, achei melhor não mexer. Então foi necessário instalar antes do php5, o php5-cgi, conforme sugerido. Depois disso instalei o php5, que também entrou. Ainda não testei.
Para instalar um LAMP tradicional no Linux11.10, então:
1 - Apache2
2 - Mysql server 5.1
3 - php5-cgi (interpretador para o default thread do Apache2)
4 - php5

Mais algo, será? Aquele php5-mysql module ainda é necessário?
Me avisem que talvez possamos dar por encerrado este tópico.
[ ]

maurov

Não deu. Instalou, mas não funciona o php.
Fiz o <?php phpinfo(); ?> e um <?php echo "oi"; ?>, coloquei em /var/www que estava lá, mas o navegador pergunta se quer abrir com gedit ou fazer download.


maurov

Oi,
bem legais estes textos. Realmente a instalação agora depende de configurações manuais.
Este é um resumo do que os sites acima ensinam:
CitarTo use php5-cgi with apache2
  1) activate CGI (it's on by default in default debian setups)
     a) If using the prefork MPM, use 'a2enmod cgi'
     b) If using a threaded MPM, use 'a2enmod cgid'
  2) activate mod_actions (a2enmod actions)
  3) Add the following to a config snippet in /etc/apache2/conf.d
<IfModule mod_actions.c>
        Action application/x-httpd-php /cgi-bin/php5
</IfModule>
Verifiquei que a instalação dos módulos já havia sido feita pela central de programas. O arquivo de configuração do worker também já estava com os números corretos. Parece que o Apache2 está funcionando corretamente com o worker, pois numadas verificações vem o OK dele. Fiz as alterações dos arquivos de configuração, e restart no apache.
E o php5 ainda não funciona...

zekkerj

Já tentou remover todos os pacotes --- inclusive o apache --- e reinstalar?

Essa sequência de instalação deveria funcionar praticamente "out-of-the-box", com um

sudo apt-get install apache2 mysql-server libapache2-mod-php5 phpmyadmin

Afinal, essa é a base do "LAMP" (Linux, Apache, MySQL, PHP).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Essa é a ideia, algo "out-of-the-box". Meu DB não tem porte para usar recursos top de threading. O prefork já serve.
A questão é que o pacote do Apache2 envia o worker como default.

Pergunta: Se eu remover todos estes aplicativos para tentar reinstalar, os arquivos adicionais de configuração também são removidos?

zekkerj

Sim.

Agora, maurov, a gente volta ao que eu perguntei lá em cima: no momento em que você tentou instalar o php5 e ele te ofereceu remover o apache2-worker, você observou se ele estava instalando o prefork no lugar, ou apenas abortou e tentou fazer manualmente?

Tente usar o comando que eu te passei, veja o resultado.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Respondendo.
Ao instalar o php5 ele avisou que teria que remover o worker, e deixou estas 2 opções:
- Instalar assim mesmo
- Cancelar
Eu cancelei, pois não saberia desfazer um nó causado pelo "instalar assim mesmo".

Na sugestão apt-get install apache2 mysql-server libapache2-mod-php5 phpmyadmin , adiciono o php5 antes ou depois do libapache, ou não muda nada?