Solution: Building php-cli for eZ publish command line scripts

About

Building standalone php-cli (php 4.4.4 + refcount patch) for eZ publish

The Patch

eZ publish and eZ publish command line scripts like the update scripts which interact with the content object database can use so many references that it causes PHP to segfault, crash, fail, die ...

This problem has been around for a long time and has only partially been resolved in PHP 4.4.x.

To help reduce the chance PHP might segfault, one may 'patch' PHP source code and recomple PHP.

Refcount (Increased Reference Support) Patch from http://ilia.ws/archives/5-Top-10-ways-to-crash-PHP.html

Patching PHP

Here are the commands I used today patch the php-cli source to include improved reference support.

# php-cli (php 4.4.4) compile instructions:

lynx http://www.php.net/get/php-4.4.4.tar.gz/from/a/mirror

tar -vzxf php-4.4.4.tar.gz

cd php-4.4.4

# apply patch

vi Zend/zend.h

Building PHP

Here are the commands I used today to compile php-cli from source.

mkdir /usr/local/php-cli-4-4-4-refcount

./configure --prefix=/usr/local/php-cli-4-4-4-refcount --disable-cgi

make

make test

make install-cli

Testing

Use this patched php-cli binary to run your eZ publish command line, cronjob, update scripts

Example Use Case

 

Another Patch

Another patch has been documented to solve other reference related problems related to eZ publish's PHP code. If the above patch does not solve your breakdowns, consider applying this other patch and test the results.

References