Problemas com LAMP e PHP Threads

Iniciado por Make Allry, 16 de Outubro de 2014, 13:08

tópico anterior - próximo tópico

Make Allry

Fala pessoal tudo bem ? Eu nem comecei a participar do fórum direito, mas dei uma pesquisada e não achei solução simples pro problema, então queria opinião de vocês.

Estou usando o Ubunuto 14.04 LTS para configurar um servidor LAMP o detalhe é preciso do recurso de threads do php.

Meu problema é que os procedimentos sugeridos todos envolvem a instalação via source de todos os serviços envolvidos (MySQL, Apache e PHP), Não sou preguiçoso é que isso naturalmente pode ter problemas, se esquecer de alguma opção ou fizer a instalação no diretório errado, os outros recursos instalados via apt-get não funcionam direito.

Quais os passos eu segui?

O primeiro tutorial que segui foi este http://michaelhinds.com/tech/linux/ubuntu-server.html mas esta bem desatualizado e a instalação do MySQL 5.6 não funciona mais assim,
então completei a etapa do MySQL por aqui https://coderwall.com/p/e23_ca

Busquei os parâmetros para compilação do php aqui http://blog.slowbro.org/2013/08/compiling-php-55-with-pthreads-on-centos/

Meu problema nessa ultima etapa é que no phpinfo() a thread aparece habilitada, mas mesmo assim não funciona.

Tive problemas em todas as etapas as quais eu fui corrigindo com informações fragmentadas na internet.

A minha pergunta sendo bem direto seria a seguinte:

Como eu poderia recompilar o php, tendo instalado o server pelo apt-get install lamp-server^ ?

Se fosse possível realizar as coisas dessa maneira acredito que teria muito menos problemas e perderia muito menos tempo.

zekkerj

Olá Make Allry,

Talvez seu problema se resolva sem precisar usar pacotes pré-compilados, apenas com a instalação do pacote "php-pear", seguido do comando "pear install pthreads".

Enquanto isso, como você verificou que os threads não funcionam direito?
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

Make Allry

Citação de: zekkerj online 16 de Outubro de 2014, 17:13
Olá Make Allry,

Talvez seu problema se resolva sem precisar usar pacotes pré-compilados, apenas com a instalação do pacote "php-pear", seguido do comando "pear install pthreads".

Enquanto isso, como você verificou que os threads não funcionam direito?

Então Zek quando se instala pelo apt-get e no final se tenta instalar o php-pear vem a mensagem de que o ZTS não esta ativado, e até onde eu consegui informações, o parâmetro –enable-maintainer-zts só pode ser usado na compilação do php.

zekkerj

Sim... observei isso. Mas não é muito difícil resolver isso com o pacote DEB. Em teoria, vc poderia fazer um "sudo apt-get source php5", que te traria os fontes de compilação do pacote, daí vc entraria nesses fontes e alteraria o arquivo "debian/rules" pra adicionar essa opção.
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

Make Allry

Estou tentando por esse caminho, vamos ver.

Make Allry

#5
Citação de: zekkerj online 16 de Outubro de 2014, 18:16
Sim... observei isso. Mas não é muito difícil resolver isso com o pacote DEB. Em teoria, vc poderia fazer um "sudo apt-get source php5", que te traria os fontes de compilação do pacote, daí vc entraria nesses fontes e alteraria o arquivo "debian/rules" pra adicionar essa opção.

Deu certo!

Vou postar um tutorial pra galera hehe

Basicamente eu instalei o apt-get install lamp-server^

Listei todos os pacotes interessantes dpkg --list|grep -e httpd -e apache -e mysql -e php

Removi tudo do php apt-get remove --purge php5-xsl php5-readline php5-mysql php5-json php5-gd php5-dbg php5-curl php5-common php5-cli php5-cgi php-pear

Baixei o source do php apt-get source php5

Baixei o source do pthreads wget http://pecl.php.net/get/pthreads-2.0.10.tgz e coloquei dentro da pasta ext do source

Acessei o source do php e editei o rules vi debian/rules adicionar o --enable-maintainer-zts e --enable-pthreads

Dentro da pasta do souce do php compilei o pacote fakeroot debian/rules binary

Instalei os pacotes novos compilados dpkg -i php5-common_5.5.9+dfsg-1ubuntu4.4_i386.deb php5-cgi_5.5.9+dfsg-1ubuntu4.4_i386.deb php5-curl_5.5.9+dfsg-1ubuntu4.4_i386.deb php-pear_5.5.9+dfsg-1ubuntu4.4_all.deb php5-xmlrpc_5.5.9+dfsg-1ubuntu4.4_i386.deb php5-xsl_5.5.9+dfsg-1ubuntu4.4_i386.deb libapache2-mod-php5_5.5.9+dfsg-1ubuntu4.4_i386.deb php5-mysql_5.5.9+dfsg-1ubuntu4.4_i386.deb php-pear_5.5.9+dfsg-1ubuntu4.4_all.deb

Forcei a instalação das dependências apt-get -f install

Dai deu certo!

Houveram um monte de erros mas no geral eram apenas libs em formato dev que faltavam e nada que um apt-cache search nome da lib não resolvesse pra achar qual era

Esse site aqui ajudou bastante http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204

Agora as threads estão rodando, mas se não fosse pelo source vindo direto do repositório do apt-get não ia rolar não.

Vale ai pela atenção

zekkerj

Faltou um "apt-get build-dep php5" antes de compilar, por isso vc teve os tais erros.
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

Make Allry

Citação de: zekkerj online 17 de Outubro de 2014, 21:29
Faltou um "apt-get build-dep php5" antes de compilar, por isso vc teve os tais erros.

Pode ser,  eu tive de baixar  pacote por pacote.