DE
DeusBit/aem-as-a-service
How-to Install and Start Adobe Experience Manager (AEM) as a Linux Service (CentOS 7 and Ubuntu 17.04)
How-to Setup AEM As A Service on Linux (CentOS and Ubuntu)
Details on how-to setup AEM as a Service on Linux. Used CentOS 7 and Ubuntu 17.04 as an example.
Pre-requisites
- AEM Installed on your server. Copy the path of the install (e.g: /mnt/crx)
- Java (atleast JRE) installed (To test if java is installed and the version, run this command
java -version) - Start AEM (e.g
java -jar cq-quickstart-author-p4502.jar) once. This will generate all the necessary folders, especially /mnt/crx/crx-quickstart/bin that is required by the scripts. - Create a user who will have access to the service. (e.g: aem)
Step-by-step guide
- You will need root access
- Create user aem and add to sudoers group
adduser aemusermod -aG sudo aem- Test the user
su - aemsudo ls -la /root[This is accessible by root only]
- Create these 2 files (Get the contents of the files based on the OS. Under /centos or /ubutnu in this project)
- aem
- aem.service
- Open
aemscript file and update the below- AEM_ROOT (e.g:
/mnt/crxis the root, where/mnt/crx/crx-quickstartis the full path) - AEM_USER (e.g:
aem)
- AEM_ROOT (e.g:
- SCP these files to the server
- Copy
aemto/usr/bin- Example: From terminal on your desktop
$ scp <filename> user@1.1.1.1:/usr/bin/aem
- Example: From terminal on your desktop
- Copy
aem.serviceto/etc/system.d/system(if Ubuntu -/etc/systemd/system)- Example: From terminal on your desktop
$ scp <filename> user@1.1.1.1:/etc/system.d/system/aem.system
- Example: From terminal on your desktop
- Copy
- SSH to your server
ssh user@1.1.1.1
- Give permissions to the files
sudo chmod u+rwx /usr/bin/aemsudo chmod u+rwx /etc/system.d/system/aem.service(if Ubuntu -/etc/systemd/system/aem.service)
- Update
cd /etc/system.d/system(if Ubuntu -/etc/systemd/system)sudo systemctl enable aem.system
- You can restart the server or run the below commands to start AEM. Make sure you run Pre-requisite Step 2 before running this command.
Commands to START, RESTART and STOP AEM
Centos
- Start AEM -
sudo service aem start - Restart AEM -
sudo service aem restart - Stop AEM -
sudo service aem stop - Check Status of the service
sudo service aem status
Ubuntu
- Start AEM -
sudo systemctl start aem - Restart AEM -
sudo systemctl restart aem - Stop AEM -
sudo systemctl stop aem - Check Status of AEM
sudo systemctl status aem
Test if AEM is running
There are several ways we can test if AEM is running with the above commands
-
Run the command
ps -ef | grep java, you should see something like thisroot 12958 1 5 20:39 ? 00:02:41 java -server -Xmx1024m -XX:MaxPermSize=256M -Djava.awt.headless=true -Dsling.run.modes=author,crx3,crx3tar -Djava.locale.providers=CLDR,JRE,SPI -jar crx-quickstart/app/cq-quickstart-6.4.0-standalone-quickstart.jar start -c crx-quickstart -i launchpad -p 4502 -Dsling.properties=conf/sling.properties
-
Check if port 4502 is being used
sudo lsof -i -P -n | grep LISTEN -
Test AEM in another command/terminal window using cUrl as
curl -I http://localhost:4502 -
Test AEM in browser
http://<vm-ip-address>:4502
Troubleshooting
Installing Oracle Java 8 Manually in Ubuntu 18x
- Download the
tar.gzfile "https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u 231-linux-x64.tar.gz" to your local machine. Downloading to your linux VM maybe not possible, as the above url needs a login. - Copy the file to the server using SCP
- Make a directory:
mkdir /opt/java - Install and copy:
sudo tar -zxf jdk-8u231-linux-x64.tar.gz -C /opt/java/ - Update your environment to allow Java for all users. Run this command
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.8.0_231/bin/java 1 - Add path to ".bashrc". Open to edit
sudo nano ~/.bashrc-
Add these lines to the end of the file:
export JAVA_HOME=/opt/java/jdk1.8.0_231export PATH=${PATH}:${JAVA_HOME}/bin
-
Others:
- If the command shows
activeand still AEM does not load (On a browserhttp://localhost:4502) then check the AEM logs. Path for the log file:/<aem-folder>/crx-quickstart/logs/stdout.log
Notes
- The example above was tested on CentOS 7 and Ubuntu 17x, 18x
- AEM 6.3 version was used. Although the above process should work for AEM 6.x