However, within the open source code there is plenty of software to choose from, and it is up to the system analyst / programmer to select those that best suit the project objectives.
In our case we chose Linux as our operating system. But we are facing a big question: Which Linux distribution? There are dozens of Linux distributions, each with specific advantages, sometimes with or without paid services.
We chose Linux Slackware, because we thought it would be better suited to our needs in terms of stability and reliability. Slackware is a conservative allocation so that it only offers in its distribution package kernel versions, and third party libraries, where it has proved to be stable and reliable. As a result, Slackware is one of the most stable Linux operating system on the market. If the user wants the latest Linux kernel and libraries, we recommend looking for another distribution.
Another reason for us picking Slackware, was because of its text interface, which initially can be somewhat difficult, in the long run, but it gives a better understanding of the Linux environment. This way most of Slackware configurations are done through text scripts.
When it was put into the operating system, we picked Apache as our web server. Apache is one of the most popular web server on the Internet. For server programming language, we chose PHP. Also a very popular programming language. Our experience with Apache / PHP proves that this setup is very reliable, working extremely well in our production environment. For workstation programming language, we chose javascript, which besides having a simple syntax, it provides plenty of resources.
Apache web server is really a complete Web server. Moreover, it can become very complex with many configuration settings.
For our database, we picked Postgresql. This database is made available to the public for more than 15 years, and besides being well debugged, it offers so many resources that it has become one of the best database options from open source code software. Extremely reliable Postgresql has reported cases where there have been databases in production with over 4 terabytes. Besides all this, is Postresql not the most popular Open Source Code database. A question on marketing? Probably.
As for programming languages PHP, we had to use an object-oriented program structure. There are many PHP application structures offered with Open Source Code license. Object-oriented application is very important because it makes programming very easy and scalable up to the point where the system can grow without many problems. Also, it helps to keep PHP code separated from HTML, using some specific libraries such as Smarty. We make use of the Smarty library and we believe it is a very important resource, which can even make webpages faster using its caching.
Also a very important set of libraries worth mentioning for PHP systems that are PEAR libraries. In PEAR web site, which are among the many libraries that are offered, which is the database interface DB and the MAIL_QUEUE who send emails using the database.
When we got to the end of our project, we had to use a form of real-time database replication. For that we chose the drbd and Heartbeat libraries. The use of database replication is very important and should not be exposed. Just after 3 months our system got into production, our server was bad hard drive. Through the use of drbd / Heartbeat we were able to put the system back into production within a few seconds, without losing data. Drbd / Heartbeat replication happens using a LAN between the server and slave nodes.
Our project also makes use of ImageMagick (enlarge and reduce images), Iptables (firewall) Tsearch2 (text search in portgresql) and Moen (Linux monitoring tasks).
Also a very important library worth mentioning is the pseudo APC compiler for PHP. Speed is always a critical factor for internet sites.
Our website is already in production and based on our experience we can say that open source code software we picked, proved to be extremely reliable and stable. Open Source Code software can certainly be an excellent opportunity to develop websites.