>From what I've read in the documentation.

You can only use 1 type of Apache core MPM module at a time.

PHP is a bit fussy about the MPM you use under Linux.

PHP Manual

Chapter 4. Installation on Unix systems

Apache 2.0 on Unix systems

This section contains notes and hints specific to Apache 
2.0 installs of PHP on Unix systems. 

Warning

We do not recommend using a threaded MPM in production with 
Apache2. Use the prefork MPM instead, or use Apache1. For 
information on why, read the related FAQ entry on using 
Apache2 with a threaded MPM

I think you need to use a php module for apache, - not CGI, 
as AFAIK the Apache php module would be faster than the 
external cgi program.

You can just use the php5 Apache module and tell it to run 
in php 4 mode using the following php directive:

zend.ze1_compatibility_mode boolean (0 | 1)

// default is off - 0
zend.ze1_compatibility_mode 0

Enable compatibility mode with Zend Engine 1 (PHP 4). It 
affects the cloning, casting, and comparing of objects. 

This can be set anywhere, in the php.ini file, or on a page 
by page basis. So in theory, you should be able to just use 
php5, and switch into php4 mode as required.

You cannot use the Apache php4 and php5 modules together in 
1 server instance.

PHP Manual

Appendix B. Migrating from PHP 4 to PHP 5

Table of Contents
What has changed in PHP 5
Backward Incompatible Changes
CLI and CGI
Migrating Configuration Files
New Functions
New Directives
Databases
New Object Model
Error Reporting

What has changed in PHP 5

PHP 5 and the integrated Zend Engine 2 have greatly 
improved PHP's performance and capabilities, but great care 
has been taken to break as little existing code as possible. 
So migrating your code from PHP 4 to 5 should be very easy. 
Most existing PHP 4 code should be ready to run without 
changes, but you should still know about the few differences 
and take care to test your code before switching versions in 
production environments. 

For php accelerators you may be able to use the following 
with php5:

http://www.php-accelerator.co.uk/

They also sell a commercial php encoder, which is amazingly 
fast, and reasonably priced.

http://www.ioncube.com/sa_encoder.php

You also need to be familiar with optimal database design 
techniques, and how to write efficient SQL queries, and fine 
tune and squeeze as much performance out of mysql as possible.

See chapter 7 from the mysql manual.

7. Optimization
7.1. Optimization Overview
7.1.1. MySQL Design Limitations and Tradeoffs
7.1.2. Designing Applications for Portability
7.1.3. What We Have Used MySQL For
7.1.4. The MySQL Benchmark Suite
7.1.5. Using Your Own Benchmarks
7.2. Optimizing SELECT and Other Statements
7.2.1. Optimizing Queries with EXPLAIN
7.2.2. Estimating Query Performance
7.2.3. Speed of SELECT Queries
7.2.4. WHERE Clause Optimization
7.2.5. Range Optimization
7.2.6. Index Merge Optimization
7.2.7. IS NULL Optimization
7.2.8. DISTINCT Optimization
7.2.9. LEFT JOIN and RIGHT JOIN Optimization
7.2.10. Nested Join Optimization
7.2.11. Outer Join Simplification
7.2.12. ORDER BY Optimization
7.2.13. GROUP BY Optimization
7.2.14. LIMIT Optimization
7.2.15. How to Avoid Table Scans
7.2.16. Speed of INSERT Statements
7.2.17. Speed of UPDATE Statements
7.2.18. Speed of DELETE Statements
7.2.19. Other Optimization Tips
7.3. Locking Issues
7.3.1. Locking Methods
7.3.2. Table Locking Issues
7.3.3. Concurrent Inserts
7.4. Optimizing Database Structure
7.4.1. Design Choices
7.4.2. Make Your Data as Small as Possible
7.4.3. Column Indexes
7.4.4. Multiple-Column Indexes
7.4.5. How MySQL Uses Indexes
7.4.6. The MyISAM Key Cache
7.4.7. MyISAM Index Statistics Collection
7.4.8. How MySQL Opens and Closes Tables
7.4.9. Drawbacks to Creating Many Tables in the Same Database
7.5. Optimizing the MySQL Server
7.5.1. System Factors and Startup Parameter Tuning
7.5.2. Tuning Server Parameters
7.5.3. Controlling Query Optimizer Performance
7.5.4. How Compiling and Linking Affects the Speed of MySQL
7.5.5. How MySQL Uses Memory
7.5.6. How MySQL Uses DNS
7.6. Disk Issues
7.6.1. Using Symbolic Links

I'm sure others on the list can add alot more to my 2 cents 
worth.

HTH

Keith

In theory, theory and practice are the same;
in practice they are not.

To unsubscribe from this list, please see detailed 
instructions already posted at:

http://marc.theaimsgroup.com/?l=php-install&m=114138567814319&w=2

On Sat, 18 Mar 2006 [EMAIL PROTECTED] wrote:

> To: php-install@lists.php.net
> From: [EMAIL PROTECTED]
> Subject: [PHP-INSTALL] Optimum configuration for Apache and PHP 
> 
> Hello all, We are building a new LAMP system, which will 
> contain lots of virtualhosts (most of them are Typo3 
> vhosts). Hardware: Processors: 2 x Xeon(TM) CPU 3.20GHz, 
> 2048 KB (EM64T, HyperThreading) RAM: 4GB
> 
> Im wondering what would be the best solution to setup apache and PHP
> (we want install php4 and php5 on the same machine)
> I thought about the following possibilities


> (Configuration_1)
> - apache2 compiled with "worker mpm" and "threads"
> - php compiled as "cgi" and "threads"
> ? what about fastcgi in this configuartion ?
> ? what about eaccelerator or pecl-apc in this configuartion ?
> (/Configuration_1)
> 
> (Configuration_2)
> - apache2 compiled with "prefork mpm"
> - php compiled as "cgi"
> (all without threads)
> ? what about fastcgi in this configuartion ?
> ? what about eaccelerator or pecl-apc in this configuartion ?
> (/Configuration_2)
> 
> (Configuration_3)
> - apache2 compiled with "prefork mpm"
> - php compiled as "mod_php"
> ? what about eaccelerator or pecl-apc in this configuartion ?
> (/Configuration_3)
> 
> 
> Which one is the way to go regarding stability, 
> performance and security? How does mod_suphp affect 
> performance and stability?
> 
> Thanks for helping us.
> 

Reply via email to