Skip to content

HeliumRaccoon/crm-application

 
 

Repository files navigation

OroCRM Application

Welcome to OroCRM the Open Source Customer Relationship Management (CRM) application.

Requirements

OroCRM is a Symfony 2 based application with the following requirements:

  • PHP 5.6 or above with command line interface
  • PHP Extensions:
    • GD
    • Mcrypt
    • JSON
    • ctype
    • Tokenizer
    • SimpleXML
    • PCRE
    • ICU
  • MySQL 5.1 or above
  • PostgreSQL 9.1 or above

Installation instructions

OroCRM uses Composer to manage package dependencies, this is the a recommended way to install OroCRM.

  • If you do not have the Composer yet, download it and follow the instructions on http://getcomposer.org/ or simply run the following command:
curl -s https://getcomposer.org/installer | php

OroCRM uses fxpio/composer-asset-plugin to manage dependency on third-party asset libraries. The plugin has to be installed globally (per user):

    composer global require "fxp/composer-asset-plugin:~1.2"
git clone https://github.com/orocrm/crm-application.git
  • Go to crm-application folder and look at list of releases.
git branch -a
  • Select the latest release (release_branch for example can be 1.10)
git checkout release_branch
  • Make sure that you have NodeJS installed

  • Install OroCRM dependencies with the Composer. If the installation process is too slow you can use the "--prefer-dist" option. Run Composer installation:

php composer.phar install --prefer-dist --no-dev
  • Create the database with the name specified in the previous step (default name is "oro_crm").

  • Install the application and the admin user with the Installation Wizard by opening install.php in the browser or from CLI:

php app/console oro:install --env prod

Note: If the installation process times out, add the --timeout=0 argument to the command.

  • Enable WebSockets messaging
php app/console clank:server --env prod
  • Configure crontab or scheduled tasks execution to run command below every minute:
php app/console oro:cron --env prod

Note: app/console is a path from project root folder. Please make sure you are using full path for crontab configuration if you are running console command from a different location.

Installation notes

Installed PHP Accelerators must be compatible with Symfony and Doctrine (support DOCBLOCKs).

Note that the port used in Websocket must be open in firewall for outgoing/incoming connections.

Using MySQL 5.6 on HDD is potentially risky as it can result in performance issues.

Recommended configuration for this case:

innodb_file_per_table = 0

Ensure that timeout has the default value

wait_timeout = 28800

See Optimizing InnoDB Disk I/O for more information.

The default MySQL character set utf8 uses a maximum of three bytes per character and contains only BMP characters. The utf8mb4 character set uses a maximum of four bytes per character and supports supplemental characters (e.g. emojis). It is recommended to use utf8mb4 character set in your app/config.yml:

...
doctrine:
    dbal:
        connections:
            default:
                driver:       "%database_driver%"
                host:         "%database_host%"
                port:         "%database_port%"
                dbname:       "%database_name%"
                user:         "%database_user%"
                password:     "%database_password%"
                charset:      utf8mb4
                default_table_options:
                    charset: utf8mb4
                    collate: utf8mb4_unicode_ci
                    row_format: dynamic
...

Using utf8mb4 might have side effects. MySQL indexes have a default limit of 767 bytes, so any indexed fields with varchar(255) will fail when inserted, because utf8mb4 can have 4 bytes per character (255 * 4 = 1020 bytes), thus the longest data can be 191 (191 * 4 = 764 < 767). To be able to use any 4 byte charset all indexed varchars should be at most varchar(191). To overcome the index size issue, the server can be configured to have large index size by enabling sysvar_innodb_large_prefix. However, innodb_large_prefix requires some additional settings to work:

  • innodb_default_row_format=DYNAMIC (you may also enable it per connection as in the config above)
  • innodb_file_format=Barracuda
  • innodb_file_per_table=1 (see above performance issues with this setting)

More details about this issue can be read here

PostgreSQL installation notes

You need to load uuid-ossp extension for proper doctrine's guid type handling. Log into the database and run sql query:

CREATE EXTENSION "uuid-ossp";

Loading Demo Data using command line

To load sample data you need to run console command

php app/console oro:migration:data:load --fixtures-type=demo --env=prod

Web Server Configuration

OroCRM application is based on the Symfony standard application, so the web server configuration recommendations are the same.

About

OroCRM Application

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 97.2%
  • HTML 2.5%
  • ApacheConf 0.3%