Manual Install of Community Platform on Ubuntu 14.04.5 LTS VM on Microsoft Azure

Dear Camunda’s forum,

I proceeded by following the steps:

  1. Create the Azure VM with Ubuntu 14.04.5 LTS

  2. Update packages:
    #apt-get upgrade
    #apt-get dist-upgrade
    #apt-get autoremove
    #apt-get autoclean

  3. Validate memory

vmstat -s

  7124992 K total memory
   540900 K used memory
   284292 K active memory
   102444 K inactive memory
  6584092 K free memory
    29036 K buffer memory
   299784 K swap cache
        0 K total swap
        0 K used swap
        0 K free swap3)


3) Create user and group tomcat (configured with sudo Access)
4) Create install directory
tomcat@bodcloud39:~$cd /data/App
tomcat@bodcloud39:~$sudo mkdir tomcat
tomcat@bodcloud39:~$chown tomcat:tomcat ./tomcat
tomcat@bodcloud39:~$cd tomcat

  1. installing OpenJDK 7.
    tomcat@bodcloud39:~$sudo apt-get install default-jdk
    tomcat@bodcloud39:~$java -versión
    java version “1.7.0_181”
    OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
    OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)

  2. Download Tomcat Binary and extract to /data/App/tomcat
    tomcat@bodcloud39:~$wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
    tomcat@bodcloud39:~$sudo tar xvf apache-tomcat-8.5.32.tar.gz -C /data/app/tomcat --strip-components=1

  3. Update Permissions
    sudo chgrp -R tomcat conf
    sudo chmod g+rwx conf
    sudo chmod g+r conf/*

  4. Install Upstart Script with JAVA_HOME taken from output of sudo update-alternatives --config java
    sudo vi /etc/init/tomcat.conf
    description “Tomcat Server”

start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 10 5

setuid tomcat
setgid tomcat

env JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
env CATALINA_HOME=/data/app/tomcat

Modify these options as needed

env JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
env CATALINA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

exec $CATALINA_HOME/bin/catalina.sh run

cleanup temp directory after stop

post-stop script
rm -rf $CATALINA_HOME/temp/*
end script

  1. Reload the Upstart configuration, so we can use our new Tomcat script:
    sudo initctl reload-configuration

  2. Change the port 8080 to 8091

  3. Start tomcat
    sudo ./bin/shutdown.sh
    sudo ./bin/startup.sh

  4. Test http://10.231.3.11:8091/ and every this is OK

  5. Shutdown tomcat

  6. Download camunda and extract
    camunda@bodcloud39:~$ sudo wget https://camunda.org/release/camunda-bpm/tomcat/7.9/camunda-bpm-tomcat-7.9.0.tar.gz
    camunda@bodcloud39:~$ sudo tar xvf camunda-bpm-tomcat-7.9.0.tar.gz

  7. Add Required Libraries and bpm-platform.xml
    cd /data/app/tomcat
    sudo cp /data/app/camunda/lib/* ./lib
    sudo cp /data/app/camunda/server/apache-tomcat-9.0.5/conf/bpm-platform.xml conf/

  8. Add BPM Bootstrap Server Listener and Configure a JDBC Resource (H2)

<?xml version="1.0" encoding="UTF-8"?>
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="150" minSpareThreads="4"/>
-->


<!-- A "Connector" represents an endpoint by which requests are received
     and responses are returned. Documentation at :
     Java HTTP Connector: /docs/config/http.html
     Java AJP  Connector: /docs/config/ajp.html
     APR (HTTP/AJP) Connector: /docs/apr.html
     Define a non-SSL/TLS HTTP/1.1 Connector on port 8091
-->
<Connector port="8091" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
           port="8091" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
     This connector uses the NIO implementation. The default
     SSLImplementation will depend on the presence of the APR/native
     library and the useOpenSSL attribute of the
     AprLifecycleListener.
     Either JSSE or OpenSSL style configuration may be used regardless of
     the SSLImplementation selected. JSSE style configuration is used below.
-->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
     This connector uses the APR/native implementation which always uses
     OpenSSL for TLS.
     Either JSSE or OpenSSL style configuration may be used. OpenSSL style
     configuration is used below.
-->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
           maxThreads="150" SSLEnabled="true" >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
        <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                     certificateFile="conf/localhost-rsa-cert.pem"
                     certificateChainFile="conf/localhost-rsa-chain.pem"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
-->

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


<!-- An Engine represents the entry point (within Catalina) that processes
     every request.  The Engine implementation for Tomcat stand alone
     analyzes the HTTP headers included with the request, and passes them
     on to the appropriate Host (virtual host).
     Documentation at /docs/config/engine.html -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">

  <!--For clustering, please take a look at documentation at:
      /docs/cluster-howto.html  (simple how to)
      /docs/config/cluster.html (reference documentation) -->
  <!--
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  -->

  <!-- Use the LockOutRealm to prevent attempts to guess user passwords
       via a brute-force attack -->
  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- This Realm uses the UserDatabase configured in the global JNDI
         resources under the key "UserDatabase".  Any edits
         that are performed against this UserDatabase are immediately
         available for use by the Realm.  -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>
</Engine>
  1. Start tomcat
    cd /data/app/tomcat
    sudo ./bin/shutdown.sh
    sudo ./bin/startup.sh

  2. Test http://10.231.3.11:8091/ and every this is OK

  3. Test http://10.231.3.11:8091/camunda-welcome/index.html and fail with
    Estado HTTP 404 – Not Found

Can anybody from this fórum help me?