Problemas ao instalar o php5 a partir do código-fonte no Ubuntu

1

(Originalmente perguntado aqui: link )

Estou tentando instalar o php5 por um tempo.

Estou usando.

Ubuntu 12.10
Apache 2.4.3

E a versão do php que eu quero instalar é:

PHP 5.4.11

Eu sigo a documentação na página da Web.

Eu instalo o Apache (depois de colocar as pastas apr e apr-util em ./scrlib, exatamente como a documentação diz).

sudo ./configure --enable-so
sudo make
sudo make install

Todos esses comandos geram muitas informações, mas nenhum erro ou aviso, desde que eu saiba.

Apenas para o registro:

/usr/local/apache2/bin/httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c

mod_so.c está lá, então acho que a instalação foi boa.

Agora, eu tento instalar o PHP (depois de colocar o

.sudo ./configure \
  --prefix=/home/usr/local/php5/ \
  --with-mysql \
  --with-apxs2=/usr/local/apache2/bin/apxs \
  --with-xsl \
  --with-gdbm \
  --with-gd \
  --with-freetype=/usr/include/freetype2/ \
  --with-zlib-dir=/usr/include \
  --with-ttf \
  --with-jpeg-dir=/usr/lib

Tudo vai bem, exceto o seguinte aviso:

configure: WARNING: unrecognized options: --with-freetype, --with-ttf

No entanto, essas opções não são o maior dos meus problemas e eu sigo para as próximas etapas.

sudo make

E estas são as últimas linhas da saída.

Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
invertedregexiterator.inc
pharcommand.inc
directorytreeiterator.inc
directorygraphiterator.inc
clicommand.inc
phar.inc

Build complete.
Don't forget to run 'make test'.

Próximo passo.

sudo make install

Tudo parece bem.

sudo cp php.ini-development /usr/local/lib/php.ini

Eu edito o arquivo conf (/usr/local/apache2/conf/httpd.conf). A linha ...

LoadModule php5_module        modules/libphp5.so

... já estava lá. Logo abaixo dessa linha, acrescento:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Eu reinicio o apache:

sudo service apache2 restart

Portanto, o php5 já deve estar instalado. Eu faço o seguinte script em php.

// info.php
<?php
phpinfo();
?>

E salvou em /var/www/info.php

Eu coloquei o seguinte url no meu navegador:

http://127.0.0.1/info.php

Não há saída.

Na pergunta original, um usuário me pediu para verificar o log de erros (em / var / log / apache2 /).

Se eu navegar para o meu arquivo info.php, a única nova linha adicionada ao error.log é

[Wed Feb 20 19:49:01 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

Então eles me pediram para colocar display_errors = On no php.ini. Nada foi mostrado na tela.

Finalmente, eles me pediram para executar o php -i no terminal. A saída foi a seguinte:

The program 'php' is currently not installed. You can install it by typing: sudo apt-get install php5-cli

O que estou perdendo? A razão pela qual eu não uso o apt-get install php5 é porque eu quero todas as opções que eu coloquei no arquivo de configuração. A primeira coisa que me deu problemas foi que eu não tinha o manipulador gdbm para bancos de dados. Se você souber como eu posso usar o apt-get install php5 e então adicionar essa nova opção ao php5, então eu também considero uma solução.

    
por XavierusWolf 21.02.2013 / 11:42

1 resposta

1

Eu vejo dois problemas aqui, mas eu suspeito que você tenha mais do que o que é visível do que você postou.

O motivo pelo qual, no seu terminal, você recebe a mensagem de que php is not installed , é porque o binário php não está no caminho de pesquisa padrão.

de acordo com o seu --configure , o seu php está em /home/usr/local/php5 (o que, pessoalmente, acho que é um local estranho). Agora, se você digitar apenas php na CLI, o bash não irá verificar neste diretório o php executável, então você terá que executá-lo com todo o caminho. deve ser algo como /home/usr/local/php5/bin/php eu acho.

Se você quiser disponibilizá-lo por padrão apenas inserindo php , faça isso primeiro ln -s /home/usr/local/php5/bin/php /bin/php . então o Bash poderá encontrá-lo por si só se você digitar php .

O outro problema é que você está usando os parâmetros configure que simplesmente não existem. Você pode ver os parâmetros configure disponíveis fazendo ./configure --help no diretório de origem do php.

Esqueci-me: para verificar se o módulo php foi carregado no apache ou não, você pode usar o mod_info do apache. Ele informa quais módulos foram carregados com sucesso. Se você vir na saída mod_info que o módulo PHP não foi carregado, provavelmente você deve verificar a saída dos apaches na inicialização. link

    
por 21.02.2013 / 12:11