PHP - Installation on Linux/Unix

If you plan to install PHP on Linux or any other variant of Unix, then here is the list of prerequisites −
The PHP source distribution http://www.php.net/downloads.php
The PHP source distribution http://www.php.net/downloads.php
The latest Apache source distribution https://httpd.apache.org/download.cgi
The latest Apache source distribution https://httpd.apache.org/download.cgi
A working PHP-supported database, if you plan to use one ( For example MySQL, Oracle etc. )
A working PHP-supported database, if you plan to use one ( For example MySQL, Oracle etc. )
Any other supported software to which PHP must connect (mail server, BCMath package, JDK, and so forth)
Any other supported software to which PHP must connect (mail server, BCMath package, JDK, and so forth)
An ANSI C compiler
An ANSI C compiler
Gnu make  utility − you can freely download it at https://www.gnu.org/software/make
Gnu make  utility − you can freely download it at https://www.gnu.org/software/make
Now here are the steps to install Apache and PHP5 on your Linux or Unix machine. If your PHP or Apache versions are different then please take care accordingly.
If you haven't already done so, unzip and untar your Apache source distribution. Unless you have a reason to do otherwise, /usr/local is the standard place.
If you haven't already done so, unzip and untar your Apache source distribution. Unless you have a reason to do otherwise, /usr/local is the standard place.
gunzip -c apache_1.3.x.tar.gz
tar -xvf apache_1.3.x.tar

Build the apache Server as follows
Build the apache Server as follows
cd apache_1.3.x
./configure --prefix=/usr/local/apache --enable-so
make
make install

Unzip and untar your PHP source distribution. Unless you have a reason to do otherwise, /usr/local is the standard place.
Unzip and untar your PHP source distribution. Unless you have a reason to do otherwise, /usr/local is the standard place.
gunzip -c php-5.x.tar.gz
tar -xvf php-5.x.tar
cd php-5.x

Configure and Build your PHP, assuming you are using MySQL database.
Configure and Build your PHP, assuming you are using MySQL database.
./configure --with-apxs=/usr/sbin/apxs \
            --with-mysql=/usr/bin/mysql
make
make install

Install the php.ini file. Edit this file to get configuration directives −
Install the php.ini file. Edit this file to get configuration directives −
cd ../../php-5.x
cp php.ini-dist /usr/local/lib/php.ini

Tell your Apache server where you want to serve files from, and what extension(s) you want to identify PHP files A .php is the standard, but you can use .html, .phtml, or whatever you want.

Go to your HTTP configuration files (/usr/local/apache/conf or whatever your path is)
Open httpd.conf with a text editor.
Search for the word DocumentRoot (which should appear twice), and change both paths to the directory you want to serve files out of (in our case, /home/httpd). We recommend a home directory rather than the default /usr/local/apache/htdocs because it is more secure, but it doesn.t have to be in a home directory. You will keep all your PHP files in this directory.


Tell your Apache server where you want to serve files from, and what extension(s) you want to identify PHP files A .php is the standard, but you can use .html, .phtml, or whatever you want.
Go to your HTTP configuration files (/usr/local/apache/conf or whatever your path is)
Go to your HTTP configuration files (/usr/local/apache/conf or whatever your path is)
Open httpd.conf with a text editor.
Open httpd.conf with a text editor.
Search for the word DocumentRoot (which should appear twice), and change both paths to the directory you want to serve files out of (in our case, /home/httpd). We recommend a home directory rather than the default /usr/local/apache/htdocs because it is more secure, but it doesn.t have to be in a home directory. You will keep all your PHP files in this directory.
Search for the word DocumentRoot (which should appear twice), and change both paths to the directory you want to serve files out of (in our case, /home/httpd). We recommend a home directory rather than the default /usr/local/apache/htdocs because it is more secure, but it doesn.t have to be in a home directory. You will keep all your PHP files in this directory.
Add at least one PHP extension directive, as shown in the first line of code that follows. In the second line, we.ve also added a second handler to have all HTML files parsed as PHP.
Add at least one PHP extension directive, as shown in the first line of code that follows. In the second line, we.ve also added a second handler to have all HTML files parsed as PHP.
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html

Restart your server. Every time you change your HTTP configuration or php.ini files, you must stop and start your server again.
Restart your server. Every time you change your HTTP configuration or php.ini files, you must stop and start your server again.
cd ../bin
./apachectl start

Set the document root directory permissions to world-executable. The actual PHP files in the directory need only be world-readable (644). If necessary, replace /home/httpd with your document root below −
Set the document root directory permissions to world-executable. The actual PHP files in the directory need only be world-readable (644). If necessary, replace /home/httpd with your document root below −
chmod 755 /home/httpd/html/php

Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's document root as info.php.
Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's document root as info.php.
Start any Web browser and browse the file.you must always use an HTTP request (http://www.testdomain.com/info.php or http://localhost/info.php or http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the file to be parsed correctly
Start any Web browser and browse the file.you must always use an HTTP request (http://www.testdomain.com/info.php or http://localhost/info.php or http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the file to be parsed correctly
You should see a long table of information about your new PHP installation message Congratulations!