Mainly because PHP doesn't support the separation of business logic from presentation logic. There is nothing like EJB in PHP which makes it impossible to spread your application among multiple servers. Java allows for a true distributed environment across many tiers (as many as you like) which PHP doesn't come close to supporting. Java supports an MVC environment with servlets, JSPs and EJBs all interacting across multiple servers. PHP only serves the role of JSP.