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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Deprecated and Headed for the Dustbin By now, you have probably heard that some PHP features, while convenient, can also cause PHP security problems.  This article discusses one of those, called register_globals.  It is a thing you do not want.  …
Developers of all skill levels should learn to use current best practices when developing websites. However many developers, new and old, fall into the trap of using deprecated features because this is what so many tutorials and books tell them to u…
The viewer will learn how to count occurrences of each item in an array.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

920 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now