(Originally asked here: https://stackoverflow.com/questions/14977119/problems-installing-php5-from-source-in-ubuntu)
I've been trying to install php5 for a while.
I'm using.
Ubuntu 12.10
Apache 2.4.3
And the version of php I want to install is:
PHP 5.4.11
I follow the documentation in the webpage.
I install Apache (after putting the apr and apr-util folders in ./scrlib, just as the documentation says).
sudo ./configure --enable-so
sudo make
sudo make install
All of these commands output a lot of information, but no error nor warning as long as I'm aware.
Just for the record:
/usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_so.c
http_core.c
event.c
mod_so.c is there, so I think the installation were alright.
Now, I attempt to install PHP (after putting the
.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
Everything goes fine except the following warning:
configure: WARNING: unrecognized options: --with-freetype, --with-ttf
However, those options aren't the greatest of my problems and I follow to the next steps.
sudo make
And these are the lasts lines of the output.
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'.
Next step.
sudo make install
Everything seems fine.
sudo cp php.ini-development /usr/local/lib/php.ini
I edit the conf file (/usr/local/apache2/conf/httpd.conf). The line...
LoadModule php5_module modules/libphp5.so
...was already there. Just under that line I add:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
I restart apache:
sudo service apache2 restart
So, php5 should be already installed. I make the following script in php.
// info.php
<?php
phpinfo();
?>
And saved it in /var/www/info.php
I put the following url in my browser:
http://127.0.0.1/info.php
There's no output.
In the original question, a user asked me to check the error log (in /var/log/apache2/).
If I browse to my info.php file, the only new line added to the error.log is
[Wed Feb 20 19:49:01 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
Then they asked me to put display_errors = On in php.ini. Nothing was shown on the screen.
Finally they asked me to run php -i in the terminal. The output was the following:
The program 'php' is currently not installed. You can install it by typing: sudo apt-get install php5-cli
What am I missing? The reason that I don't use apt-get install php5 is because I want all the options I've put in the config file. The first thing that gave me problems was that I did not have the gdbm handler for databases. If you know a way in which I can use apt-get install php5 and then somehow add this new option to php5, then I also consider it a solution.