PHP as a the foundation for a scalable web enterprise application

Posted on 2003-11-13
Last Modified: 2011-09-20
We recently awarded an enterprise-level application development to a firm that plans to build it in PHP. I had previous experience working with ColdFusion developers on another similar application and was hoping to find a CF team for this new application. However, I was convinced by the bid details and credentials of the team we picked that PHP is very much a viable alternative for our application. But now I am having second thoughts.

I guess I am looking for expert advice about the TRUE viability of dynamic a PHP web application that needs to be scalable with a range of 0 users to 100,000 users. Said users would have access to a range of tools through the application, including email, contact management, their own e-commerce websites, searchable content databases -- all with interconnected database relationships.

I know that outline is painted in broad strokes. But, from the description, can you assess the reliability/viability of such a system written in PHP vs. CF? Primarily, I am interested in the scalability aspect. I am certain PHP code can build and manage a complex, inter-connected dynamic database application with a smal number of users and concurrent sessions. But what if the number of users of that same application grew exponentially?

All that said, if CF is a better alternative to PHP for a complex, scalable, dynamic web application -- and I said IF -- how would you go about "converting" PHP code to CF code, if necessary? I gues syou could have CF programmers simply duplicate the functionality of a PHP application, but I wondered if there is a more automated approach.

Thank you in advance for your thoughts on this.
Question by:TreeSkier
  • 2

Accepted Solution

TaintedGod earned 250 total points
ID: 9743839

It seems here that your concern should not be wheather to use PHP or CF, but what kind of database you are using that would determin how many users you could have, this also has to do with what kind of server you are working with. I'm sure you could use either PHP or CF and still get the job done ( I would use PHP), since the number of users wouldn't affect PHP or CF, but instead the server and the database.

If you could tell us what kind of server and database you are using, we could then determin how many users you could support.

Author Comment

ID: 9743970
We are using MySQL DBMS and running Apache ... guess we're open source all the way through. What do you think?

Expert Comment

ID: 9745765
There is no problem with the site('s) being so big and using PHP + mySQL.
It can be done with PHP and mySQL and performance can be very good as well.

What you do have to realise is that all this does depend on the actual code you are using.

If coded correctly and if the database is designed to handle this size then it should not be a problem.

Good example of software that does handle small forums is phpBB; it can handle small to medium forums; but once you get really big it becomes enormously slow. Simply because the database and coding wasn't build for huge size's.

If the software is build with the size taking into account; then there is no problem.

Expert Comment

ID: 9749948
Thank you doppyNL for restateing my post.

TreeSkier, MySQl, Apache and PHP has been considered one of the best combinations for what you want to do, so I think everythign should go fine as long as you have the disk space (obviouly), and you are basically limited to your operating system for how big your databases tables can be, here is some information from the manual:

MySQL Version 3.22 had a 4 GB (4 gigabyte) limit on table size. With the MyISAM table type in MySQL Version 3.23, the maximum table size was pushed up to 8 million terabytes (2 ^ 63 bytes).

In effect, then, the table size for MySQL databases is normally limited by the operating system.

Note, however, that operating systems have their own file-size limits. Here are some examples:

Operating System                                        File-Size Limit  
Linux-Intel 32 bit                                          2 GB, much more when using LFS  
Linux-Alpha                                                 8 TB (?)  
Solaris 2.5.1                                                2 GB (possible 4GB with patch)  
Solaris 2.6                                                  4 GB (can be changed with flag)  
Solaris 2.7 Intel                                           4 GB  
Solaris 2.7 UltraSPARC                                 512 GB  

On Linux 2.2 you can get tables larger than 2 GB in size by using the LFS patch for the ext2 filesystem. On Linux 2.4 patches also exist for ReiserFS to get support for big files. Most current distributions are based on kernel 2.4 and already include all the required Large File Support (LFS) patches. However, the maximum available file size still depends on several factors, one of them being the file system used to store MySQL tables.

Hope that helps.

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
This article discusses four methods for overlaying images in a container on a web page
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question