One of my favorite things
about linux is that it allows me to have a full-featured server at
home for a very small price. I have a 3 computer network at home, and
my router is a simple Intel Pentium 133 w/ 32 MB RAM and 1.7 Gb HD.
That machine which run on
Red Hat 6.0 is my router, dns server, firewall/proxy server, samba
server, and my web server, and it runs great. I must tell you that
the only reason that I shut that server off is when there are
thunderstorm warning in my city, but other than that the machine runs
And the reason for this
article is to allow you to run your own web applications of your
computer, even if your machine is a small Pentium 133 like mine. I
normally, write articles that are aimed for the newbies simply
because I think they need much more support than the "older"
guys do, and this article is no different.
I would like to introduce
to you a scripting language called PHP. And for you that prefer
another language such as PERL, ASP or Cold Fusion, all I can say is
"don't get mad at me just because I did not choose your
PHP is a server dependent
scripting language that can be embedded on HTML, and according to its
documentation it was created "sometime in the fall of 1994".
If you decide to play around with PHP you will notice that its syntax
is very similar to C, so if you have any programming experience with
C, C++ or even Java, programing on PHP should be a breeze.
The greatest thing about
PHP is that it allows you to make web sites that will interface with
several types of databases. A few examples are:
and many others...
This article will show you
how to install PHP version 3 (PHP3) on a RedHat System that is using
MySQL as its database. Note:
RedHat's full install will install PHP3 all ready to work with
can download MySQL from:
you are running Red Hat, I would recommend to you to download the
RPMs for the database. Download:
The Server - MySQL-3.22.27-1.i386.rpm
The Client - MySQL-client-3.22.27-1.i386.rpm
The Development Libraries - MySQL-devel-3.22.27-1.i386.rpm
MySQL 3.22.27 is the most recent-stable version as of the day this
article was written.
you have downloaded all three files, run the following command as
rpm -ihv MySQL-*
should install all of the MySQL packages you have downloaded.
the basics of MySQL should not be a challenge because of two main
Online Documentation is very well organized, and
be found at: http://www.mysql.com/doc.html
Graphical User Interfaces that are available on
the web to make MySQL administration much easier.
can find a whole list of GUI Clients for MySQL at:
I said in the beginning of this article RedHat already comes with the
RPM for the installation of PHP3, but by default it is setup to
support PostgreSQL. And to make this RPM work with MySQL is not hard
at all, thanks to great F.A.Q. whic can be found at the PHP official
web site (http://www.php.net).
solve this problem I quote the F.A.Q. section from the PHP web site.
3.3 I installed PHP using RPMS, but it doesn't compile with the
database support I need! What's going on here?
Due to the way PHP
is currently built, it is not easy to build a complete flexible PHP
RPM. This issue will be addressed in PHP4. For PHP, we currently
suggest you use the mechanism described in the INSTALL.REDHAT file in
the PHP distribution. If you insist on using an RPM version of PHP,
Currently the RPM packagers are setting up the RPMS to install
without database support to simplify installations AND because RPMS use /usr/ instead of the standard /usr/local/ directory for files. You need
to tell the RPM spec file which databases to support and the location
of the top-level of your database server.
This example will explain the process of adding support for the
popular MySQL database server, using the mod installation for
Of course all of this information can be adjusted for any database
server that PHP supports. I will assume you installed MySQL and
Apache completely with RPMS for this example as well.
First remove mod_php3
rpm -e mod_php3
Then get the source rpm and INSTALL it, NOT --rebuild
rpm -Uvh mod_php3-3.0.5-2.src.rpm
Then edit the /usr/src/redhat/SPECS/mod_php3.spec file
In the %build section add the database support you want, and the
For MySQL you would add --with-mysql=/usr \
The %build section will look something like this:
./configure --prefix=/usr \
Once this modification is made then build the binary rpm as
rpm -bb /usr/src/redhat/SPECS/mod_php3.spec
Then install the rpm
rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm
Make sure you restart Apache, and you now have PHP with MySQL
support using RPM's. Note that it is probably much easier to just
build from the distribution tarball of PHP and follow the instructions
in INSTALL.REDHAT found in that distribution.
problem is that some distributions (including RedHat) that also come
with PHP3 installed, don't have PHP3 activated on Apache's
configuration file. To solve this problem again we count on the PHP3
I installed PHP using RPMS, but Apache isn't processing the PHP
pages! What's going on here? Assuming you installed Apache PHP
completely with RPMS, you need to uncomment or add some or all
of the following lines in your http.conf file:
# Extra Modules
# Extra Modules
LoadModule php_module modules/mod_php.so
LoadModule php3_module modules/libphp3.so
LoadModule perl_module modules/libperl.so
AddType application/x-httpd-php3 .php3
To the global properties, or to the properties of the VirtualDomain
you want to have PHP support added to.
If you have successfully installed MySQL, re-installed PHP3, and
activated PHP3 in you Apache configuration you should be all set to
start using PHP3.
Once you are done changing the Apache configuration make sure you
is a quick test for you to try, and see if php3 is running correctly
in your system:
to your web root directly (RH systems at: /home/httpd/html), and
create the following file and name it phptest.php3.
echo "Testing PHP3 with Hello World!\n";
the open you web browser, and you should get just the formatted web
site. If you do get that, you should be all set to start using PHP3.
If you have not been able to get the right results, I would suggest
you to check out PHP's web site at: http://www.php.net
month, I will send in a couple of more complex examples with some
data entry on a MySQL database.
texts that are found inside a table were extracted from the PHP3 Web
code used with permission of the PHP
1998. All rights reserved.
more information on the PHP Development Team and
project, please see <http://www.php.net>.
Copyright © 1999, Anderson Silva
Published in Issue 47 of Linux Gazette, November 1999