sgala / apache-incubator-shindig

shinding is an OpenSocial container implementation being incubated at Apache. It is a git-svn import of http://svn.apache.org/repos/asf/incubator/shindig/trunk/

This URL has Read+Write access

Chris Chabot (author)
Tue May 12 05:59:55 -0700 2009
commit  31c44af02bd2a32fd356d0d4d5974802162dd137
tree    301cf5edba9c575ef495016b9cfc9700102670b8
parent  642f2eef8d17db6cea9f0706d1f4075de0c2f824
php/README
Welcome to Apache Shindig!

* Read javascript/README for instructions for using the Shindig Gadget
  Container JavaScript to enable your page to render Gadgets.
* Read the instructions below for how to use PHP Shindig
* For more information, see http://incubator.apache.org/shindig/


Installing and Running The PHP Shindig Gadget Server
============================================

Prequisites before building Shindig for PHP
============================================
In order to build and run Shindig for PHP, you must have the following:

- A Subversion client installed in order to checkout the code.
  Instructions for downloading and installing Subversion can be found here:
  http://subversion.tigris.org/
- Apache with mod_rewrite enabled.
- PHP 5.2.x with the json, simplexml, mcrypt and curl extentions enabled.


Getting the code (if you're running from svn and not a release tarball)
============================================
Create a subdirectory in your web document root, e.g. /var/www/html and
checkout the Shindig code from its Subversion repository

mkdir /var/www/html/shindig
cd /var/www/html/shindig
svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk/ .


Running Shindig from a release download
============================================

The instructions are identical as when running from an svn checkout, except
that the /shindig/php directory in the virtual host becomes just /shindig, ie:

  <VirtualHost your_ip:your_port>
         ServerName your.host
         DocumentRoot /var/www/html/shindig
         ... other normal settings in vhosts...
    <Directory />
      AllowOverride All
    </Directory>
  </VirtualHost>

Running Shindig from an svn checkout
============================================
With PHP There is no need to build anything - the source code
is already built.

To run the code, you have several options:

a. Create a new virtual host

Point your apache to the php dir with a virtual host like:

  <VirtualHost your_ip:your_port>
         ServerName your.host
         DocumentRoot /var/www/html/shindig/php
         ... other normal settings in vhosts...
    <Directory />
      AllowOverride All
    </Directory>
  </VirtualHost>
  

Restart apache, and point your browser to:

http://<your.host>/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

you should see something like this:
http://shindig.chabotc.com/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

b. Run with an existing host

If you cannot/don't want to create a virtual host, you can edit the file php/config/container.php
or php/config/local.php (see the comments php/config/container.php for documentation of the
configuration system) and change the web_prefix setting to '/shindig/php'.

In this case, you should also change all paths in shindig/config/container.js
(see the comments there for documentation of the JSON configuration system).

Then you can run the gadget by pointing your browser to:

http://<your.host>/shindig/php/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

Going forward
============================================
Check out the php/config/container.php file, in local.php you only have to specificy the
fields you want to overwrite with other values, for example on a production system you 
would probably want to have something like:
 $shindigConfig = array(
   'debug' => false,
  'allow_plaintext_token' => false,
  'token_cipher_key' => 'MySecretKey',
  'token_hmac_key' => 'MyOtherSecret',
  'private_key_phrase' => 'MyCertificatePassword',
  'person_service' => 'MyPeopleService',
  'activity_service' => 'MyActivitiesService',
  'app_data_service' => 'MyAppDataService',
  'messages_service' => 'MyMessagesService',
  'oauth_lookup_service' => 'MyOAuthLookupService'
  'xrds_location' => 'http://www.mycontainer.com/xrds',
  'check_file_exists' => false
 );
 
And then implement your own service and oauth lookup classes.