Create a new ullright customer installation
Introduction
One of the great strengths of ullright is it's usage of the symfony architecture to divide a customer installation into a generic "ullright" and a custom part.
A customer installation basically looks like this: The symfony project itself is the "custom" part, wheras the "ullright" components are installed as plugins.
This allows the customer to easily add custom functionality, enhance functionality or to develop custom plugins. All this without compromising the update of the generic "ullright" components.
Installation
We'll do an example customer installation for a "ullright" demo instance on the customer's developer machine. All paths are examples for Ubuntu Linux.
Requirements
Subversion repository
This tutorial uses a subversion repository to manage the files of the ullright installation.
In our example the repository is located at "http://bigfish.ull.at/svn/ullright_demo"
More about subversion: http://www.ullright.org/ullWiki/show/docid/28
Hosts file entry
Let's create a entry in the hosts file, so we can use "ullright_demo" to address our installation.
- sudo vi /etc/hosts
- Add:
-
127.0.0.1 ullright_demo
-
- Add:
Apache virtual host
- sudo vi /etc/apache2/sites-available/ullright_demo
-
<VirtualHost *> ServerName ullright_demo DocumentRoot /var/www/ullright_demo/web <Directory /var/www/ullright_demo/web> AllowOverride All Allow from All Options -Indexes </Directory> <Directory /var/www/ullright_demo/web/uploads> # Disable rewrite in upload dir (fix to get FCKeditor uploads working) RewriteEngine off # Disable script execution AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGI </Directory> </VirtualHost>
-
- sudo a2ensite ullright_demo
- sudo /etc/init.d/apache2 reload
Create MySQL database
- mysql -u root -p
- CREATE DATABASE ullright_demo;
- GRANT ALL ON ullright_demo.* TO ullright_demo@localhost IDENTIFIED BY 'secretPassword';
- exit
Other Requirements
- The same requirements as for symfony 1.3: http://www.symfony-project.org/installation
Actual ullright installation
Prerequisites
- cd /var/www
Get clean ullright installation
- svn export --ignore-externals http://bigfish.ull.at/svn/ullright/trunk ullright_demo
- cd ullright_demo
- rm plugins/* -r
- rm lib/vendor/* -r
- Configure MySQL database
- vi config/databases.yml
- Modify connection name 'ullright_demo'
- Use DSN: mysql://ullright_demo:secretPassword@localhost/ullright_demo
- vi config/databases.yml
Setup custom subversion repository
- Create trunk directory in repository
- svn mkdir -m "layout creation" http://bigfish.ull.at/svn/ullright_demo/trunk
- Import files into repository
- svn import -m "initial import" . http://bigfish.ull.at/svn/ullright_demo/trunk
- Remove everything
- rm * -rf
- rm .* -rf
- Checkout working copy
- svn checkout http://bigfish.ull.at/svn/ullright_demo/trunk/ .
- Set subversion properties to ignore some files
- svn propedit svn:ignore .
-
.project .cache .settings .buildpath
-
- svn propedit svn:ignore log
-
*
-
- svn propedit svn:ignore cache
-
*
-
- svn propedit svn:ignore .
- Install the generic ullright components through svn:externals
- svn propedit svn:externals plugins
-
sfDoctrineActAsTaggablePlugin http://svn.symfony-project.com/plugins/sfDoctrineActAsTaggablePlugin/trunk sfFormExtraPlugin http://svn.symfony-project.com/plugins/sfFormExtraPlugin/branches/1.3 sfJqueryReloadedPlugin http://svn.symfony-project.com/plugins/sfJqueryReloadedPlugin/1.1/trunk sfDoctrineTestPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/sfDoctrineTestPlugin sfImageTransformPlugin http://svn.symfony-project.com/plugins/sfImageTransformPlugin/tags/sfImageTransformPlugin-1.1.0 ullCorePlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullCorePlugin ullCoreThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullCoreThemeNGPlugin ullFlowPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullFlowPlugin ullFlowThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullFlowThemeNGPlugin ullTimePlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullTimePlugin ullTimeThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullTimeThemeNGPlugin ullVentoryPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullVentoryPlugin ullVentoryThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullVentoryThemeNGPlugin ullWikiPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullWikiPlugin ullWikiThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullWikiThemeNGPlugin ullPhonePlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullPhonePlugin ullPhoneThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullPhoneThemeNGPlugin ullCmsPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullCmsPlugin ullCmsThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullCmsThemeNGPlugin ullBookingPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullBookingPlugin ullBookingThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullBookingThemeNGPlugin ullMailPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullMailPlugin ullMailThemeNGPlugin http://bigfish.ull.at/svn/ullright/trunk/plugins/ullMailThemeNGPlugin
- (As of r2260 / 2011-03-17 - Check the update log for changes)
-
- svn propedit svn:externals lib/vendor
- svn propedit svn:externals plugins
- Save svn properties
- svn commit -m "set svn properties"
- Update and get generic ullright components
- svn update
Test your setup
- php symfony -V
- Should output something like
- symfony version 1.3.6 (/var/www/ullright_demo/lib/vendor/symfony/lib)
- Should output something like
Set permissions for cache, log, ... directories
- php symfony project:permissions
(Re-)Generate crypto key
php symfony ullright:generate-crypto-key
Load test data and clear the cache
- php symfony doctrine:build --all --and-load --no-confirmation
- php symfony cache:clear
Launch!
- Launch http://ullright_demo in your webbrowser
Things to customize
404 Error Message
Copy plugins/ullCorePlugin/modules/default/templates/error404Success.php to apps/frontend/modules/default/templates/ and customize it to your needs