When you configure the php environment, zend optimizer, eaccelerator and inocube loader should always be included in your plan. But today when I make some update on client's website I received the error saying zend optimizer is not installed. Then I checked the phpinfo page and zendoptimizer not listed, neither inocube loader. I submitted a request for the installation and still waiting reply. Here I'd like to give some explanation to the two components and what's good of them.
What's zend optimizer?
Zend Optimizer is a component of Zend Server and Zend Server Community Edition. Zend Optimizer speeds up PHP execution by opcode caching and optimization. It stores precompiled script bytecode in shared memory. This eliminates the stages of reading code from the disk and compiling it on future access.
Eaccelerator is the same purpose like Zend optimizer. It caches your PHP scripts so that the database is no longer being queried everytime someone needs a script. This is particularly useful for large forums, but not everyone can benefit from it. Since these scripts are cached, you’ll notice increase in memory usage and server loads. Eaccelerator is mostly used privately on VPS or dedicated server.
What's Ioncube loader?
ionCube loader is the PHP extension that decodes encrypted PHP files at runtime. It is freely available and installation is very easy. For some popular applications such as WHMCS, Ioncube loader must be installed on server or else it won't run.
Zend optimizer vs Eaccelerator, whic is better?
Well, if we only focus on the performance and efficiency, eaccelerator is definitely better than zend optimizer. For example Zend Optimizer does not maintain a cache of PHP scripts, whereas eAccelerator does, Zend Optimizer does not do much if anything to "optimize" scripts, whereas eAccelerator does.
But why Zend optimizer is used more? Simply because zend optimizer is more easy to deploy under any kind OS, but eaccelerator has some specific requirement in order to running properly, for example you can't use PHPSuExec for eaccelerator but zend optimizer does not have such restriction. If you're running a personal server you can configure as you like since you control the entire system, but as for hosting server, it has to be configured to meet the requirement for most people and zend optimizer is good enough. Especially for shared hosting environment, a little change will affect many client's websites so stability is the most important thing.
So as for standard setting on hosting server, zend optimizer and ioncube loader should be included as default. But sometimes it's not loaded for some reason, you will need to contact hosting support to get it installed.
UPDATE: Zend Optimizer was renamed ZendGuard when it was released for PHP 5.3. ZendGuard cannot load files that were encoded for Zend Optimizer, and vice versa.