PHP as a the foundation for a scalable web enterprise application

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.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
TreeSkierAuthor Commented:
We are using MySQL DBMS and running Apache ... guess we're open source all the way through. What do you think?
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.
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.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.