We are going to use our own openid server for various projects, it was fairly easy to install at then end.

Because sources are diffused on the net, here is a all-in-one package you’ll just need to put on your webhost to start your server:

Download package

Update: OpenId-Server now on Github.com

Configuration

In the package, you need to edit some configuration in web/config.php:


/**
* The administrator's email address. You may leave this empty if you
* wish. If empty, the "Contact (email address)" message will not
* appear on every page footer.
*/
define('SITE_ADMIN_EMAIL', "admin@example.com");


/**
* Set these values for administrative access. This account will be
* able to create and remove accounts from the auth backend. This
* username will not be permitted to use an OpenID. The password MUST
* be an MD5 hexadecimal hash of the password you want to use.
* Example:
*
* define('ADMIN_PASSWORD_MD5', '21232f297a57a5a743894a0e4a801fc3');
*
*/
define('ADMIN_USERNAME', 'admin');
define('ADMIN_PASSWORD_MD5', '');

Visit this page to transform your password in MD5 hash


/**
* Storage backend to use. Currently the only choice is "MYSQL". See
* storage.php for storage backend implementations. Parameters for
* connecting to the storage backend. See storage.php if you want to
* create your own backend.
*/
define('STORAGE_BACKEND', 'MYSQL');
global $storage_parameters;
$storage_parameters = array('username' => 'openid',
'password' => '',
'database' => 'php_openid_server',
'hostspec' => 'localhost');

There are more options you can change in config.php, feel free to experiment :)

Link to HTTP server

You need to tell to your server to access OpenID server in the ‘web‘ directory.
Here is how it works on my webhost:


ln -sf ~/openid/web/ ~/public_html/openid/

Now you can access my OpenID server on http://openid.alexgirard.com

Ruby programmers are really lazy geeks:

require 'rubygems'
require 'rio'

rio("http://www.remote.com/file.jpg") > rio("#{RAILS_ROOT}/public/images/")

Rio gem RDoc