Installing xcache for PHP5 on Debian Etch

XCache is an opcode cacher for PHP developed by the Lighttpd team. The full description directly from http://xcache.lighttpd.net/

XCache is an opcode cacher for PHP developed by the Lighttpd team. The full description directly from http://xcache.lighttpd.net/

XCache is a fast, stable PHP opcode cacher that has been tested and is now running on production servers under high load. It is tested (on linux) and supported on all of the latest PHP cvs branches such as PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x). ThreadSafe/Windows is also supported. It overcomes a lot of problems that has been with other competing opcachers such as being able to be used with new PHP versions. See Introduction for more information.

There is no XCache package within the apt repositories for Debian Etch, however it is available within Debian SID/Testing. You will need to then download the source, compile it and install it. You can download the 1.2 stable source from the following here:

http://xcache.lighttpd.net/wiki/Release-1.2.2
http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz

The second link is the full XCache source, you can use “wget”, “curl” or lynx to retrieve the archive onto your machine.

Once downloaded, extract the archive and a directory called xcache-1.2.2 should have been created and you will want to change directory into it:


[[email protected]:/root/source/xcache]# tar -zxvf xcache-1.2.2.tar.gz
[[email protected]:/root/source/xcache]# ls -al
total 280K
drwxr-xr-x 3 root root 4096 2008-01-14 18:58 ./
drwxr-xr-x 4 root root 4096 2008-01-14 18:58 ../
drwxr-xr-x 5 513 513 4096 2007-12-28 10:00 xcache-1.2.2/
-rw-r--r-- 1 root root 269238 2007-12-28 23:45 xcache-1.2.2.tar.gz
[[email protected]:/root/source/xcache]# cd xcache-1.2.2

You will need to make sure that you have “php5-devel” installed so you can use “phpize” to create the module, a simply “apt-get install php5-dev” as root should do the trick. You may need to type “rehash” if using tcsh to be able to run “phpize”.

Now we need to prepare the module for configuration by typing the following:


[[email protected]:/root/source/xcache/xcache-1.2.2]# phpize --clean && phpize
Cleaning..
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

Then you will need to configure XCache before compiling, at this point you may want to run “./configure –help”. Which will provide information on the configuration options available for XCache that you can change when it compiles. If you don’t need to change anything, just run “./configure”.

If any errors were returned then you’re most likely missing some supporting packages and you will need to install them. If no errors were returned then you can simply run “make”.

Once the module has been compiled it should now reside within the “modules” directory. You can now copy to the proper PHP5 module directory:


[[email protected]:/root/source/xcache/xcache-1.2.2]# cp modules/xcache.so /usr/lib/php5/20060613+lfs
`modules/xcache.so' -> `/usr/lib/php5/20060613+lfs/xcache.so'

Now that the module exists, we need to make a configuration file for it so that PHP5 will load the module and configuration. You should see a “xcache.ini” within the root folder of the extract archive. Just copy it to the correct configuration folder within /etc:


/etc/php5/apache/conf.d <- Configuration file for PHP5 as a Module in apache1.3x /etc/php5/apache2/conf.d <- Configuration file for PHP5 as a Module in apache2.x /etc/php5/cgi/conf.d <- Configuration file for PHP5 compiled as a CGI Binary /etc/php5/cli/conf.d <- Configuration file for PHP5 compiled as a Command Line Binary

For our example, I'm using the PHP5 CGI Binary:


[[email protected]:/root/source/xcache/xcache-1.2.2]# cp xcache.ini /etc/php5/cgi/conf.d/.
`xcache.ini' -> `/etc/php5/cgi/conf.d/./xcache.ini'

Now make sure to edit the following configuration values within the xcache.ini file:


[xcache-common] ;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so
;; For windows users, replace xcache.so with php_xcache.dll
zend_extension_ts = c:/php/extensions/php_xcache.dll
;; or install as extension, make sure your extension_dir setting is correct
; extension = xcache.so
;; or win32:
; extension = php_xcache.dll

Change the "zend_extension" to just "xcache.so" and comment out "zend_extension_ts " like so:


[xcache-common] ;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
extension = xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so
;; For windows users, replace xcache.so with php_xcache.dll
;zend_extension_ts = c:/php/extensions/php_xcache.dll
;; or install as extension, make sure your extension_dir setting is correct
; extension = xcache.so
;; or win32:
; extension = php_xcache.dll

You will also need to change the following from:


; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size = 64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1

To something like the following:


; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size = 64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 4

If you have a Dual Pentium4 with Hyper Threading.

Just restart apache by issuing "invoke-rc.d apache2 restart", and all should be working!

To test whether or not the extension/module was loaded and working, you can put the following code within an PHP file and pull it up in your browser and search for XCache:



And you should see the following:


This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo

Enjoy!

0 Shares:
You May Also Like

Google May Close Gmail Germany Over Privacy Law

Google May Close Gmail Germany Over Privacy Law - Matt writes "Google is threatening to shut down the German version of its Gmail service if the German Bundestag passes it's new Internet surveillance law. Peter Fleischer, Google's German privacy representative says the new law would be a severe blow against privacy and would go against Google's practice of also offering anonymous e-mail accounts. If the law is passed then starting 2008, any connection data concerning the internet, phone calls (With position data when cell phones are used), SMS etc. of any German citizen will be saved for 6 months, anonymizing services like Tor will be made illegal."

Read more of this story at Slashdot.

[Slasdot]

Apple passes Amazon to become the #3 US music retailer

Apple passes Amazon to become the #3 US music retailer -

Filed under: ,


Things must seem pretty rosy in Cupertino -- just a week before the mega-hyped launch of you-know-what, market research group NPD's quarterly survey shows Apple has passed Amazon to become the third biggest music retailer in the US. This isn't the biggest of surprises, since Steve himself predicted that the iTunes Store would overtake Amazon at the Showtime event back in September, but the leap to #3 is a little unexpected, since Apple also outpaced Target last quarter. iTunes is now rocking a 10% market share, just behind Wal-Mart at 16% and Best Buy at 14%, and while we don't expect to see it pass those two giants anytime soon, we'd bet that uptick in DRM-free sales has got the iTMS crew at Apple licking their chops.

 

Read | Permalink | Email this | Comments


Office Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life!

[EnGadget]

AMD 64 2000+ vs Intel’s Atom: AMD’s 8-watt processor outperforms Intels Atom

Intel's Atom processor and AMD's 64 2000+ were pitted against each other. And the results were for once in favor of AMD.
In our Munich lab’s duel of the energy-savers, the AMD Athlon 64 2000+ beats the Intel Atom 230 in energy consumption and processing power. Each of the systems was based on a desktop platform. The Achilles heel of the Intel system is its old system platform with the 945GC chipset, while AMD offers a more modern 780G platform. The energy-saving solution from AMD offers more possibilities: it has three times as many SATA ports, possesses better onboard graphics performance, and can also support two monitors. Unlike the Intel solution, an HD resolution (1920x1200) with high picture quality is possible through DVI/HDMI ports. And early information suggests that the AMD Athlon 64 2000+ should cost close to $90.
Read the full article at tomshardware.com

How to restrict users in linux to their home directory

So lets say you have a server with a bunch of users and they all have sites and data and you don't want them to be able to see each others data. A lot of distributions aren't setup to stop users from wandering and reading files within other users directories.

Final Draft of GPLv3 Allows Novell-Microsoft Deal

Final Draft of GPLv3 Allows Novell-Microsoft Deal - famicommie writes "All of Novell's fingernail biting has been for naught. In a display of forgiveness and bridge building on behalf of the FSF, ZDNet reports that the final draft of the GPLv3 will close the infamous MS-Novell loophole while allowing deals made previously to continue. From the article: 'The final, last-call GPLv3 draft bans only future deals for what it described as tactical reasons in a 32-page explanation of changes. That means Novell doesn't have to worry about distributing software in SLES that's governed by the GPLv3 ... Drafting the new license has been a fractious process, but Eben Moglen, the Columbia University law school professor who has led much of the effort, believes consensus is forming. That agreement is particularly important in the open-source realm, where differing license requirements can erect barriers between different open-source projects.'"

Read more of this story at Slashdot.

[Slasdot]