Set up PHP on Centos 6

By | 6 September 2014
Loading...

This post is the third in the series of setting up a Centos 6 VPS without WHM/cPanel (or any other panel). The previous post is setting up MySQL Database server. This post will list the steps to install MySQL and PHP on Centos 6.

The latest version of PHP at the time of writing this post is 5.6. Please adjust the command if installing different version.

First, download the PHP source from the nearest mirror and unpack it.

cd /usr/src
wget http://sg2.php.net/distributions/php-5.6.0.tar.gz
tar zxvf php-5.6.0.tar.gz

Note that Apache needs to be installed first before continuing the next step. If Apache is already installed and running, stop it first before configuring PHP installation.

apachectl stop

Next, configure and install PHP


cd php-5.6.0
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-pdo-mysql --with-mysqli --enable-mbstring --with-bz2 --with-zlib --with-curl --enable-exif --with-gd --with-gettext --with-pear --enable-zip --with-mcrypt --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --enable-intl
make
make install

During my installation, I’ve got the following error when after I run the second line above

configure: error: xml2-config not found. Please check your libxml2 installation.

This only means that I don’t have the libxml2 library installed. So I install the livxml2 library using yum first before running ./configure again. Also install the libicu for intl.

yum install libxml2-devel
yum install libicu-devel

Loading...

Once PHP is installed, copy the php.ini-development or php.ini-production to /usr/local/lib/

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

or

cp php.ini-production /usr/local/lib/php.ini

Edit the php.ini file to set timezone, post_max_size, upload_max_filesize.

Edit httpd.conf file and ensure the following line is uncommented

LoadModule php5_module modules/libphp5.so

Add the following lines to https.conf to tell Apache to parse files with .php extension as PHP.

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

Start Apache

apachectl start

Loading...