Requirements for MyPHPBib

Home | Requirements | Install | Using

What is it?

MyPHPBib is a web application for managing bibliographic references. It can import references in several formats (e.g., EndNote and RIS), as well as importing references directly from PubMed. MyPHPBib is written in PHP and uses MySQL as the database.


MyPHPBib requires MySQL, PHP 4, Perl 5, and various libraries listed below. On a reasonably recent Unix system this shouldn't be a problem, but your mileage may vary.


To install MyPHPBib you need:

  1. The XSLT extension for PHP (Sablotron can be used if the XSLT extension is not installed).
  2. to edit PHP.INI
  3. PHP HTTP client to talk to PubMed
  4. The Perl bp package for importing references
  5. Perl libraries for talking to MySQL and handling HTML entities

There is a good chance that a well configured system has most of these already.


PHP 4 or later is needed, together with the xslt extension (I've no experience with PHP 5). On Mac OS X I use the package provided by Marc Liyanage.

If PHP doesn't have the XSLT extension (e.g., PHP 4.2.2 installed on Red Hat Linux 8) then we need to do the transformations using the Sablotron command line program sabcmd. That means installing Sablotron. Make sure you have libiconv installed before installing Sablotron so that ISO-8859-1 character encoding is supported, as this character is required by the Perl bp import routines. Linux users should already have this, but Mac OS X users might need to install it (10.3 has it, but earlier versions don't).


MyPHPBib requires that URLs containing parameters use & to separate arguments. By default PHP uses &. You need to edit two settings in the php.ini file to make this change. These are the settings for arg_separator.output and arg_separator.input, which should look like this after editing:

; The separator used in PHP generated URLs to separate arguments.
; Default is "&".
arg_separator.output = "&" 

; List of separator(s) used by PHP to parse input URLs into variables.
; Default is "&".
; NOTE: Every character in this directive is considered as separator!
arg_separator.input = ";&"


The location of the php.ini file varies on different systems. On my Red Hat Linux box it is in /etc, on Mac OS X it is /usr/local/php/lib (if you have Marc Liyanage's PHP installed).

PHP libraries

MyPHPBib depends on a mixed bag of PHP libraries, all of which are packaged in the MyPHPBib distribution. These files are listed here if you want more recent versions, and also to give credit to the authors of these packages.

bp, a Perl bibliography package

Dana Jacobsen's Perl package for converting between reference formats is needed to import various bibliographic formats. The original bp (version 0.2.97) is available from Jacbsen's web site.

The MyPHPBib distribution includes a copy of bp 0.2.97, and two extra files that add support for ISI and RIS formats, (based in part on code from the SIXPACK bibliography and reference manager). See the Installation instructions.


The perl script to bulk import Endnote and RIS bibliographies requires the DBI, DBD::mysql, and HTML::Entities modules, which can be grabbed from CPAN:

sudo perl -MCPAN -e shell
install DBI
install DBD::mysql
install HTML::Entities