Improved the documentation based on user feedback.

This commit is contained in:
Loic d'Anterroches 2008-11-26 21:34:47 +01:00
parent 28b650f841
commit 1332ba7eda
3 changed files with 139 additions and 78 deletions

View File

@ -4,6 +4,29 @@ The installation of InDefero is composed of 2 parts, first the
installation of the [Pluf framework](http://www.pluf.org) and second, installation of the [Pluf framework](http://www.pluf.org) and second,
the installation of InDefero by itself. the installation of InDefero by itself.
## Recommended Layout of the Files
If your server document root is in `/var/www` a good thing is to keep
the number of files under the `/var/www` folder to its minimum. So,
you should create a `/home/www` folder in which we are going to
install all but the files which need to be available under the
document root.
/home/www/pluf/src/
/home/www/pluf/src/Pluf.php
/home/www/pluf/src/migrate.php
/home/www/indefero/src
/home/www/indefero/www
/home/www/indefero/www/index.php
/home/www/indefero/www/media
The you need to link the `media` and `index.php` files into your
docroot.
$ cd /var/www
$ ln -s /home/www/indefero/www/index.php
$ ln -s /home/www/indefero/www/media
## Installation of Pluf ## Installation of Pluf
* Checkout the trunk of [Pluf](http://www.pluf.org). * Checkout the trunk of [Pluf](http://www.pluf.org).
@ -12,7 +35,7 @@ the installation of InDefero by itself.
$ sudo pear install --alldeps Mail $ sudo pear install --alldeps Mail
$ sudo pear install --alldeps Mail_mime $ sudo pear install --alldeps Mail_mime
The Pluf installation folder is the folder containing the file `Pluf.php`. The Pluf installation folder is the folder containing the file `Pluf.php`.
## Installation of InDefero ## Installation of InDefero
@ -30,15 +53,18 @@ Here is the step-by-step installation procedure:
* Make a copy of `src/IDF/conf/idf.php-dist` as `src/IDF/conf/idf.php`. * Make a copy of `src/IDF/conf/idf.php-dist` as `src/IDF/conf/idf.php`.
* Update the idf.php file to match your system. * Update the idf.php file to match your system.
* Open a terminal/shell and go into the `src` folder in the InDefero installation folder. * Open a terminal/shell and go into the `src` folder in the InDefero installation folder.
* Run `php /path/to/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u` to test the installation of the tables.
* Run `php /path/to/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d` to really install the tables. $ cd /home/www/indefero/src
* Run `php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u` to test the installation of the tables.
* Run `php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d` to really install the tables.
* Create a bootstrap file to create the first project and admin user for example `www/bootstrap.php`. Do not forget to update the second line with your path to Pluf: * Create a bootstrap file to create the first project and admin user for example `www/bootstrap.php`. Do not forget to update the second line with your path to Pluf:
<?php <?php
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/../src'); set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/home/www/indefero/src');
set_include_path(get_include_path().PATH_SEPARATOR.'/path/to/pluf/src'); set_include_path(get_include_path().PATH_SEPARATOR.'/home/www/pluf/src');
require 'Pluf.php'; require 'Pluf.php';
Pluf::start(dirname(__FILE__).'/../src/IDF/conf/idf.php'); Pluf::start(dirname(__FILE__).'/home/www/indefero/src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views')); Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
$project = new IDF_Project(); $project = new IDF_Project();
@ -48,7 +74,7 @@ Here is the step-by-step installation procedure:
$project->create(); $project->create();
$user = new Pluf_User(); $user = new Pluf_User();
$user->first_name = 'John'; $user->first_name = 'John';
$user->last_name = 'Doe'; $user->last_name = 'Doe'; // Required!
$user->login = 'doe'; $user->login = 'doe';
$user->email = 'doe@example.com'; $user->email = 'doe@example.com';
$user->password = 'yourpassword'; // the password is salted/hashed $user->password = 'yourpassword'; // the password is salted/hashed
@ -61,6 +87,8 @@ Here is the step-by-step installation procedure:
* Run `php www/bootstrap.php`. * Run `php www/bootstrap.php`.
* Remove the `www/bootstrap.php` file. * Remove the `www/bootstrap.php` file.
* Open the `www/index.php` file and ensure that the path to Pluf and
Indefero are correctly set for your configuration.
Now you can login with this user into the interface. Now you can login with this user into the interface.
@ -78,3 +106,11 @@ the following `.htaccess` file to be put in the same folder of the
RewriteRule ^(.*) /index.php/$1 RewriteRule ^(.*) /index.php/$1
## For the Gentoo users
If you get the error:
T_CHARACTER Use of undefined constant T_CHARACTER - assumed 'T_CHARACTER'"
you need to compile PHP with the "tokenizer" flag.

View File

@ -23,126 +23,146 @@
$cfg = array(); $cfg = array();
// to start with, it can be practical. #
$cfg['debug'] = false; # You must set it to false once everything is running ok.
#
$cfg['debug'] = true;
// If you have a single git repository, just put the full path to it # If you have a single git repository, just put the full path to it
// without trailing slash. The path is the path to the git database, # without trailing slash. The path is the path to the git database,
// so you need to include the /.git folder. # so you need to include the /.git folder.
// For example: '/path/to/my/project/.git' # For example: '/path/to/my/project/.git'
// #
// If you have multiple repositories, you need to put %s where you # If you have multiple repositories, you need to put %s where you
// want the shortname of the project to be replaced. # want the shortname of the project to be replaced.
// For example: # For example:
// - You have many projects on your local computer and want to use # - You have many projects on your local computer and want to use
// InDefero to see them. Put: '/home/yourlogin/Projects/%s/.git' # InDefero to see them. Put: '/home/yourlogin/Projects/%s/.git'
// - You have many projects on a remote server with only "bare" git # - You have many projects on a remote server with only "bare" git
// repositories. Put: '/home/git/repositories/%s.git' # repositories. Put: '/home/git/repositories/%s.git'
// #
# ** Do not forget to give read access to these folders to your www
# ** user. For example, adding www to the git group.
$cfg['git_repositories'] = '/home/git/repositories/%s.git'; $cfg['git_repositories'] = '/home/git/repositories/%s.git';
// #
// Like for the git_repositories definition, the path can contains %s # Like for the git_repositories definition, the path can contains %s
// and it will be automatically replaced. You can ignore this # and it will be automatically replaced. You can ignore this
// configuration variable as it is only for information use in the # configuration variable as it is only for information use in the
// tree view. # tree view.
// #
$cfg['git_remote_url'] = 'git://projects.ceondo.com/%s.git'; $cfg['git_remote_url'] = 'git://projects.ceondo.com/%s.git';
// Same as for git, you can have multiple repositories, one for each # Same as for git, you can have multiple repositories, one for each
// project or a single one for all the projects. # project or a single one for all the projects.
// #
// In the case of subversion, the admin of a project can also select a # In the case of subversion, the admin of a project can also select a
// remote repository from the web interface. From the web interface # remote repository from the web interface. From the web interface
// you can define a local repository, local repositories are defined # you can define a local repository, local repositories are defined
// here. This if for security reasons. # here. This if for security reasons.
$cfg['svn_repositories'] = 'file:///home/svn/repositories/%s'; $cfg['svn_repositories'] = 'file:///home/svn/repositories/%s';
$cfg['svn_remote_url'] = 'http://projects.ceondo.com/svn/%s'; $cfg['svn_remote_url'] = 'http://projects.ceondo.com/svn/%s';
// Mercurial repositories path # Mercurial repositories path
//$cfg['mercurial_repositories'] = '/home/mercurial/repositories/%s'; #$cfg['mercurial_repositories'] = '/home/mercurial/repositories/%s';
//$cfg['mercurial_remote_url'] = 'http://projects.ceondo.com/hg/%s'; #$cfg['mercurial_remote_url'] = 'http://projects.ceondo.com/hg/%s';
// admins will get an email in case of errors in the system in non # admins will get an email in case of errors in the system in non
// debug mode. # debug mode.
$cfg['admins'] = array( $cfg['admins'] = array(
array('Admin', 'you@example.com'), array('Admin', 'you@example.com'),
); );
// Email configuration # Email configuration
$cfg['send_emails'] = true; $cfg['send_emails'] = true;
$cfg['mail_backend'] = 'smtp'; $cfg['mail_backend'] = 'smtp';
$cfg['mail_host'] = 'localhost'; $cfg['mail_host'] = 'localhost';
$cfg['mail_port'] = 25; $cfg['mail_port'] = 25;
// Paths/Url configuration # Paths/Url configuration.
# #
# if you access the index.php with: # Examples:
# http://www.mydomain.com/myfolder/index.php # You have:
# put the following: # http://www.mydomain.com/myfolder/index.php
# Put:
# $cfg['idf_base'] = '/myfolder/index.php';
# $cfg['url_base'] = 'http://www.mydomain.com';
# #
# $cfg['idf_base'] = '/myfolder/index.php'; # You have:
# $cfg['url_base'] = 'http://www.mydomain.com'; # http://www.mydomain.com/
# Put:
$cfg['idf_base'] = ''; // put '/whatever/index.php if you are not # $cfg['idf_base'] = '';
// using mod_rewrite and installing in a # $cfg['url_base'] = 'http://www.mydomain.com';
// subfolder. #
#
#
$cfg['idf_base'] = '';
$cfg['url_base'] = 'http://projects.ceondo.com'; $cfg['url_base'] = 'http://projects.ceondo.com';
# Url to access the media folder which is in the www folder
# of the archive
$cfg['url_media'] = 'http://projects.ceondo.com/media'; $cfg['url_media'] = 'http://projects.ceondo.com/media';
# Url to access a folder in which the files you upload through
# the downloads tab will be stored.
$cfg['url_upload'] = 'http://projects/ceondo.com/media/upload'; $cfg['url_upload'] = 'http://projects/ceondo.com/media/upload';
# Path to the upload folder
$cfg['upload_path'] = '/path/to/media/upload'; $cfg['upload_path'] = '/path/to/media/upload';
# #
# The following path *MUST NOT* be accessible through a web browser # The following path *MUST NOT* be accessible through a web browser
# as user will be able to upload .html, .php files and this can # as user will be able to upload .html, .php files and this can
# create *TERRIBLE* security issues. # create *TERRIBLE* security issues. In this folder, the attachments
# to the issues will be uploaded and we do not restrict the content type.
# #
$cfg['upload_issue_path'] = '/path/to/attachments'; $cfg['upload_issue_path'] = '/path/to/attachments';
// write here a long random string unique for this installation. This #
// is critical to put a long string. # write here a long random string unique for this installation. This
# is critical to put a long string, with at least 40 characters.
$cfg['secret_key'] = ''; $cfg['secret_key'] = '';
// the sender of all the emails. # the sender of all the emails.
$cfg['from_email'] = 'sender@example.com'; $cfg['from_email'] = 'sender@example.com';
// Email address for the bounced messages. # Email address for the bounced messages.
$cfg['bounce_email'] = 'no-reply@example.com'; $cfg['bounce_email'] = 'no-reply@example.com';
// Temporary folder where the script is writing the compiled templates, # Temporary folder where the script is writing the compiled templates,
// cached data and other temporary resources. # cached data and other temporary resources.
// It must be writeable by your webserver instance. # It must be writeable by your webserver instance.
// It is mandatory if you are using the template system. # It is mandatory if you are using the template system.
$cfg['tmp_folder'] = '/tmp'; $cfg['tmp_folder'] = '/tmp';
// Database configuration # Database configuration
// For testing we are using in memory SQLite database. # For testing we are using in memory SQLite database.
$cfg['db_login'] = 'www'; $cfg['db_login'] = 'www';
$cfg['db_password'] = ''; $cfg['db_password'] = '';
$cfg['db_server'] = ''; $cfg['db_server'] = '';
$cfg['db_version'] = ''; # Only needed for MySQL
$cfg['db_table_prefix'] = ''; $cfg['db_version'] = '5.1';
# If you want to have different installations with the same DB
$cfg['db_table_prefix'] = 'indefero_';
# ** DO NOT USE SQLITE IN PRODUCTION **
# This is not because of problems with the quality of the SQLite
# driver or with SQLite itself, this is due to the lack of migration
# support in Pluf for SQLite, this means we cannot modify the DB
# easily once it is loaded with data.
$cfg['db_engine'] = 'PostgreSQL'; # SQLite is also well tested or MySQL
$cfg['db_database'] = 'website'; # put absolute path to the db if you
# are using SQLite.
// ** DO NOT USE SQLITE IN PRODUCTION ** # -- From this point you should not need to update anything. --
// This is not because of problems with the quality of the SQLite
// driver or with SQLite itself, this is due to the lack of migration
// support in Pluf for SQLite, this means we cannot modify the DB
// easily once it is loaded with data.
$cfg['db_engine'] = 'PostgreSQL'; // SQLite is also well tested or MySQL
$cfg['db_database'] = 'website'; // put absolute path to the db if you
// are using SQLite.
// -- From this point you should not need to update anything. --
$cfg['pear_path'] = '/usr/share/php'; $cfg['pear_path'] = '/usr/share/php';
$cfg['login_success_url'] = $cfg['url_base'].$cfg['idf_base']; $cfg['login_success_url'] = $cfg['url_base'].$cfg['idf_base'];
$cfg['after_logout_page'] = $cfg['url_base'].$cfg['idf_base']; $cfg['after_logout_page'] = $cfg['url_base'].$cfg['idf_base'];
// Caching of the scm commands. # Caching of the scm commands.
$cfg['cache_engine'] = 'Pluf_Cache_File'; $cfg['cache_engine'] = 'Pluf_Cache_File';
$cfg['cache_timeout'] = 300; $cfg['cache_timeout'] = 300;
$cfg['cache_file_folder'] = $cfg['tmp_folder'].'/cache'; $cfg['cache_file_folder'] = $cfg['tmp_folder'].'/cache';
// The folder in which the templates of the application are located. # The folder in which the templates of the application are located.
$cfg['template_folders'] = array( $cfg['template_folders'] = array(
dirname(__FILE__).'/../templates', dirname(__FILE__).'/../templates',
); );
@ -166,7 +186,7 @@ $cfg['template_modifiers'] = array(
'size' => 'IDF_Views_Source_PrettySize', 'size' => 'IDF_Views_Source_PrettySize',
); );
// available languages # available languages
$cfg['languages'] = array('en', 'fr'); $cfg['languages'] = array('en', 'fr');
# SCM base configuration # SCM base configuration

View File

@ -22,7 +22,12 @@
# ***** END LICENSE BLOCK ***** */ # ***** END LICENSE BLOCK ***** */
// Set the include path to have Pluf and IDF in it. // Set the include path to have Pluf and IDF in it.
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/../src'); $indefero_path = dirname(__FILE__).'/../src';
//$pluf_path = '/path/to/pluf/src';
set_include_path(get_include_path()
.PATH_SEPARATOR.$indefero_path
// .PATH_SEPARATOR.$pluf_path
);
require 'Pluf.php'; require 'Pluf.php';
Pluf::start(dirname(__FILE__).'/../src/IDF/conf/idf.php'); Pluf::start(dirname(__FILE__).'/../src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views')); Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));