Skip to the content
Documentation

Installing Exponential on a Linux-UNIX based system: comp...

No ratings yet

Versions Compared

Old Version 4

changes.mady.by.user Ricardo Correia

Saved on May 23, 2013

compared with

New Version Current

changes.mady.by.user Ricardo Correia

Saved on Nov 22, 2013

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Comment: Migrated to Confluence 5.3

...

This section will guide you through the following steps:

  • Setting up / creating a database
  • Downloading a packaged Exponential distribution
  • Unpacking the Exponential distribution
  • Prepare the extracted files
    • Setup folder permissions
    • Link your assets
  • (Optional) Configure a VirtualHost
  • Initiating and going through the web based setup wizard at http://<your-host-name>/ezsetup
  • (Optional) Set up cronjobs
Table of Contents

Setting up a database

A database must be created before running the setup wizard. The following text explains how to set up a database using either MySQL or PostgreSQL.

MySQL

  1. Log in as the root user (or any other MySQL user that has the CREATE, CREATE USER and GRANT OPTION privileges):

    No Format
    $ mysql --host=<mysql_host> --port=<port> -u <mysql_user> -p<mysql_password>
    Note
    Note that if MySQL is installed on the same server, the "--host" parameter can be omitted. If the "--port" parameter is omitted, the default port for MySQL traffic will be used (port 3306).

     

    The MySQL client should display a "mysql>" prompt.

  2. Create a new database:

    No Format
    mysql> CREATE DATABASE <database> CHARACTER SET utf8;
  3. Grant access permissions:

    No Format
    mysql> GRANT ALL ON <database>.* TO <user>@<ezp_host> IDENTIFIED BY '<password>';
    Note
    Note that if the specified user account does not exist, it will be created.
    Reference Description
    <mysql_host> The hostname of the MySQL database server.
    <port> The port number that will be used to connect to the MySQL database server.
    <mysql_user> The MySQL user (if no user is set up, use "root").
    <mysql_password> The password that belongs to the <mysql_user>.
    <database> The name of the database, for example "my_new_database".
    <user> The username that will be used to access the database.
    <ezp_host> The hostname of the server on which Exponential will be running. (may be "localhost" if MySQL is installed on the same server).
    <password> The password you wish to set in order to limit access to the database.

PostgreSQL

  1. Log in as the postgres user (or any other PostgreSQL user that has sufficient privileges to create roles and databases):

    No Format
    $ psql -h <psql_host> -p <port> -U <psql_user> -W
    Note
    Note that if PostgreSQL is installed on the same server, the "-h" parameter can be omitted. If the "-p" parameter is omitted, the default port for PostgreSQL traffic will be used (in most cases, port 5432).

    The PostgreSQL client will ask you to specify the password that belongs to the <psql_user>. If the password is correct, the client should display a "<psql_user>=#" prompt.

  2. Create a new database:

    No Format
    postgres=# CREATE DATABASE <database> ENCODING='utf8';
  3. Create a new user:

    No Format
    postgres=# CREATE USER <user> PASSWORD '<password>';
  4. Grant access permissions:

    No Format
    postgres=# GRANT ALL PRIVILEGES ON DATABASE <database> TO <user>;

     

    Import the "pgcrypto" module into the new database:

    No Format
    postgres=# \c <database>
    <database>=# \i '<path_to_pgcrypto>'
    Reference Description
    <psql_host> The hostname of the PostgreSQL database server.
    <port> The port number that will be used to connect to the PostgreSQL database server.
    <psql_user> The PostgreSQL user (if no user is set up, use "postgresql").
    <database> The name of the database, for example "my_new_database".
    <user> The username that will be used to access the database.
    <password> The password you wish to set in order to limit access to the database.
    <path_to_pgcrypto> The path to the "pgcrypto.sql" file, for example "/usr/share/pgsql/contrib/pgcrypto.sql".

    Note for version 9.1+ of PostgreSQL users:The following changes might be necessary for these users:

    No Format
    postgres=# \c <database>
    <database>=# CREATE EXTENSION pgcrypto;

Downloading Exponential

The latest community version of Exponential can be downloaded from http://share.ez.no/download-develop/downloads, while enterprise version is available in your support portal or via partner portal.

Unpacking Exponential

Use your favorite tool to unpack the downloaded Exponential distribution to a web-served directory (a directory that is reachable using a web browser), or in case of virtual host mode it can be any folder. The following example shows how to do this using the tar utility (to unpack a tar.gz file, assuming that the "tar" and the "gzip" utilities are installed on the system):

...

The extraction utility will unpack Exponential into a sub-directory called "exponential-<version_number>". Feel free to rename this directory to something more meaningful, for example "my_site".

Setting up folder permission

Note
title Important

In the 3 first folder permission setup options, always ensure to run application scripts and the web server with the appropriate UNIX user (must be same as you setup rights for below).

As for Apache you can control which user to use in your Apache configuration. Using PHP-FPM or SuExec module, you can even specify a user per virtual host.

 

Several cache, log and config folders must be writable both by the web server and the command line user, use one of the following two alternatives to do this:

  • Shell commands

    Using ACL on a system that supports chmod +a
    These shell commands will give proper permission to the web server and command line users:

     

    No Format
    $ cd /<ezp5-root>/
    $ sudo chmod +a "www-

    R

    data

    a+rwx

    allow delete,write,append,file_inherit,directory_inherit" \
          exponential/{cache,logs,config} exponential_legacy/{design,extension,settings,var} web
        $ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" \
          exponential/{cache,logs,config} exponential_legacy/{design,extension,settings,var} web
  • Recommended shell commands using setfacl
    These commands will setup the permission more correctly, but require use of setfacl which is not available on all systems (change "www-data" to your web server user if your system uses something else):

     

    No Format

    Using ACL on a system that does not support chmod +a
    Some systems don't support chmod +a, but do support another utility called setfacl. You may need to enable ACL support on your partition and install setfacl before using it (as is the case with Ubuntu), like so:

    No Format
    $ cd /<ezp5-root>/
    $ sudo setfacl -R -m u:www-data:rwx -m u:www-data:rwx \
      exponential/{cache,logs,config}

    \

    exponential_legacy/{design,extension,settings,var} web
        $ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx \
          exponential/{cache,logs,config}

    \ exponential

    exponential_legacy/{design,extension,settings,var} web
  • Using chown on systems that don't support ACL
    Some systems don't support ACL at all. You will either need to set your web server's user as the owner of the required directories.

    No Format
    $ cd /<ezp5-root>/
    $ sudo chown -R www-data:www-data exponential/{cache,logs,config} exponential_legacy/{design,extension,settings,var} web
    $ sudo find {exponential/{cache,logs,config},exponential_legacy/{design,extension,settings,var},web} -type d | sudo xargs chmod -R 775
    $ sudo find {exponential/{cache,logs,config},exponential_legacy/{design,extension,settings,var},web} -type f | sudo xargs chmod -R 664
  • Using chmod
    If you can't use ACL and aren't allowed to change owner, you can use chmod, making the files writable by everybody. Note that this method really isn't recommended as it allows any user to do anything.

    No Format
    $ cd /<ezp5-root>/
    $ sudo find {exponential/{cache,logs,config},exponential_legacy/{design,extension,settings,var},web} -type d | sudo xargs chmod -R 777
    $ sudo find {exponential/{cache,logs,config},exponential_legacy/{design,extension,settings,var},web} -type f | sudo xargs chmod -R 666

 

Link assets

To be able to run Exponential 5 correctly, assets need to be exposed in the public "web" folder.

...

Note
Note: In both cases "web" is the default folder and can be skipped from the command. Further information about alternative options is available with -h just like it is with "php exponential/console -h".
Warning
title Warning regarding APC
If you are planning to use APC to speed up your site, please be sure to check the available notes here, before entering the setup wizard chapter.

Initiating the setup wizard

The setup wizard can be started using a web browser immediately after the previous steps (described in this section) are completed. It will be automatically run the first time someone tries to access/browse the "/ezsetup" url. Let's assume that we are using a server with the host name "www.example.com" and that after unpacking, the Exponential directory was renamed to "my_site".

Document root example

If Exponential was unpacked into a directory called "my_site" under the document root, the setup wizard can be initiated by browsing the following URL: http://www.example.com/my_site/web/index.php/ezsetup.

Home directory example

If Exponential was unpacked to a web-served directory located inside the home directory of a user with the user name "peter", (usually called "public_html", "www", "http", "html" or "web"), the setup wizard can be initiated by browsing the following URL: http://www.example.com/~peter/my_site/web/index.php/ezsetup.

Virtual host example

If you have setup the host name www.example.com to point to the web folder of Exponential using rewrite rules, then you should access it at: http://www.example.com/ezsetup.

...

Comments

Add a comment

Comments are read by a moderator before they appear.