CentOS comes with Apache v.2.2.3 and PHP v.5.1.6 and they are easily installed via the default CentOS Package Manager 'yum'.

The advantage of using yum (as opposed to installing via source code) is that you will get any security updates (if and when distributed) and dependencies are automatically taken care of.
Apache Install

A basic Apache install is very easy:

sudo yum install httpd mod_ssl

ServerName

Oddly, the server does not start automatically when you install it so you have to do this by hand:

sudo /etc/init.d/httpd start

The first thing you will see is this error:

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName

As you can see, the address 127.0.0.1 is used as the ServerName by default. It's a good idea to set the ServerName for the next time the server is started.

Open the main apache config:

sudo nano /etc/httpd/conf/httpd.conf

Towards the end of the file you will find a section that starts with 'ServerName' and gives the example:

#ServerName www.example.com:80

All you need to do is enter your Cloud hostname or a FQDN:

ServerName demo

Note that my Cloud hostname is 'demo'.

Reload Apache:

sudo /etc/init.d/httpd reload

Now the warning has gone. Nice.
Default Page

If you navigate to your Cloud IP address:

http://123.45.67.890

You will see the default CentOS Apache welcome screen.


This is good :-)

Chkconfig

Now that we have Apache installed and working properly, we need to make sure that it's set to start automatically if the Cloud is rebooted.

sudo /sbin/chkconfig httpd on

Let's check our work to confirm:

sudo /sbin/chkconfig --list httpd
httpd           0:off        1:off  2:on    3:on    4:on    5:on    6:off

Good.


PHP5 Install

Let's move on to the PHP5 install. I'm not going to install all the modules available. Just a few common ones so you get the idea.

As before, due to using yum to install PHP5, any dependencies are taken care of:

sudo yum install php-common php-gd php-mcrypt php-pear php-pecl-memcache php-mhash php-mysql php-xml

Once done, do a quick Apache reload:

sudo /etc/init.d/httpd reload

Done.

Please view the Apache Configuration Articles for more information on configuring the Apache Server for multiple domains and hosts