Welcome to part 2 in my 10 part series on the basics of the
PHP web scripting language, in the last part I introduced
you to PHP (and to your author) : In this part of the
series I'm going to show what you need in order to start
developing using PHP.
PHP runs on all the major computing platforms available
today, this includes all versions of windows, all the major
linux distro's and a lot of specialist systems for devices
like the Cobalt Raq and a lot of embedded devices.
In this article however we will be concentrating on running
PHP under the Apache and IIS web servers, which between the
two covers approx 95% of the systems most people will have
access to.
Most distro's will have a ready made option at install time
to add PHP and Apache, or they will usually have an option
in your systems package installer, unfortunately there are a
number of different systems in use here and it's not
practical to try and cover each one.
There is however light at the end of the tunnel. Most of
today's distro's fall into either a 'Red Hat' style system
or a 'Debian' style system. This means that there are 2
distinct package management systems making it quite easy to
add new software. Unfortunately you'll have to use the
command line.
If you have a Red Hat system, then you'll use the RPM
program to manage your packages, from your distro's desktop
find the option to launch a 'Konsole' (KDE) or an
'XTerminal' or something similar. The option your looking
for may be labelled 'Shell' or 'Command Line'.
Once you have this then your ready to start typing commands.
First off try just typing 'rpm' (without the quotes) and
press return.
If you get some kind of error message about rpm not being
found, then it's likely that you have a Debian style system
in which case try typing 'apt-get' (again without the
Quotes) and press return. If you get a screen full of text,
then you have a Debian system.
Now that we know what kind of system we have, we can now use
the appropriate system commands.
We can check if we have PHP and/or apache installed by using the following :
Or for Debian/Ubuntu
(dpkg is part of the 'apt-get' system)
On my 2 test systems, I get the following:
shawty@netfinity:~> rpm -q -a | grep php
apache2-mod_php5-5.2.0-10
shawty@netfinity:~> rpm -q -a | grep apache
apache2-2.2.3-20
shawty@netfinity:~>
Debian/Ubuntu
shawty@poweredge:~$ dpkg -l|grep php
ii libapache2-mod-php5 5.2.3-1ubuntu6.5 server-side, HTML-embedded scripting language
shawty@poweredge:~$ dpkg -l|grep apache
ii apache2 2.2.4-3ubuntu0.1 Next generation, scalable, extendable web se
shawty@poweredge:~$
The above commands will list all software in the machine,
but only show those entries which match (or grep) the search
term. As a result you can see that I have both apache and
mod_php installed on both machines. If you don't have them
already installed then you can normally do the following to
add them
For RPM, go to the apache and php websites at
http://httpd.apache.org/
and
http://www.php.net/
respectively. Download the rpm package for your particular
linux distro, save this to a folder on your linux system
where you can access it from your terminal window. Once you
have downloaded the file switch to your terminal and type
'rpm -i <filename>' replacing the <filename>
with the name of the file you downloaded.
If all goes well you should find that all installs ok, and
that RPM resolves any other missing packages. I would
however strongly suggest that you use that to install
'apache2' and 'mod_php5'.
Under Debian/Unbuntu things are so much simpler:
$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-php5
The package names 'libapache2-mod-php5' and 'apache2' may be
different, depending on the distro's naming rules, again if
you know how to use your package manager, then it's strongly
advised that you use that.
Installing PHP under Windows
To install the IIS web-server under Windows, you'll need
your original Windows install disk, you'll also need the
professional version of your chosen Windows, if you have
home, standard or something similar then you'll have to
download the Windows version of apache from the apache
website and install that. Go into your windows control
panel, then open 'Add remove programs' click on 'Add/remove
Windows components' on the side menu, then from the dialog
that opens select 'IIS Internet information services' and
click next. Follow any further instructions.
If you had to install Apache2 for windows then this will
have been just as easy, by simply answering the questions
and clicking next.
Please remember to read all dialog boxes fully, especially
any that tell you where the root of your file system is.
Once you have your web-server installed, go to www.php.net
and download the Windows binaries for PHP and click on the
downloaded file to install.
Testing the installation
If everything has gone ok, find the root folder for your web
server. Under linux this will be something such as
'/var/srv' or '/usr/share/httpd/' or 'c:\inetpub' depending
on your installation platform, again I can't tell you
exactly where to look because this will be different
depending on your chosen install. One thing I will say, is
there is a chance that there may be an 'index.html' or
'Default.htm' in there somewhere which will help you decide
if it's your web server root directory.
Once you find this location, create a simple file called
'mytest.php' or 'testfile.php' and put the following lines
in it:
Save your file then try to run it using
http://localhost/mytest.php (or whatever file name you
chose) and if all goes well you should see the default php
information file.
A word of warning on choice of file name, it's very very
ill advised to call the file phpinfo.php or phptest.php
Automated cracking tools used by script kiddie's will very
often look for files like this to try and determine details
about a given server prior to attacking it further. A good
rule of thumb to follow is that if the file name is a common
one, and easily guessed then chances are there's a script
out there somewhere to find it.
Summary
In this article we looked at installing a web server and PHP
so you can start creating PHP scripts, I only wish I could
have been more specific in a lot of cases, but because of
the immense number of differences it's a very tricky thing
to do.
There are many pre made LAMP & WAMP packages that will
automate a lot of this stuff for you, and it is highly
recommended you use those. Manually installing this stuff
is not for the feint hearted and as long as I've been doing
this, the average Apache config file still gives even me
nightmares at times.
In the next article, we'll get stuck into some PHP properly.
Until then
Happy PHPing
Shawty
The ABC's of PHP Series