PBooks Requirements

PBooks currently uses the [http://www.nexista.org Nexista PHP development framework]. There is a dpkg there you can use to install metabase, as well as a pear package for nexista. I plan to setup a pear channel for nexista, and metabase has been ported to PEAR, but I haven't tested it with Nexista or PBooks yet.

  • [http://www.nexista.org Nexista]
  • Apache or Lighttpd
  • PHP with XSL support
  • PEAR Cache_Lite
  • PEAR MDB2 and pear/MDB2#MySQLi
  • MySQL

Some of this stuff will likely be included in a "easy install" tarball: * Javascript calendar * Nexista authentication manager * Nexista user admin The easy install tarball is the one available from the [http://www.pbooks.org/blog/download/ download page]. It contains everything necessary to install and run PBooks. PBooks is actually a separate project by itself though, I've done this to make integration with other applications and components a possibility.

PBooks Installation

Install requirements - nexista, metabase (or possibly pear MDB2), mysql, php5 with xsl support.

Download tarball - http://www.pbooks.org/blog/download/

Setup database. - there is now a [http://www.svn.pbooks.org/trac/browser/misc_projects/pbooks_portable/trunk/install_db.php database install script for pbooks] (so you might be able to skip the following few steps)!

Copy config.xml.dist to config.xml and change the database settings

Import data: mysql -u pbooks -p pbooks < demo_pbooks_data.sql

Import data: mysql -u pbooks -p pbooks < auth_pbooks_data.sql

Load index.php - it will probably require you to make some directories writable by the web server, so that the cache files can be built.

PBooks Subversion Layout

I realize the subversion layout might be a little confusing, so here's an explanation: * pbooks - just the pbooks application, won't work on its own, you also need the auth and user applications which are available via Google Code, or in pbooks_portable * pbooks_portable - includes svn external property references to the other components you need, like nexista, pbooks, auth, and user * pbooks_tests - like the name says, mostly selenium tests Each of these has a trunk, branch, and tag folder for keeping track of different snapshots and versions of the code. Pbooks portable uses the pbooks trunk at the moment.

Ubuntu / Debian Setup

aptitude install php-pear php5-xsl php5-mysqli mysql5-server php5-mysql
cd /usr/share/php
pear install MDB2 pear/MDB2#mysqli cache_lite 
mkdir /usr/share/pbooks/
cd /usr/share/pbooks/
svn co pbooks .

I'm hoping to create a debian dpkg very soon, but I need to learn some about the shell scripts used for advanced packaging.

PBooks Layout

PBooks currently follows a layout similar to the directory structure of the [http://www.symfony-project.com/ Symfony PHP development framework]. Here's how my environment is setup, including some dependencies:

/usr/share/pbooks/
/usr/share/pbooks/apps/pbooks/
/var/www/pbooks/ (symlink to /usr/share/pbooks/web/)

Like I said, this layout follows that suggested by symfony. You can install symfony by using PEAR if you want to learn more about it. To make the use of symfony with nexista easier, I modified the symfony "skeleton" to provide nexista components. This modified symfony skeleton is available from Google code: http://code.google.com/p/nexista-example-site/

PBooks Development Plans

We'll be setting up a subversion server for hosting the code, as well as an irc channel and a mailing list. In the mean time, please feel free to use the [http://www.forums.pbooks.org/ PBooks Support Forums].

How to make installation easier?

I would love to make the installation process easier. I've thought of a couple different ideas, but none have jumped out at me. I think I will try to make debian packages and have them take care of the dependencies for it. Another idea is to create a virtual machine, and considering how much fun I'm having with QEMU these days, I definitely should give that a go. Unfortunately the use of QEMU and vde would be required for networking to work with the web server. Maybe Parallels or VMWare would be better?

Actually I'm now use OpenVZ to test out installs of PBooks on "fresh" machines of various linux distributions. So far I've still only tested debian based distros, but I tested PBooks on lighttpd, works fine!

PBooks Functional Testing

We're using Selenium to test the PBooks application. Here are the PBooks Tests we've compiled so far.