(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.