Message-ID: <739673212.4340.1485866223639.JavaMail.confluence@ip-10-127-227-164> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_4339_2045389610.1485866223639" ------=_Part_4339_2045389610.1485866223639 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Installing eZ Publish on a Linux-UNIX based system

Installing eZ Publish on a Linux-UNIX based system

The requirements for doing a normal installation must be met, re= ad the "Requirements for doing a normal installation" section first!

This section will guide you through the following steps:

=20 =20

S= etting up a database

A database must be created before running the setup wizard. The followin= g text explains how to set up a database using either MySQL or PostgreSQL.<= /p>

MySQL

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

    =20
    $ mysql --host=3D<mysql_host> --port=3D<port> -u <mysql=
    _user> -p<mysql_password>
    =20

    Note that if MySQL is installed on the same server, the "--host" parameter can be omitted. If the "--port" parameter is o= mitted, the default port for MySQL traffic will be used (port 3306).

     

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

  2. Create a new database:

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

    =20
    mysql> GRANT ALL ON <database>.* TO <user>@<ezp_host=
    > IDENTIFIED BY '<password>';
    =20

    Note that if the specified user account does not exist, it will be creat= ed.



    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 dat= abase.
    <ezp_host> The hostname of the server on which eZ Publish w= ill be running. (may be "localhost" if MySQL is installed on t= he same server).
    <password> The password you wish to set in order to limit a= ccess to the database.

PostgreSQ= L

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

    =20
    $ psql -h <psql_host> -p <port> -U <psql_user> -W=20
    

    Note that if PostgreSQL is installed on the same server, the "-h" parameter can be omitted. If the "-p" parameter is omit= ted, the default port for PostgreSQL traffic will be used (in most cases, p= ort 5432).

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

  2. Create a new database:

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

    =20
    postgres=3D# CREATE USER <user> PASSWORD '<password>';=20
    
  4. Grant access permissions:

    =20
    postgres=3D# GRANT ALL PRIVILEGES ON DATABASE <database> TO <=
    user>;
    =20

     

    Import the "pgcrypto" module into = the new database:

    =20
    postgres=3D# \c <database>
    <database>=3D# \i '<path_to_pgcrypto>'
    =20
    Reference Description
    <psql_host> The hostname of the PostgreSQL database server.<= /td>
    <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 dat= abase.
    <password> The password you wish to set in order to limit a= ccess 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 followin= g changes might be necessary for these users:
    =20
    postgres=3D# \c <database>
    <database>=3D# CREATE EXTENSION pgcrypto;
    =20

Downloading eZ Publish

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

U= npacking eZ Publish

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

=20
$ tar zxvf ezpublish-<version_number>-gpl.tar.gz -C <web_serv=
ed_directory>
=20
Reference Description
<version_number> The version number of eZ Publish that was downlo= aded.
<web_served_directory> Full path to a directory that is served by the w= eb server. This can be the path to the document root of the web server, or = a personal web-directory (usually called "public_html" or "www", and located inside a user's home directory).

 

The extraction utility will unpack eZ Publish into a sub-directory calle= d "ezpublish-<version_number>". Feel free to rename this= directory to something more meaningful, for example "my_site"= .

Setting up folder permission

Important

In the 3 first folder permission setup options, always ensure to run app= lication 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 configura= tion. Using PHP-FPM or SuExec module, you can even specify a user per virtual ho= st.

 

Several cache, log and config folders must be writable both by the web s= erver and the command line user, use one of the following alternat= ives to do this:

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

    =20
        $ cd /<ezp5-root>/
        $ sudo chmod +a "www-data allow delete,write,append,file_inherit,direct=
    ory_inherit" \
          ezpublish/{cache,logs,config} ezpublish_legacy/{design,extension,sett=
    ings,var} web
        $ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,direct=
    ory_inherit" \
          ezpublish/{cache,logs,config} ezpublish_legacy/{design,extension,sett=
    ings,var} web
    =20



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

    =20
        $ cd /<ezp5-root>/
        $ sudo setfacl -R -m u:www-data:rwx -m u:www-data:rwx \
          ezpublish/{cache,logs,config} ezpublish_legacy/{design,extension,sett=
    ings,var} web
        $ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx \
          ezpublish/{cache,logs,config} ezpublish_legacy/{design,extension,sett=
    ings,var} web
    =20



  • Using chown on systems that don't support ACL
    So= me systems don't support ACL at all. You will either need to set your web s= erver's user as the owner of the required directories.

    =20
        $ cd /<ezp5-root>/
        $ sudo chown -R www-data:www-data ezpublish/{cache,logs,config} ezpubli=
    sh_legacy/{design,extension,settings,var} web
        $ sudo find {ezpublish/{cache,logs,config},ezpublish_legacy/{design,ext=
    ension,settings,var},web} -type d | sudo xargs chmod -R 775
        $ sudo find {ezpublish/{cache,logs,config},ezpublish_legacy/{design,ext=
    ension,settings,var},web} -type f | sudo xargs chmod -R 664
    =20



  • Using chmod
    If you can't use ACL and aren't allo= wed to change owner, you can use chmod, making the files writable by everyb= ody. Note that this method really isn't recommended as it allows any user t= o do anything.

    =20
        $ cd /<ezp5-root>/
        $ sudo find {ezpublish/{cache,logs,config},ezpublish_legacy/{design,ext=
    ension,settings,var},web} -type d | sudo xargs chmod -R 777
        $ sudo find {ezpublish/{cache,logs,config},ezpublish_legacy/{design,ext=
    ension,settings,var},web} -type f | sudo xargs chmod -R 666
    =20

 

Link asse= ts

To be able to run eZ Publish 5 correctly, assets need to be exposed in t= he public "web" folder.

The following commands will first symlink eZ Publish 5 assets in "Bundle= s" and the second will symlink assets (design files like images, scripts an= d css, and files in var folder)  from eZ Publish Legacy

=20
cd /<ezp5-root>
php ezpublish/console assets:install --symlink web
php ezpublish/console ezpublish:legacy:assets_install --symlink web

# For 5.1 / 2013.4 and higher, also:
php ezpublish/console assetic:dump --env=3Dprod web
=20

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 ezpublish/console -h".

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 th= e previous steps (described in this section) are completed. It will be auto= matically run the first time someone tries to access/browse the "/ezs= etup" url. Let's assume that we are using a server with the host nam= e "www.example.com" and that after unpacking, the eZ Publish d= irectory was renamed to "my_site".

= Document root example

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

Home directory example

If eZ Publish 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 initia= ted by browsing the following URL: http://www.= example.com/~peter/my_site/web/index.php/ezsetup.

V= irtual host example

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

Refer to the "The setup wiza= rd" section for a detailed description of the web based setup wizard.

------=_Part_4339_2045389610.1485866223639--