How To: Installing Alfresco 6 on Ubuntu Server

This posting will descibe the installation process of Alfresco 6 on an Ubuntu Server.

The following prequeries are required:

  • Working Ubuntu server (18.04.3 LTS) with access to the internet
  • SSH or Terminal access to Ubuntu

On another version of Ubuntu the installation process will be similiar.

We will use the following locations:

  • Installation path Alfresco 6: /usr/local/alfresco
  • Data path where alfresco should store the repository content: /mnt/data/alfresco-data/

1. Install the requirements

Alfresco requires the following software on the destination system:

  • Java JDK (we use OpenJDK)
  • PostgreSQL Server & Client (for managing the database)
  • ImageMagick
  • LibreOffice
  • FFmpeg

Installing Java JDK

sudo apt-get install openjdk-11-jre
sudo apt-get install openjdk-11-jdk

Installing PostgreSQL

sudo apt-get install postgresql 

Installing the client:

sudo apt-get install postgresql-client

Set admin password for Postgresql:

sudo -u postgres psql 

Set the password:

\password postgres

Display the data-directory:

SHOW data_directory;

Quit the client:

\

Create alfresco db user:

sudo -u postgres createuser -P -d alfresco

Enter the password twice.

Create alfresco database:

sudo -u postgres createdb -O alfresco alfresco

Installing ImageMagick

sudo apt-get install imagemagick imagemagick-doc

Installing LibreOffice

sudo apt-get install libreoffice libreoffice-l10n-de libreoffice-help-de

Installing FFmpeg

sudo apt-get install ffmpeg

2. Download and extract Tomcat

  • Create an folder where Alfresco and tomcat should be installed, e.g.: /usr/local/alfresco/ (This is also the ‘root’ or ‘base’ folder of the alfresco instance)
  • Create an folder where the content of alfresco should be stored, e.g.: /data/alfresco/
  • Download an extract tomcat: https://docs.alfresco.com/community/tasks/alf-tomcat-install.html 

3. Download and extract the alfresco system

4. Configure Alfresco

  • Follow this guide to install Alfresco (Step 7 of installing tomcat application server can be skipped beacuse we do not use mutual TLS): https://docs.alfresco.com/community/tasks/alf-tomcat-install.html
  • Install Alfrsco search services without mutual TLS: https://docs.alfresco.com/search-community/tasks/solr-install-withoutSSL.html
  • Define the location for storing solr content in alfresco-search-services/solrhome/conf/shared.properties:
    #solr content store location
    solr.content.dir=/mnt/data/alfresco-data/alf_data/solr/contentstore
  • Start solr:
    ./solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive
  • To execute the apply_amps.sh script it is necessary to set the $JAVA_HOME variable:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
  • Configure alfresco-global.properties, use this file as template and modify it. Finally copy it to: usr/local/alfresco/tomcat/shared/classes/
  • Install/Deploy the amp files using the following command:
    sh ./bin/apply_amps.sh
  • Check if you have the appropriate folder structure in the root folder of alfresco:
    |– alf_data
    |– alfresco-pdf-renderer
    |– alfresco-search-services
    |– amps
    |– amps_share
    |– bin
    |– licenses
    |– modules
            |– platform
            |– share
    |– tomcat

5. Test alfresco

  • Test if solr is running: http://localhost:8983
  • Start Tomcat by executing the following command from the tomcate directory: ./bin/startup.sh
  • Open http://localhost:8080 and login (Default: admin/admin)
  • Tail with tail -f ./logs/catalina.out the log files of tomcat
  • With ps -ef | grep tomcat you can see if an instance of tomcat is running
  • With kill PID you can kill tomcat
  • Share and alfresco are creating its own log files, called alfresco.log and share.log
  • Configure the storage path of the log files of alfresco: https://blyx.com/2014/02/18/alfresco-tip-logs/

6. Put an apache server in front of alfresco

  1.  Install apache:
    sudo apt-get install apache2
  2. After installing Apache2, the commands below can be used to stop, start and enable Apache2 service to automatically start up everytime the server starts:
    sudo systemctl stop apache2.service
    sudo systemctl start apache2.service
    sudo systemctl enable apache2.service
  3. Enable Apache2 Proxy Modules:
    sudo a2enmod proxy
    sudo a2enmod proxy_http
  4. Restart Apache:
    sudo systemctl restart apache2.service
  5. Create a new site configuration in /etc/apache2/sites-available/ with the name alfresco.conf
  6. Put the following configuration into the file:
    <VirtualHost *:80>
    ServerName alfresco.mydomain.com
    ServerAlias alfresco
    ServerAdmin webmaster@example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combinedProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/<Location />
    Order allow,deny
    Allow from all
    </Location>
    </VirtualHost>
  7. Save the file.
  8. Enable the configuration and restart apache2.service:
    sudo a2ensite alfresco.conf
    sudo systemctl restart apache2.service
  9. With a2dissite and the conf file you can remove a site configuration
  10. Now alfresco is reachable form apache on port 80.
  11. Change the url and the port in alfresco-global.properties
  12. Add the following settings to the tomcat connector in server.xml (/usr/local/alfresco/tomat/conf/):
    proxyName="files.nettania.net" proxyPort="443"
  13. Restart tomcat

7. Install SSL Certificate and reconfigure apache to use https

  1.  Install modul ssl:
    sudo a2enmod ssl
  2. Restart apache service:
    sudo service apache2 restart
  3. Create a csr request and get the crt and the key from your SSL Provider (You can use the csr generator from your SSL provider)
  4. Put/Copy the crt and key file to (this is the default storage location for certifcates):
    /etc/ssl/certs/
  5. Configure the virtual host to support ssl. Change the content of /etc/apache2/sites-available/alfresco.conf to:
    <VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/alfresco_nettania_net.crt
    SSLCertificateKeyFile /etc/ssl/certs/alfresco.nettania.net.keyServerName alfresco.nettania.net
    ServerAlias alfresco
    ServerAdmin Administrator@mydomain.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combinedProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/<Location />
    Order allow,deny
    Allow from all
    </Location>
    </VirtualHost>
  6. Change the connector in tomcat´s server.xml to the following configuration:
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    proxyName="alfresco.mydomain.com"
    proxyPort="443"
    scheme="https"
    secure="true" />
    With this configuration you can prevent the following problems:
    • Possible CSRF attack noted when asserting referer header
    • The browser informs that some content might be not secure
  7. Restart Apache and tomcat and test the configuration

Links

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *