Couple days ago installed Collabtive to manage my small projects in one place.
It is a PHP based solution with nice user interface that ideally fits my needs as it offers:
- Multiple projects
- Milestones
- Task lists
- File management
- Time tracker
Recently I run into small problems related to PHP.
Problem A – sqlite.so
First one was PHP warning:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' - /usr/lib/php5/20090626/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP tried to load sqlite.so from /etc/php5/conf.d/sqlite.ini (php5-sqlite package).
$ dpkg -L php5-sqlite
/.
/etc
/etc/php5
/etc/php5/conf.d
/etc/php5/conf.d/sqlite3.ini
/etc/php5/conf.d/pdo_sqlite.ini
/etc/php5/conf.d/sqlite.ini
/usr
/usr/share
/usr/share/doc
/usr/lib
/usr/lib/php5
/usr/lib/php5/20090626
/usr/lib/php5/20090626/pdo_sqlite.so
/usr/lib/php5/20090626/sqlite3.so
/usr/share/doc/php5-sqlite
As suspected there was sqlite3.so file.
$ ls /usr/lib/php5/20090626/
curl.so gd.so mysqli.so mysql.so pdo_mysql.so pdo.so pdo_sqlite.so sqlite3.so
To solve this problem just delete /etc/php5/conf.d/sqlite.ini file.
$ sudo rm /etc/php5/conf.d/sqlite.ini
Problem B – fuser process
Second problem was more serious. Thousands of fuser zombie processes and funny CPU usage.

Hopefully there is a bug report #876387 so for solution look at fourth comment. Don’t forget to identify and kill already running find processes.
In short this problem can be quickly recognized by thousands of fuser zombie processes:
$ ps ax | awk '{if ($3=="Z" && $5~/fuser/) s++}; END {print s}'
21613
It was created by php cron job /etc/cron.d/php5 (php5-common package):
$ dpkg -S /etc/cron.d/php5
php5-common: /etc/cron.d/php5
Source of this problem in /etc/cron.d/php5 file:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
To solve it replace this line with one given below:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete
Don’t forget to kill running find processes:
# ps ax | grep "find /var/lib/php" | grep fuser | awk '{print $1}' | xargs kill
If you are looking for search engine software then try Yioop!.
It is PHP based and Open Source so it is very easy to deploy it on Intranet or remote dedicated server. You can try it directly at yioop.com
Today I installed phpMyAdmin on fresh CentOS 6.2 (with EPEL repository) and it was not working. Looking at Apache logs revealed only notice:
[notice] child pid 41292 exit signal Segmentation fault (11)
My Apache and PHP versions:
$ httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Dec 8 2011 18:07:26
$ php -v
PHP 5.3.3 (cli) (built: Jan 11 2012 19:30:40)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
The problem was with eAccelerator PHP module.
There are two simple solutions. First requires to edit /etc/php.d/eaccelerator.ini file and comment out one line:
extension="eaccelerator.so"
Second is to remove eAccelerator PHP module:
# rpm -e php-eaccelerator
Don’t forget to restart Apache.
For last couple of days I was searching for self hosted bookmark management software and found one great solution (under active development!): SemanticScuttle.
I tried to install Pligg but I experienced too many problems, checked out PHPDug, Scuttle, Hotaru CMS but these are not actively developed. There is also Maneame but it is in Spanish.