Installation on FreeBSD 7.2
Introduction
Here are some "random" notes I made while installing indefero on FreeBSD 7.2. Please note, that I'm not the typical user of it, since I want to handle all the git stuff and permissions through git and not through indefero. My goal is to use it just as a browser of already exiting git repositories and for lightweight code review.
Having you warned, let's go ahead.
Install indefero
cd /usr/ports/devel/pear-PEAR_PackageFileManager make install clean cd /usr/ports/archivers/unzip make install clean pear upgrade-all pear install --alldeps Mail pear install --alldeps Mail_mime mkdir -p /home/www get the packages and put them in those folders: unzip pluf-master.zip unzip indefero-0.8.6.zip mv pluf-master pluf mv indefero-0.8.6 indefero cd /usr/local/www/apache22/data mkdir indefero cd indefero ln -s /home/www/indefero/www/index.php ln -s /home/www/indefero/www/media cd /usr/ports/converters/php5-mbstring make install clean cd /home/www/indefero/src dry run: php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u PHP include path: .:/usr/local/share/pear:/usr/home/www/pluf/src Install all the apps Pluf_Migrations_Install_setup IDF_Migrations_Install_setup
we need an mysql server
/usr/local/etc/rc.d/mysql-server start
since I did not find the mysql script, I installed the server:
cd /usr/ports/databases/mysql50-server make install clean --------- ... Added group "mysql". Added user "mysql". ************************************************************************ Remember to run mysql_upgrade (with the optional --datadir=flag) the first time you start the MySQL server after an upgrade from an earlier version. ************************************************************************ install-info --quiet /usr/local/info/mysql.info /usr/local/info/dir ===> Installing rc.d startup script(s) ===> Compressing manual pages for mysql-server-5.0.45_1 ===> Registering installation for mysql-server-5.0.45_1 ===> SECURITY REPORT: This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system. /usr/local/libexec/mysqld This port has installed the following startup scripts which may cause these network services to be started at boot time. /usr/local/etc/rc.d/mysql-server If there are vulnerabilities in these programs there may be a security risk to the system. FreeBSD makes no guarantee about the security of ports included in the Ports Collection. Please type 'make deinstall' to deinstall the port if this is a concern. For more information, and contact details about the security status of this software, see the following webpage: http://www.mysql.com/ ----------- mysql_install_db --user=mysql chown -R mysql /var/db/mysql/ chgrp -R mysql /var/db/mysql/ /usr/local/bin/mysqld_safe -user=mysql &
Note: If you encounter Command not found error, use command rehash to update OS path environment variables.
The port installation will put a script file mysql-server.sh in /usr/local/etc/rc.d which will has capability to start MySQL server. To enable MySQL server to start automatically after every FreeBSD server reboot, enter the following command in CLI:
vi /etc/rc.conf mysql_enable="YES" reboot cd /usr/ports/databases/php5-mysql make install clean cd /usr/ports/lang/php5-extensions make install clean
create database:
mysql -h localhost -u root
create a new database
mysql -h localhost -u root create database website; SHOW DATABASES; quit cd /home/www/indefero/src dry run: php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u PHP include path: .:/usr/local/share/pear:/usr/home/www/pluf/src Install all the apps Pluf_Migrations_Install_setup IDF_Migrations_Install_setup
try installing if the stuff before went well
php /home/www/pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d
create a bootstrap.php file in /usr/local/www/apache22/data/indefero
mine looks like this:
first_name = 'Robert';
$user->last_name = 'Berger'; // Required!
$user->login = 'rber'; // must be lowercase!
$user->email = 'indefero@reliableembeddedsystems.com';
$user->password = 'Password_for_indefero'; // the password is salted/hashed
// in the database, so do not worry :)
$user->administrator = true;
$user->active = true;
$user->create();
print "Bootstrap ok\n";
?>
Execute this through webbrowser:
http://192.168.48.140/indefero/bootstrap.php
You should get "Bootstrap ok" as a reply.
Cook init.php a bit to get pluf in the inclue path:
<?php
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
// Set the include path to have Pluf and IDF in it.
$indefero_path = dirname(__FILE__).'/../src';
$pluf_path = '/home/www/pluf/src';
set_include_path(get_include_path()
.PATH_SEPARATOR.$indefero_path
.PATH_SEPARATOR.$pluf_path
);
require 'Pluf.php';
Pluf::start(dirname(__FILE__).'/../src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
Pluf_Dispatcher::dispatch(Pluf_HTTP_URL::getAction());
Now go with your webbrowser to: http://192.168.48.140/indefero/
You should be greeted with:
Sign in or create your account | Project List | Help Projects
No projects managed with InDefero were found.
Managed Projects: 0 Powered by InDefero, a Céondo Ltd initiative.
Because my url is http://some_ip/indefero/ I had to configure the links properly.
modify in /home/www/indefero/src/IDF/conf/idf.php
$cfg['idf_base'] = '/index.php';
to look like this:
$cfg['idf_base'] = '/indefero/index.php';
right after logging in I get: Security error: "secret_key" is not set in the configuration file.
So let's set it:
$cfg['secret_key'] = 'TraRaBumBumTraRaDerKasperlDerIstDaZippediZappediZuppMitDemZirkusHabakuk';
Since the url seems to sometimes be composed from config settings let's configure this as well
$cfg['url_base'] = 'http://192.168.48.140';
config file, which seems to work (no git integration yet, but also css is working)
cat idf.pdp
$cfg = array();
$cfg['debug'] = true;
$cfg['debug_scm'] = false;
$cfg['git_repositories'] = '/home/git/repositories/%s.git';
$cfg['git_remote_url'] = 'git://192.168.48.140/%s.git';
$cfg['git_write_remote_url'] = 'git@192.168.48.140:%s.git';
$cfg['svn_repositories'] = 'file:///home/svn/repositories/%s';
$cfg['svn_remote_url'] = 'http://localhost/svn/%s';
$cfg['admins'] = array(
array('Admin', 'you@example.com'),
);
$cfg['send_emails'] = false;
$cfg['mail_backend'] = 'smtp';
$cfg['mail_host'] = 'localhost';
$cfg['mail_port'] = 25;
$cfg['idf_base'] = '/indefero/index.php';
$cfg['url_base'] = 'http://192.168.48.140';
$cfg['url_media'] = 'http://192.168.48.140/indefero/media';
$cfg['url_upload'] = 'http://192.168.48.140/indefero/media/upload';
$cfg['upload_path'] = '/home/www/indefero/www/media/upload';
$cfg['upload_issue_path'] = '/home/www/indefero/attachments';
$cfg['secret_key'] = 'TraRaBumBumTraRaDerKasperlDerIstDaZippediZappediZuppMitDemZirkusHabakuk';
$cfg['from_email'] = 'sender@example.com';
$cfg['bounce_email'] = 'no-reply@example.com';
$cfg['tmp_folder'] = '/tmp';
$cfg['db_login'] = 'root';
$cfg['db_password'] = '';
$cfg['db_server'] = '';
$cfg['db_version'] = '5.0'; # Only needed for MySQL
$cfg['db_table_prefix'] = 'indefero_';
$cfg['db_engine'] = 'MySQL'; # SQLite is also well tested or MySQL
$cfg['db_database'] = 'website'; # put absolute path to the db if you
# are using SQLite.
$cfg['pear_path'] = '/usr/share/php';
$cfg['login_success_url'] = $cfg['url_base'].$cfg['idf_base'];
$cfg['after_logout_page'] = $cfg['url_base'].$cfg['idf_base'];
$cfg['cache_engine'] = 'Pluf_Cache_File';
$cfg['cache_timeout'] = 300;
$cfg['cache_file_folder'] = $cfg['tmp_folder'].'/cache';
$cfg['template_folders'] = array(
dirname(__FILE__).'/../templates',
);
$cfg['installed_apps'] = array('Pluf', 'IDF');
$cfg['pluf_use_rowpermission'] = true;
$cfg['middleware_classes'] = array(
'Pluf_Middleware_Csrf',
'Pluf_Middleware_Session',
'IDF_Middleware',
'Pluf_Middleware_Translation',
);
$cfg['template_context_processors'] = array('IDF_Middleware_ContextPreProcessor');
$cfg['idf_views'] = dirname(__FILE__).'/urls.php';
$cfg['languages'] = array('en', 'fr');
$cfg['allowed_scm'] = array('git' => 'IDF_Scm_Git',
'svn' => 'IDF_Scm_Svn',
'mercurial' => 'IDF_Scm_Mercurial',
);
return $cfg;
accountmanagementengine