Ingredients for our web application are Apache HTTP Server 2.2, PHP 5.2, Firebird 2.1and Oracle 10g Express Edition.

Like in any IT project, not everything goes according to plan and there are so many pitfalls; some of which are:

  • Repositories
  • Linux Firewall
  • SE Linux Permissions

Using the package manager (Yum) to add, remove and upgrade applications is quite straight forward. You can install and uninstall applications fairly easily by just ticking and unticking a few boxes and APPLYYY!. Yum will take care of the applications and libraries that installed application requires (dependency tree).

Installing CentOS 5.3 with standard web server tools should be all right.

Although the default packages allows you to install earlier versions of Apache HTTPd 2.2.3 and PHP 5.1.6, when the latest are Apache HTTPd 2.2.12 and PHP 5.3, you think it should be all right, but no, unfortunately!

First, we need to install Firebird: luckily you can download the RPM file and double click on it!

On my system, it is installed on /opt/firebird/ by default. So, run gsec as root to manage user accounts as usual:

/opt/firebird/bin/gsec

Unfortunately, there are not many online tools to administer Firebird database; have a look at ibWebAdmin.

And for Oracle, just download the RPM file, and intallation is easy. This one is the 10g R2 Express Edition (Universal), free to use like MS SQL Server Express.

Run the following command to configure and set a password:

/etc/init.d/oracle-xe configure

Then, you can manage the Oracle system within the browser:

http://localhost:8080/apex

First problem is the firewall: if you want to manage Oracle from another PC on your network, allow connections on the port 8080. If you need to access Firebird only locally, you do not need to open port 3050.

The real nitty gritty stuff come when you need particular libraries, modules and functions in PHP: to connect to Oracle and Firebird, for instance.

Normally, you would run Yum command to add these functionalities:

yum install php-firebird

But, it will not find them in the default repositories. This did the trick for me:

yum install php-interbase --enablerepo epel-testing

To be continued..

(as promised /wp/index.php/2009/12/setting-up-a-web-application-on-centos-continued/)