Coder Social home page Coder Social logo

platform-application's Introduction

Oro Platform Empty Application

An example of an empty application using the Oro Platform.

This repository contains application configuration settings and depends on Oro Platform. It can be used as a starting point to build applications using the oro Platform.

Requirements

Oro Platform is a Symfony 2 based application with the following requirements:

  • PHP 5.5.9 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

Using Composer

As both Symfony 2 and Oro Platform use Composer to manage their dependencies, this is the recommended way to install the Oro Platform.

If you don't have Composer yet, download it and follow the instructions on http://getcomposer.org/ or just run the following command:

    curl -s https://getcomposer.org/installer | php
    git clone https://github.com/orocrm/platform-application.git
  • Make sure that you have NodeJS installed

  • Install OroCRM dependencies with composer. If installation process seems too slow you can use "--prefer-dist" option. Go to crm-application folder and run composer installation:

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

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

php app/console oro:install --env prod
  • Enable WebSockets messaging
php app/console clank:server --env prod
  • Configure crontab or scheduled tasks execution to run the 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 or if you running console command from other 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 because of performance issues

Recommended configuration for this case:

innodb_file_per_table = 0

And ensure that timeout has default value

wait_timeout = 28800

See Optimizing InnoDB Disk I/O for more

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 database and run sql query:

CREATE EXTENSION "uuid-ossp";

Web Server Configuration

The Oro Platform application is based on the Symfony standard application so web server configuration recommendations are the same.

platform-application's People

Contributors

alex-n-2k7 avatar alexandr-parkhomenko avatar alexandrdmitriev avatar anyt avatar bitone avatar dimasoroka avatar dincho avatar dkhrysev avatar dpoloka avatar dxops avatar eu-ge-ne avatar fitn avatar grygir avatar ignat-s avatar iklymenko avatar ishakuta avatar kotfalya avatar nidup avatar orocrmdeployer avatar rgrebenchuk avatar ruslan-polutsygan avatar santyagoseaman avatar vatson avatar vitaliyberdylo avatar vladimire avatar vsoroka avatar x86demon avatar yshyshkin avatar yurio avatar zo0o0ot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.