As part of the step by step series, we tried installing Alfresco content services 6.2.0-ga + Solr6 (Alfresco search services 1.4.0) using distribution package and we used legacy transformation service to keep it simple (legacy transformation service was marked as deprecated in ACS6.x version) but we did setup prerequisites to use local transformation service.
You can take a look at the steps here:
What we need before we start doing setup?
- ACS-7.0.0 community package (alfresco-content-services-community-distribution-7.0.0.zip)
- ASS-2.0.1 package (alfresco-search-services-2.0.1.zip)
- Java: Oracle jdk-11.0.7 or later/Open JDK 11.0.7 or later (java 11.0.11 is used for this post)
- Tomcat: Tomcat 9
- ActiveMQ: ActiveMQ v5.16
- DB: PostgreSQL 13.1
- ImageMagick: ImageMagick v7.0.10
- Libreoffice: LibreOffice v6.3.5.2
- Alfresco Transform Core AIO Boot App.
Platform:
Type of deployment:- ACS, Share, ASS (SOLR6), and Local transformation services on same machine
- No SSL/Secret mode setup
- Download ACS-7.0.0 community:
https://download.alfresco.com/cloudfront/release/community/7.0.0-build-2355/alfresco-content-services-community-distribution-7.0.0.zip
- Download ASS-2.0.1:
Note: If you are planning to setup ACS-7.x (Enterprise version) and ASS-2.x, then download the appropriate distribution packages from Alfresco Support portal. All the steps outlined below will remain same. We are using community version of ACS 7.x for this post hence we have to use ASS 2.x as stated in the Supported platforms here
Download Tomcat 9.0.48 binary package:
https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.48/bin/apache-tomcat-9.0.48.tar.gz
Note: Make sure ports 8005, 8080, 8443, AJP port 8009 are open and not in use already. These are default ports used for tomcat. If you have these ports already in use, make sure you change the ports accordingly in <TOMCAT_INSTALLATION>/conf/server.xml.
Download ActiveMQ v5.16.2 binary package (used for transformation service):
https://archive.apache.org/dist/activemq/5.16.2/apache-activemq-5.16.2-bin.tar.gz
Download Alfresco PDF Renderer (v1.1) binary package (used for transformation service):
Imagemagick dist.:
Imagemagick lib dist.:
Dependencies for Imagemagick:
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Alternatively, distributions can download from here:
https://imagemagick.org/script/download.php#unix
Download LibreOffice v6.3.5.2:
Alternatively, distributions can download from here:
Optional Alfresco module packages (amps)-Useful for admins/developers:
*** Updated this post to provide prerequisites to install ACS 7.3.x and other related components. All the below given steps should be pretty much the same. You can find more details here ***
Now, we have downloaded the packages and unlike Windows environment there are several additional pre-requisites that needs to be done before we can start setting up ACS (alfresco content services) and ASS (alfresco search services). So follow the steps as outlined below.
We would be needing a user and a group for running alfresco content services and alfresco search services in the Linux platform.
User and Group for Alfresco Content Services (ACS):
- Create a group named 'Alfresco'
$ sudo groupadd Alfresco
- Create a system user named 'alfresco'
$ sudo adduser alfresco --system
- Add the user 'alfresco' to the group 'Alfresco'
$ sudo usermod -a -G Alfresco alfresco
- Verify group membership
$ sudo groups alfresco
Output--> alfresco : alfresco Alfresco
User and Group for Alfresco Search Services (ASS):
- Create a group named 'Solr'
$ sudo groupadd Solr
- Create a system user named 'solr'
$ sudo adduser solr --system
- Add the user 'solr' to the group 'Solr'
$ sudo usermod -a -G Solr solr
- Verify group membership
$ sudo groups solr
Output--> solr : solr Solr
We will be using these users/groups at later stages to setup appropriate permission levels for ACS and ASS (solr6).
Create directory structure for ACS-7.0.0 community
- Create a directory named 'alfresco-community70' under '/usr/local/' directory. We will setup everything for ACS in this directory. You can choose to setup structure in a different directory as well depending on requirement or OS. For this post we would be using '/usr/local'.
$ sudo mkdir /usr/local/alfresco-community70
- Create sub-directories under '/usr/local/alfresco-community70' as below:
You can also clone this git repo and copy the pre-existing structure if that helps.
- Set initial permissions to structure created above:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70$ sudo chmod 775 /usr/local/alfresco-community70$ sudo chmod -R 775 /usr/local/alfresco-community70/alf_data
Note: We will be setting up some more permissions when we setup tomcat.
- Add ALF_HOME to permanent environment variable, Edit '.bash_profile' file:
$ sudo vim .bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export ALF_HOME=/usr/local/alfresco-community70 PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ALF_HOME export PATH
Note that environment variable gets reset after you re-start the server. So to keep the variable permanent we are editing ".bash_profile". This '.bash_profile' file's absolute path is '/home/centos/.bash_profile' since logged in user is 'centos', it can be different in your case based on logged in user.
- Create a directory named 'alfresco-search-services' under '/usr/local/' directory. We will setup everything here. You can choose to setup structure in a different directory as well depending on requirement or OS. For this post we would be using '/usr/local'.
$ sudo mkdir /usr/local/alfresco-search-services
- Set initial permissions to structure created folder (We will be setting up some more permissions when we setup alfresco search services at a later stage):
$ sudo chgrp -R Solr /usr/local/alfresco-search-services
$ sudo chmod 775 /usr/local/alfresco-search-services
- Add SOLR_HOME to permanent environment variable, Edit '.bash_profile' file:
$ sudo vim .bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export ALF_HOME=/usr/local/alfresco-community70 export SOLR_HOME=/usr/local/alfresco-search-servicesPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ALF_HOME:$SOLR_HOME export PATH
Note that environment variable gets reset after you re-start the server. So to keep the variable permanent we are editing ".bash_profile". This '.bash_profile' file's absolute path is '/home/centos/.bash_profile' since logged in user is 'centos', it can be different in your case based on logged in user.
- Update packages, it is a best practice to start with an updated operating system before installing a package. If you have not done so, use the following command to update CentOS and reboot:
$ sudo yum update -y
$ sudo reboot
- Install latest stable version of Java-11
$ sudo yum install java-11-openjdk-devel
- This will install java11 in following directory: /usr/lib/jvm/java-11
- Run following command to check what is the default java version
$ sudo java -version
- If you see java version other than java-11, then you can switch and set the default version as java-11. Run the following command:
$ sudo alternatives --config java
This will prompt you to select the version you want to set as default. Select a number from the list, e.g. if java-11 is at number 3, then type '3' and press enter. Revalidate the java version again.
- set JAVA_HOME environment variable, Edit '.bash_profile' file:
$ sudo vim .bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export JAVA_HOME=/usr/lib/jvm/java-11 export ALF_HOME=/usr/local/alfresco-community70 export SOLR_HOME=/usr/local/alfresco-search-servicesPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ALF_HOME:$SOLR_HOME export PATH
Note that environment variable gets reset after you re-start the server. So to keep the variable permanent we are editing ".bash_profile". This '.bash_profile' file's absolute path is '/home/centos/.bash_profile' since logged in user is 'centos', it can be different in your case based on logged in user.
Refer the steps here (steps would be pretty much same)
- Prepare 'alfresco' database, user and assign privileges
- Create a new user named "alfresco" and set a password which will be used by alfresco content service to connect to database. Here we will be using username as "alfresco" and password "alfresco".
- Create a new database named : "alfresco", make sure you select default encoding which is "utf8".
- Grant all permissions for user "alfresco" on database "alfresco".
- Execute following SQL queries to complete the above given tasks:
$ sudo su - postgres
# Type 'psql' to launch postgresql terminal -bash-4.2$ psql # Create user named 'alfresco' and db named 'alfresco' and make 'alfresco' the owner of 'alfresco' db. postgres=# create role alfresco LOGIN password 'alfresco'; postgres=# create database alfresco encoding 'utf8'; postgres=# grant all on database alfresco to alfresco; # Type exit to terminate the terminal exit # Type exit to leave the bash terminal exit
Install ActiveMQ 5.16 (Mandatory to use Transformation service):
Assuming you have already downloaded the distribution packages from download locations provided above. Use the below given steps to install ActiveMQ.
- Extract the package '/home/centos/Downloads/apache-activemq-5.16.2-bin.tar.gz' and copy the contents of 'apache-activemq-5.16.2-bin' into '/usr/local/alfresco-community70/activemq' directory
$ sudo tar -xvf /home/centos/Downloads/apache-activemq-5.16.2-bin.tar.gz $ sudo cp -R /home/centos/Downloads/apache-activemq-5.16.2/* /usr/local/alfresco-community70/activemq/
Note: Make sure ports 61616, 5672, 61613, 1883, 61614 and 8161 are open and not in use already. These are default ports used for activemq. If you have these ports already in use, make sure you change the ports accordingly in <AMQ_INSTALLATION>/conf/activemq.xml and jetty.xml as needed.If you do setup ActiveMQ as a future plan and not using ActiveMQ, then disable the service and ports. Enable them back when you are ready to use transformation services.
- We will create a system service for activemq
$ sudo vim /etc/systemd/system/activemq.service
# Put the below instructions in activemq.service and save
[Unit] Description=ActiveMQ service After=network.target [Service] Type=forking ExecStart=/usr/local/alfresco-community70/activemq/bin/activemq start ExecStop=/usr/local/alfresco-community70/activemq/bin/activemq stop User=alfresco Group=Alfresco WorkingDirectory=~/usr/local/alfresco-community70/activemq/data Restart=always RestartSec=9 StandardOutput=syslog StandardError=syslog SyslogIdentifier=activemq [Install] WantedBy=multi-user.target
- Reload demons
$ sudo systemctl daemon-reload
- Change the permission for the activemq/data directory to alfresco:Alfresco (user:group)
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/activemq
$ sudo chown -R alfresco:Alfresco /usr/local/alfresco-community70/activemq/data
- Start and enable ActiveMQ to automatically start at boot time
$ sudo systemctl start activemq
$ sudo systemctl enable activemq
- To check status whether activemq service is running or not, use below given command:
$ sudo systemctl status activemq
- We will open following ports:
- 8161 --> for Web Console - 5672 --> for AMQP - 61616 --> for OpenWire - 61613 --> for STOMP
$ sudo firewall-cmd --zone=public --permanent --add-port=8161/tcp $ sudo firewall-cmd --zone=public --permanent --add-port=5672/tcp $ sudo firewall-cmd --zone=public --permanent --add-port=61616/tcp $ sudo firewall-cmd --zone=public --permanent --add-port=61613/tcp $ sudo firewall-cmd --reload
- Test the web console: http://localhost:8161/admin
- If you see '503' http status code and page doesn't show up then this could due to SELinux or Permission issues. Run following command to allow SELinux pass the request on 8161 port and fix permissions:
$ sudo semanage port -a -t http_port_t -p tcp 8161
- One of the directory named 'tmp' is created by activemq at run time may be causing permission issues since service is started as 'alfresco' user and not the 'root' user, so we will create 'tmp' directory before hand and put appropriate permissions for the safe side:
$ sudo mkdir /usr/local/alfresco-community70/activemq/tmp $ sudo chgrp -R Alfresco /usr/local/alfresco-community70/activemq/tmp $ sudo chmod -R 775 /usr/local/alfresco-community70/activemq/tmp
- Try the web console again, this should work this time hopefully
- Default user name and password is : admin/admin
- Extract the package '/home/centos/Downloads/apache-tomcat-9.0.48.tar.gz' and copy the contents of 'apache-tomcat-9.0.48' into '/usr/local/alfresco-community70/tomcat' directory
$ sudo tar -xvf /home/centos/Downloads/apache-tomcat-9.0.48.tar.gz $ sudo cp -R /home/centos/Downloads/apache-tomcat-9.0.48/* /usr/local/alfresco-community70/tomcat/
- Update directory permissions:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70 $ sudo chmod -R 755 /usr/local/alfresco-community70/tomcat/bin
$ sudo chmod -R 755 /usr/local/alfresco-community70/tomcat/conf
$ sudo chmod -R 755 /usr/local/alfresco-community70/tomcat/shared
$ sudo chmod -R 755 /usr/local/alfresco-community70/tomcat/lib
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/temp
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/logs
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/work
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/webapps
- We will create a system service for tomcat
$ sudo vim /etc/systemd/system/tomcat.service
# Put the below instructions in tomcat.service and save
#Systemd unit file for tomcat [Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Restart=always Environment=JAVA_HOME=/usr/lib/jvm/jre Environment=CATALINA_PID=/usr/local/alfresco-community70/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/usr/local/alfresco-community70/tomcat
Environment=CATALINA_BASE=/usr/local/alfresco-community70/tomcat
Environment='CATALINA_OPTS=-Xms3G -Xmx4G -Xss1024k -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/usr/local/alfresco-community70/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID WorkingDirectory=/usr/local/alfresco-community70/tomcat
User=alfresco Group=Alfresco [Install] WantedBy=multi-user.target
- Reload demons
$ sudo systemctl daemon-reload
- Start and enable Tomcat to automatically start at boot time
$ sudo systemctl start tomcat
$ sudo systemctl enable tomcat
- To check status whether tomcat service is running or not, use below given command:
$ sudo systemctl status tomcat
- We will open following ports for alfresco and share access:
- 8080 - 8443
$ sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp $ sudo firewall-cmd --zone=public --permanent --add-port=8443/tcp $ sudo firewall-cmd --reload
Configure ACS repository:
$ sudo unzip /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0.zip -d /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0
- Copy contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore” into “/usr/local/alfresco-community70/alf_data/keystore”. Following files will be copied:
- CreateSSLKeystores.txt -> Contains instructions to create an RSA public/private key pair for the repository with a certificate that has been signed by the Alfresco Certificate Authority (CA).
- readme.txt -> Text file containing information about other files in a directory.
- generate_keystores.sh -> Shell script file for generating secure keys for SOLR communication.
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore/CreateSSLKeystores.txt /usr/local/alfresco-community70/alf_data/keystore/ $ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore/generate_keystores.sh /usr/local/alfresco-community70/alf_data/keystore/ $ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore/readme.txt /usr/local/alfresco-community70/alf_data/keystore/
Note: Useful to generate secure keys for SOLR and Alfresco communication (we are not setting up SSL here so we are just copying the files but we will not be using it for now).
Visit here for more info.
- Update the file permissions for '/usr/local/alfresco-community70/alf_data/keystore' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/alf_data/keystore
$ sudo chmod -R 755 /usr/local/alfresco-community70/alf_data/keystore
- Copy contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/amps” into “/usr/local/alfresco-community70/amps”. We will be installing alfresco module packages (amps) at later stage.
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/amps/alfresco-share-services.amp /usr/local/alfresco-community70/amps/
- alfresco-share-services.amp -> Alfresco share service module containing extensions for search, datalist, sample sites patch etc.
Note: alfresco-share-services.amp installation is mandatory otherwise several functionalities including share search may not work. And you will also see following warning when you login to share: Alfresco is running without Share Services. See your System Administrator for more details.
- If you have downloaded the additional amps (optional) given below, then copy them to amps/amps_share directories as appropriate. For this post we will be using these amps:
- support-tools-repo-1.1.0.0-amp.amp
- Copy 'support-tools-repo' amp to "/usr/local/alfresco-community70/amps/" directory
- support-tools-share-1.1.0.0-amp.amp
- Copy 'support-tools-share' amp to "/usr/local/alfresco-community70/amps_share/" directory
- javascript-console-repo-0.7.amp (Updated with ACS7 Compatibility bugfix)
- Copy 'javascript-console-repo' amp to "/usr/local/alfresco-community70/amps/" directory
- javascript-console-share-0.7.amp (Updated with ACS7 Compatibility bugfix)
- Copy 'javascript-console-share' amp to "/usr/local/alfresco-community70/amps_share/" directory
- Update the file permissions for '/usr/local/alfresco-community70/amps' and '/usr/local/alfresco-community70/amps_share' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/amps
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/amps_share
$ sudo chmod -R 755 /usr/local/alfresco-community70/amps
$ sudo chmod -R 755 /usr/local/alfresco-community70/amps_share
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/bin” into “/usr/local/alfresco-community70/bin” directory
- Following files will be copied:
- alfresco-mmt.jar -> Alfresco Module Management Tool (MMT), A java library which supports alfresco module package installation/uninstallation/listing and preview operations etc.
- apply_amps.sh -> Utility to install amps kept in “amps” and “amps_share” directory. It will install amps related to alfresco on alfresco.war (keeps the backup of original war file) and amps related to share on share.war (keeps the backup of original war file) For more details visit: https://docs.alfresco.com/community/tasks/amp-install.html
- clean_tomcat.sh -> Shell script for cleaning out temporary application server files from previous installations.
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/bin/alfresco-mmt.jar /usr/local/alfresco-community70/bin/
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/bin/apply_amps.sh /usr/local/alfresco-community70/bin/
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/bin/clean_tomcat.sh /usr/local/alfresco-community70/bin/
- Update the file permissions for '/usr/local/alfresco-community70/bin' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/bin
$ sudo chmod -R 755 /usr/local/alfresco-community70/bin
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/licenses” into “/usr/local/alfresco-community70/licenses” directory. It contains files that have information about license terms used by alfresco including all third party licenses.
$ sudo cp -R /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/licenses/* /usr/local/alfresco-community70/licenses/
- Update the file permissions for '/usr/local/alfresco-community70/licenses' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/licenses
Configure tomcat for ACS repository:
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/conf” into “/usr/local/alfresco-community70/tomcat/conf” folder. 'conf' directory contains Catalina repository and Share xml files.
$ sudo cp -R /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/conf/* /usr/local/alfresco-community70/tomcat/conf/
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/lib/” into “/usr/local/alfresco-community70/tomcat/lib/” folder. 'lib' directory contains the PostgreSQL JDBC jar file (postgresql-42.2.19.jar).
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/lib/* /usr/local/alfresco-community70/tomcat/lib/
- Update the permissions for '/usr/local/alfresco-community70/tomcat/lib/' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/tomcat/lib
$ sudo chmod 755 /usr/local/alfresco-community70/tomcat/lib/*.jar
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/shared/classes” into “/usr/local/alfresco-community70/tomcat/shared/classes/” folder. 'shared' directory includes the Alfresco Content Services configuration files:
- /classes/alfresco-global.properties.sample -> Sample alfresco global properties file, which is used for configuration properties.
- /classes/alfresco -> Contains the directory structure for the configuration override files, including the extension, and web-extension directories.
$ sudo cp -R /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/shared/classes /usr/local/alfresco-community70/tomcat/shared/classes/
- Create a new directory named 'keystore' under '/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension' directory. We need to copy the 'metadata-keystore' related configs in this newly created directory.
- Copy the 'metadata-keystore' directory from '/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore/metadata-keystore' to '/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore' directory.
$ sudo mkdir /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore
$ sudo cp -R /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/keystore/metadata-keystore /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore
Note: The alfresco's keystore directory (dir.keystore) config location has changed from previous version. 'dir.keystore' property in alfresco-global.properties will now be something like: 'dir.keystore=/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore'.
Metadata encryption keys needs to be now set using 'JAVA_TOOL_OPTIONS' java environment variable. For example:
JAVA_TOOL_OPTIONS="-Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore/metadata-keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESede"
We will take a look at it later in this post. For more info visit: https://docs.alfresco.com/content-services/latest/admin/security/#alfresco-keystore-configuration
- Update the permissions for '/usr/local/alfresco-community70/tomcat/shared/classes/' directory since we added/updates files/folders:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/tomcat/shared
$ sudo chmod -R 755 /usr/local/alfresco-community70/tomcat/shared
- Delete all files/folders from “/usr/local/alfresco-community70/tomcat/webapps”
$ sudo rm -rf /usr/local/alfresco-community70/tomcat/webapps/*
- Copy the contents from “/home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/webapps” into “/usr/local/alfresco-community70/tomcat/webapps/” folder.
$ sudo cp /home/centos/Downloads/alfresco-content-services-community-distribution-7.0.0/web-server/webapps/*.war /usr/local/alfresco-community70/tomcat/webapps/
- Following files will be copied:
- alfresco.war -> Alfresco repository web application.
- share.war -> Share interface web application.
- ROOT.war -> Application for the server root, also contains additional code/setup for handling alfresco office services module (alfresco-office-services). Alfresco Office Services (AOS) allow you to access Alfresco Content Services directly from all your Microsoft Office applications. We will not be installing this module since SSL is a mandatory enablement for this module.
- _vti_bin.war -> App to help and support AOS module.
- Update the permissions for '/usr/local/alfresco-community70/tomcat/webapps/' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/tomcat/webapps/
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/webapps/*.war
- Delete all files/folders from “/usr/local/alfresco-community70/tomcat/work/Catalina/localhost” if there are any
$ sudo rm -rf /usr/local/alfresco-community70/tomcat/work/Catalina/localhost/*
- Update the permissions for '/usr/local/alfresco-community70/tomcat/work/Catalina/localhost' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/tomcat/work/Catalina/localhost
$ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/work/Catalina/localhost
- Open and edit server.xml file which can be found under: “/usr/local/alfresco-community70/tomcat/conf/” directory [Full path: /usr/local/alfresco-community70/tomcat/conf/server.xml] :
$ sudo vim /usr/local/alfresco-community70/tomcat/conf/server.xml
- Find Connector with port "8080”.
- Add the URIEncoding and maxHttpHeaderSize attributes.
- Add the enableLookups, xpoweredBy and server attributes. (Optional Attributes for Tomcat 8.x and later)
- Set xpoweredBy attribute to true to cause Tomcat to advertise support for the Servlet specification using the header recommended in the specification. The default value is false.
- Set enableLookups to true if you want calls to request.getRemoteHost() to perform DNS lookups in order to return the actual host name of the remote client. Set to false to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are disabled.
- Setting server to true, overrides the server header for the http response. If set, the value for this attribute overrides any Server header set by a web application. If not set, any value specified by the application is used. If the application does not specify a value then no Server header is set.
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" maxHttpHeaderSize="32768" redirectPort="8443" enableLookups="false" xpoweredBy="false" server="AlfrescoECM"/>
Tomcat uses ISO-8859-1 character encoding when decoding URLs that are received from a browser. This can cause problems when creating, uploading, and renaming files with international characters. By default, Tomcat uses an 8 KB header buffer size, which might not be large enough for the Kerberos authentication protocol. We need to increase this buffer size.
Update AJP Connector config you are planning to use it. By default it is commented in tomcat server.xml, make sure you add URIEncoding attribute to the config if you are planning to use it. This port is used when configuring external authentication.
See here for more details:
<Connector port="8009" address="::1" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" xpoweredBy="false"/>
- Open and edit the /usr/local/alfresco-community70/tomcat/conf/catalina.properties file:
$ sudo vim /usr/local/alfresco-community70/tomcat/conf/catalina.properties
- Update the value of the shared.loader= property to the following:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
- We need to add JAVA_TOOL_OPTIONS java environment variable for metadata encryption, we had copied the keystore under '/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore/metadata-keystore' directory already. Check the steps above. Open and edit /usr/local/alfresco-community70/tomcat/bin/catalina.sh. Add the variable after JAVA_OPTS in catalina.sh file. If you add this variable at the end of the file, it is not getting recognized for some reason. So make sure you add the variavle before JAVA_OPTS as mentioned above. See the example screenshot below for reference or check here.
$ sudo vim /usr/local/alfresco-community70/tomcat/bin/catalina.sh
#ACS7 Custom changes [Start] ############## export JAVA_TOOL_OPTIONS="-Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore/metadata-keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESede" #ACS7 Custom changes [End] ##############
Example:
- Rename “/usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties.sample” to “alfresco-global.properties”
$ sudo mv /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties.sample /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
- Update the file permissions for '/usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties' file:
$ sudo chgrp Alfresco /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
$ sudo chmod 775 /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
- Open and edit “/usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties” and add the following configuration properties:
- Add the “dir.root” property as path to alf_data folder and add 'dir.keystore' property to the above copied encryption keystore path (see here)
dir.root=/usr/local/alfresco-community70/alf_data dir.keystore=/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore
- Add alfresco and share host, port, context and protocol specific properties. For more details see: https://docs.alfresco.com/content-services/latest/config/#using-alfresco-globalproperties
alfresco.context=alfresco alfresco.host=${localname} alfresco.port=8080 alfresco.protocol=http share.context=share share.host=${localname} share.port=8080 share.protocol=http
- Add the database connection properties which alfresco will use to create a JDBC connection with db. Use the db name and credentials when we prepared the database.
db.driver=org.postgresql.Driver db.username=alfresco db.password=alfresco db.name=alfresco db.url=jdbc:postgresql://localhost:5432/${db.name} db.pool.max=275 db.pool.validate.query=SELECT 1
- Add the server mode property, leave it default to ‘UNKNOWN’.
system.serverMode=UNKNOWN
- Add the alfresco rmi services port and host properties.
alfresco.rmi.services.port=50500
alfresco.rmi.services.host=0.0.0.0
- Update packages, it is a best practice to start with an updated operating system before installing a package. If you have not done so, use the following command to update CentOS and reboot:
$ sudo yum update -y
$ sudo reboot
Note: If you had followed the steps to install Java11 as outlined above, you have had already updated the package, so you can skip the above given step.
- Use rpm file's path as per your current download location. In my case files are downloaded the packages in '/home/centos/Downloads/Imagemagick7/' folder. Execute the command give below:
$ sudo yum localinstall /home/centos/Downloads/Imagemagick7/*.rpm -y
- Imagemagick and its dependencies will be installed and can be found in these locations
- Executables locations:
/usr/bin/convert /usr/bin/indentify /usr/bin/magick /usr/bin/magick-script
- Lib location:
/usr/lib64/ImageMagick-7.0.10
- Now that we have installed the imagemagick, let's do a round of test to make sure executables are working as expected. Use below command:
$ /usr/bin/convert /home/centos/Downloads/test.png /home/centos/Downloads/test.jpg
- For our convenience we will be creating 'links' to executable and libraries to keep everything in one place. We have a imagemagick folder within '/usr/local/alfresco-community70/' directory when we created the initial structure for setup. You can choose to keep executables and library at default location (as shown above) and use them in transformation service spring boot app launcher configuration. It is up to you.
- Create link for Imagemagick
- /usr/bin/convert - /usr/lib64/ImageMagick-7.0.10
$ sudo ln -s /usr/bin/convert /usr/local/alfresco-community70/imagemagick $ sudo ln -s /usr/lib64/ImageMagick-7.0.10/config-Q16HDRI /usr/local/alfresco-community70/imagemagick $ sudo ln -s /usr/lib64/ImageMagick-7.0.10/modules-Q16HDRI /usr/local/alfresco-community70/imagemagick
- Imagemagick params for transformation service boot app based on above link locations would now be:
-DIMAGEMAGICK_ROOT="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_DYN="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_EXE="/usr/local/alfresco-community70/imagemagick/convert" -DIMAGEMAGICK_CODERS="/usr/local/alfresco-community70/imagemagick/modules-Q16HDRI/coders" -DIMAGEMAGICK_CONFIG="/usr/local/alfresco-community70/imagemagick/config-Q16HDRI"
- Update packages, it is a best practice to start with an updated operating system before installing a package. If you have not done so, use the following command to update CentOS and reboot:
$ sudo yum update -y
$ sudo reboot
Note: If you had followed the steps to install Java11 as outlined above, you have had already updated the package, so you can skip the above given step.
- Use rpm file's path as per your current download location. In my case files are downloaded the packages and extracted in '/home/centos/Downloads/LibreOffice_6.3.5.2_Linux_x86-64_rpm/' folder.
$ sudo yum localinstall /home/centos/Downloads/LibreOffice_6.3.5.2_Linux_x86-64_rpm/RPMS/*.rpm -y
- LibreOffice and its dependencies will be installed and can be found in the following location:
/opt/libreoffice6.3
- For our convenience we will be creating 'links' to executable and libraries to keep everything in one place. We have a libreoffice folder within '/usr/local/alfresco-community70/' directory when we created the initial structure for setup. You can choose to keep executables and library at default location (as shown above) and use them in transformation service spring boot app launcher configuration. It is up to you.
- Create link for Libreoffice
- /opt/libreoffice6.3
$ sudo ln -s /opt/libreoffice6.3/* /usr/local/alfresco-community70/libreoffice
- Libreoffice params for transformation service boot app based on above link locations would now be:
-DLIBREOFFICE_HOME="/usr/local/alfresco-community70/libreoffice"
Alfresco PDF Renderer Setup:
- Extract “/home/centos/Downloads/alfresco-pdf-renderer-1.1-linux.tgz"
$ sudo tar -xvf /home/centos/Downloads/alfresco-pdf-renderer-1.1-linux.tgz --directory /home/centos/Downloads/
$ sudo cp /home/centos/Downloads/alfresco-pdf-renderer /usr/local/alfresco-community70/alfresco-pdf-renderer/
- You would have following file in “/usr/local/alfresco-community70/alfresco-pdf-renderer/” directory:
- alfresco-pdf-renderer [Full path: /usr/local/alfresco-community70/alfresco-pdf-renderer/alfresco-pdf-renderer]
- Update the file permissions for '/usr/local/alfresco-community70/alfresco-pdf-renderer' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/alfresco-pdf-renderer
$ sudo chmod -R 755 /usr/local/alfresco-community70/alfresco-pdf-renderer
Exiftool Setup:
- Create a new directory named 'exiftool' under '/usr/local/alfresco-community70' directory.
$ sudo mkdir /usr/local/alfresco-community70/exiftool
- Extract “/home/centos/Downloads/image-exiftool-12.25.tgz" and copy the contents of '/home/centos/Downloads/Image-ExifTool-12.25' into '/usr/local/alfresco-community70/exiftool/' directory
$ sudo tar -xvf /home/centos/Downloads/image-exiftool-12.25.tgz --directory /home/centos/Downloads/
$ sudo cp -R /home/centos/Downloads/Image-ExifTool-12.25/* /usr/local/alfresco-community70/exiftool/
export PATH=$PATH:$ALF_HOME/exiftool or export PATH=$PATH:/usr/local/alfresco-community70/exiftool
- Update the file permissions for '/usr/local/alfresco-community70/exiftool' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/exiftool
$ sudo chmod -R 755 /usr/local/alfresco-community70/exiftool
- Enable local transformation service (its enabled by default but just FYI here):
localTransform.core-aio.url=http://localhost:8090/
#This property is default true, here it it for information purpose.local.transform.service.enabled=true
- Add the activemq url property and enabled messaging subsystem. It will be used when you setup transformation service.
messaging.broker.url=tcp://localhost:61616
#This property is default true, here it it for information purpose.
messaging.subsystem.autoStart=true
#If you have setup username and password for AMQ, then set the below properties. In my case i have kept default admin/admin
messaging.broker.username=admin messaging.broker.password=admin
Note (Only applicable to Enterprise Edition, For community edition local transform service is only available option and must be enabled):
You can optionally disable local.transform service in alfresco Docker Container and enable transform service (asynchronous). Local Transform Service or Transform Service (supports only asynchronous requests) can be enabled or disabled independently of each other. Please keep in mind that when your deployment has Share and SOLR (think of full text indexing), or both then you'll need to have local.transform and transform service (asynchronous) enabled and running. The Repository will try to transform content using the Transform Service via the T-Router if possible and fall back to direct Local Transform Service. Share makes use of both, so functionality such as preview will be unavailable if local.transform service is disabled.
Set transformation core aio launcher and steps to launch:
- Copy the downloaded jar file to ''/usr/local/alfresco-community70/bin/" directory:
$ sudo cp /home/centos/Downloads/alfresco-transform-core-aio-boot-2.4.0.jar /usr/local/alfresco-community70/bin/ $ sudo chgrp Alfresco /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar $ sudo chmod 755 /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar
java -DPDFRENDERER_EXE="<alfresco-pdf-renderer_installation_dir>/alfresco-pdf-renderer" -DLIBREOFFICE_HOME="<libreoffice_installation_dir>" -DIMAGEMAGICK_ROOT="<imagemagick_installation_dir>" -DIMAGEMAGICK_DYN="<imagemagick_installation_dir>/lib" -DIMAGEMAGICK_EXE="<imagemagick_installation_dir>/bin/convert" -DIMAGEMAGICK_CODERS="<imagemagick_installation_dir>/modules-Q16HDRI/coders" -DIMAGEMAGICK_CONFIG="<imagemagick_installation_dir>/config-Q16HDRI" -DACTIVEMQ_URL=failover:(tcp://server:61616)?timeout=3000 -jar <path_to_tranform-core-aio-jar>/alfresco-transform-core-aio-boot-x.y.z.jar
java -DPDFRENDERER_EXE="/usr/local/alfresco-community70/alfresco-pdf-renderer/alfresco-pdf-renderer" \
-DLIBREOFFICE_HOME="/usr/local/alfresco-community70/libreoffice" \
-DIMAGEMAGICK_ROOT="/usr/local/alfresco-community70/imagemagick" \
-DIMAGEMAGICK_DYN="/usr/local/alfresco-community70/imagemagick" \
-DIMAGEMAGICK_EXE="/usr/local/alfresco-community70/imagemagick/convert" \
-DIMAGEMAGICK_CODERS="/usr/local/alfresco-community70/imagemagick/modules-Q16HDRI/coders" \
-DIMAGEMAGICK_CONFIG="/usr/local/alfresco-community70/imagemagick/config-Q16HDRI" \
-DACTIVEMQ_URL=failover:(tcp://localhost:61616)?timeout=3000 \
-jar /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar
- Copy the downloaded script file to ''/usr/local/alfresco-community70" directory:
$ sudo cp /home/centos/Downloads/alfresco7-solr-localtransform-dist-setup/linux-platform/alfresco-community70/localTransformationService.sh /usr/local/alfresco-community70/ $ sudo chgrp Alfresco /usr/local/alfresco-community70/localTransformationService.sh $ sudo chmod 755 /usr/local/alfresco-community70/localTransformationService.sh
- To start/stop local transformation service, use following commands:
$ sudo -u alfresco /usr/local/alfresco-community70/localTransformationService.sh start $ sudo -u alfresco /usr/local/alfresco-community70/localTransformationService.sh stop
Some useful posts pertaining to transformation service for you to refer:
You can also create a custom t-engine as well, learn about the detailed steps here:
- Creating-a-t-engine: https://github.com/Alfresco/acs-packaging/blob/master/docs/creating-a-t-engine.md
- Developing-a-new-t-engine: https://docs.alfresco.com/content-services/latest/develop/repo-ext-points/content-transformers-renditions/#developing-a-new-t-engine
Update alfresco-global.properties to add other misc. properties:
- Add property for email notification on invite, it is by default disabled.
notification.email.siteinvite=false
- Add the license location property.
### License location ### dir.license.external=/usr/local/alfresco-community70
- Add following properties related to security, smart folder and JMX. All values are default out-of-the-box
security.anyDenyDenies=false smart.folders.enabled=false alfresco.jmx.connector.enabled=false
- Enable logging so that you can configure any custom loggers or change/update log levels (Optional)
- Go to /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/ folder and rename “custom-log4j.properties.sample” to “custom-log4j.properties”
- You can change the log levels as per your need.
Apply amps to alfresco.war and share.war:
- Mandatory Amps:
- “alfresco-share-services.amp” amp is mandatory for alfresco.war
Note: This amp installation is mandatory otherwise several functionalities including share search may not work. And you will also see following warning when you login to share: Alfresco is running without Share Services. See your System Administrator for more details
- Optional Amps: As part of this installation, we will be installing some optional amps which will be useful for admins/developers that can help in debugging and administration. In a previous step above we downloaded the amps and copied to appropriate directories.
- support-tools-repo-1.1.0.0-amp.amp -> A module that provides utilities for developers and administrators via alfresco admin console.
- support-tools-share-1.1.0.0-amp.amp -> A module that provides utilities for developers and administrators via share admin console.
For more details visit:
- javascript-console-repo-0.7.3.amp -> A module that provides ability for developers and administrators to execute JavaScript code.
- javascript-console-share-0.7.3.amp -> A module that provides ability for developers and administrators to execute JavaScript code.
- Execute 'apply_amps.sh' script to apply amps, it will install amps copied under /usr/local/alfresco-community70/amps and /usr/local/alfresco-community70/amps_share directories to alfresco.war and share.war:
$ sudo $ALF_HOME/bin/apply_amps.sh
OR $ sudo /usr/local/alfresco-community70/bin/apply_amps.sh
- You would see following output as result of executing 'apply_amps.sh':
Module 'alfresco-share-services' installed in '/usr/local/alfresco-community70/tomcat/webapps/alfresco.war' - Title: Alfresco Share Services AMP - Version: 7.0.0 - Install Date: Thu June 18 20:03:49 EDT 2021 - Description: Module to be applied to alfresco.war, containing APIs for Alfresco Share Module 'ootbee-support-tools-repo' installed in '/usr/local/alfresco-community70/tomcat/webapps/alfresco.war' - Title: OOTBee Support Tools - Repository Module - Version: 1.1.0.0.9999999999 - Install Date: Thu Jun 18 20:03:48 EDT 2021
- Description: Addon to enhance the Repository and Share Admin Console/Tools with new tools and make tools previously exclusive to the Enterprise Edition addon Alfresco Support Tools available in Community Edition Module 'de.fme.alfresco.JavascriptConsole-repo' installed in '/usr/local/alfresco-community70/tomcat/webapps/alfresco.war' - Title: Javascript Console Alfresco Platform/Repository JAR Module - Version: 0.7.3 - Install Date: Thu Jun 18 20:03:46 EDT 2021
- Description: Adminstration console module to execute arbitrary javascript code. Module 'support-tools-share' installed in '/usr/local/alfresco-community70/tomcat/webapps/share.war' - Title: OOTBee Support Tools - Share Module - Version: 1.1.0.0.9999999999 - Install Date: Thu Jun 18 20:03:55 EDT 2021
- Description: Addon to enhance the Repository and Share Admin Console/Tools with new tools and make tools previously exclusive to the Enterprise Edition addon Alfresco Support Tools available in Community Edition Module 'de.fme.alfresco.JavascriptConsole-share' installed in '/usr/local/alfresco-community70/tomcat/webapps/share.war' - Title: Javascript Console Alfresco Share JAR Module - Version: 0.7.3 - Install Date: Thu Jun 18 20:03:53 EDT 2021
- Description: Adminstration console module to execute arbitrary javascript code. About to clean out /usr/local/alfresco-community70/tomcat/webapps/alfresco and share directories and temporary files... Press control-c to stop this script . . . Press any other key to continue . . . Cleaning temporary Alfresco files from Tomcat...
- After amps are install, you can choose to remove the backup files created by apply_amps.sh tool. Make sure the file permissions are fixed before restarting the tomcat.
- When amps will be install, it may end up creating files with root user (as we would be using sudo) so make sure permissions are fixed back, Or install the amps using the 'alfresco' user mode (sudo -u alfresco). Update the file permissions for '/usr/local/alfresco-community70/tomcat/webapps/*.war' files:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community70/tomcat/webapps/*.war $ sudo chmod -R 775 /usr/local/alfresco-community70/tomcat/webapps/*.war
- Make sure you update the "repository-url" to point to the alfresco host and port, in case you are setting up alfresco and share on different servers. Default values are "localhost" and "8080". We are setting up both ACS and Share on same host so we will leave it default.
<!-- If set, will present a WebDAV link for the current item on the Document and Folder details pages. Also used to generate the "View in Alfresco Explorer" action for folders. --> <repository-url>http://localhost:8080/alfresco</repository-url>
- Make sure you update the share "Remote" configuration to point to the alfresco host and port, in case you are setting up alfresco and share on different servers. Default values are "localhost" and "8080". We are setting up both ACS and Share on same host so we will leave it default.
<config evaluator="string-compare" condition="Remote"> <remote> <endpoint> <id>alfresco-noauth</id> <name>Alfresco - unauthenticated access</name> <description>Access to Alfresco Repository WebScripts that do not require authentication</description> <connector-id>alfresco</connector-id> <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url> <identity>none</identity> </endpoint> <endpoint> <id>alfresco</id> <name>Alfresco - user access</name> <description>Access to Alfresco Repository WebScripts that require user authentication</description> <connector-id>alfresco</connector-id> <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url> <identity>user</identity> </endpoint> <endpoint> <id>alfresco-feed</id> <name>Alfresco Feed</name> <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description> <connector-id>http</connector-id> <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url> <basic-auth>true</basic-auth> <identity>user</identity> </endpoint> <endpoint> <id>alfresco-api</id> <parent-id>alfresco</parent-id> <name>Alfresco Public API - user access</name> <description>Access to Alfresco Repository Public API that require user authentication. This makes use of the authentication that is provided by parent 'alfresco' endpoint.</description> <connector-id>alfresco</connector-id> <endpoint-url>http://localhost:8080/alfresco/api</endpoint-url> <identity>user</identity> </endpoint> </remote> </config>
- There is a known issue with share where user search doesn't work. For more info see these issues (The issue still persist in Share 7):
- Find the <show-authorization-status>true</show-authorization-status> tag and change the value to 'false', in the config having condition as "users".
i.e. <show-authorization-status>false</show-authorization-status>
$ sudo sed -i 's@<show-authorization-status>true</show-authorization-status>@<show-authorization-status>false</show-authorization-status>@' \ /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
- If the config not present and you can't find the '<show-authorization-status>' element then add the following config and keep the value for '<show-authorization-status>' as 'false'. Update /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml, Add below given config where <show-authorization-status> value should be false.
$ sudo vim /usr/local/alfresco-community70/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
<config evaluator="string-compare" condition="Users" replace="true"> <users> <!-- minimum length for username and password --> <username-min-length>2</username-min-length> <password-min-length>3</password-min-length> <!-- Default value is 'true', setting it to 'false' to fix the user search issue. --> <show-authorization-status>false</show-authorization-status> </users> <!-- This enables/disables the Add External Users Panel on the Add Users page. --> <enable-external-users-panel>false</enable-external-users-panel> </config>
Setup and Configure ASS (Alfresco Search Services):
- Unzip the “alfresco-search-services-2.0.1.zip” package.
$ sudo unzip /home/centos/Downloads/alfresco-search-services-2.0.1.zip -d /home/centos/Downloads/alfresco-search-services-2.0.1
- Copy the extracted folder “alfresco-search-services” to “/usr/local/alfresco-search-services/”
$ sudo cp -R /home/centos/Downloads/alfresco-search-services-2.0.1/alfresco-search-services/* /usr/local/alfresco-search-services/
- Update the permissions, we will use the user and group that we created initially for search services:
$ sudo chown -R solr:Solr /usr/local/alfresco-search-services
$ sudo chmod -R 755 /usr/local/alfresco-search-services
$ sudo chmod -R 775 /usr/local/alfresco-search-services/logs
$ sudo chmod -R 775 /usr/local/alfresco-search-services/solrhome
- Open “/usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties” and add the following configuration properties:
$ sudo vim /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
solr.host=localhost solr.port=8983 solr.secureComms=none #Possible values are: none, https, For ACS7.0, ACS7.1 or below ONLY solr.base.url=/solr index.subsystem.name=solr6
Note: We are setting up alfresco search services (solr6) without SSL, hence using non SSL port and setting secureComms property as none. "none" is only applicable to ACS7.1 or below. For ACS7.2 onwards this mode is deprecated and you have to enable secret mode. See section given below.
- [For ACS7.2 Only] Open “/usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties” and add the following configuration properties:
$ sudo vim /usr/local/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
solr.host=localhost solr.port=8983 #secret, https -- For ACS7.2 onwards solr.secureComms=secret solr.sharedSecret=secret # A password/secret string, here I am keeping it as 'secret' solr.base.url=/solr index.subsystem.name=solr6
Note: ACS7.2 onwards solr.secureComms="none" and alfresco.secureComms="none" no longer works (Its deprecated). You need to configure the "secret" mode. Check this doc for more details. You must be using ASS 2.0.2.x and later version for 'secret' based communication when using ACS 7.2.x and later.
- We are enabling the multi language search support, Its optional if you wish to enable it. By default it is disabled. Open and edit “/usr/local/alfresco-search-services/solrhome/conf/shared.properties” and update following:
$ sudo vim /usr/local/alfresco-search-services/solrhome/conf/shared.properties
alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext
- We are enabling search suggestions for some properties, it is disabled by default. This feature is optional if you wish to enable it. You can also add additional properties down the line. Open and edit “/usr/local/alfresco-search-services/solrhome/conf/shared.properties” and update following:
$ sudo vim /usr/local/alfresco-search-services/solrhome/conf/shared.properties
alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content
More details on shared.properties can be found here: https://docs.alfresco.com/search-community/concepts/solr-shared-properties.html
- If you setup search services on a different or remote machine, you would need to set the SOLR_SOLR_HOST, SOLR_SOLR_PORT, SOLR_SOLR_BASEURL, SOLR_ALFRESCO_HOST, SOLR_ALFRESCO_PORT and SOLR_ALFRESCO_BASEURL environment variables. This is optional but we will keep the mapping for future reference.
- We are setting up without SSL, so set this variable SOLR_ALFRESCO_SECURECOMMS to none (Only if you are installing ACS7.1.x or ACS7.0.x, It is not supported for ACS7.2 onwards. Check this doc for more details). It is mandatory as default value is https. Open and edit “/usr/local/alfresco-search-services/solr.in.sh” file and add following at the end of the file:
$ sudo vim /usr/local/alfresco-search-services/solr.in.sh
SOLR_SOLR_HOST=localhost SOLR_SOLR_PORT=8983 SOLR_SOLR_BASEURL=/solr SOLR_ALFRESCO_HOST=localhost SOLR_ALFRESCO_PORT=8080 SOLR_ALFRESCO_BASEURL=/alfresco #Since we are setting up with no SSL, this property need to be set to none. Default is https. For ACS7.0, ACS7.1 or below ONLY
SOLR_ALFRESCO_SECURECOMMS=none
- Note [For ACS7.2 Only] - If you are installing ACS7.2, make sure to use "secret" mode. http only (alfresco.secureComms=none) are no longer supported for ACS7.2 onwards. Check this doc for more details. We are setting up without SSL, so set this variable SOLR_ALFRESCO_SECURECOMMS to "secret". It is mandatory as default value is https. Open and edit “/usr/local/alfresco-search-services/solr.in.sh” file and add following at the end of the file:
$ sudo vim /usr/local/alfresco-search-services/solr.in.sh
SOLR_SOLR_HOST=localhost SOLR_SOLR_PORT=8983 SOLR_SOLR_BASEURL=/solr SOLR_ALFRESCO_HOST=localhost SOLR_ALFRESCO_PORT=8080 SOLR_ALFRESCO_BASEURL=/alfresco #Since we are setting up with no SSL, this property need to be set to secret. Default is https. For ACS7.2 onwards
#ACS72 Shared secret [Start] ############## #export JAVA_TOOL_OPTIONS="-Dalfresco.secureComms.secret=secret" ############ OR Instead of JAVA_TOOL_OPTIONS, you can also export SOLR_OPTS , example below. Make sure you dont export both### export SOLR_OPTS="-Dalfresco.secureComms.secret=secret" #ACS72 Shared secret [End] ############## SOLR_ALFRESCO_SECURECOMMS=secret
- You can also set SOLR_HOME variable in solr.in.sh (if you see error like ERROR: Solr home directory /usr/local/alfresco-search-services must contain solr.xml, then this setting is must)
SOLR_HOME=/usr/local/alfresco-search-services/solrhome
- Alternatively you can set the properties in “/usr/local/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties” file as well before cores are created. If you have both alfresco and archive cores already created use the environment variable based approach.
$ sudo vim /usr/local/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties
alfresco.secureComms=none
- Note [For ACS7.2 Only] - If you are installing ACS7.2, make sure to use "secret" mode. http only (alfresco.secureComms=none) are no longer supported for ACS7.2 onwards. Refer below settings if you are installing ACS7.2. Here is solrcore.properties for reference. You must be using ASS 2.0.2.x and later version for 'secret' based communication.
$ sudo vim /usr/local/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties
alfresco.secureComms=secret
- [For ACS7.2 Only] If you have previously started the solr and solr cores "alfresco" and "archive" are created already then update the following files with below given properties. You must be using ASS 2.0.2.x and later version for 'secret' based communication when using ACS 7.2.x and later.
$ sudo vim /usr/local/alfresco-search-services/solrhome/alfresco/conf/solrcore.properties $ sudo vim /usr/local/alfresco-search-services/solrhome/archive/conf/solrcore.properties
alfresco.secureComms=secret
For all the externalized search service configurations (environment variables), visit: https://docs.alfresco.com/search-community/concepts/external-properties-solr.html
- Starting and stopping alfresco search service instructions.
Starting ASS:
sudo -u solr $SOLR_HOME/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
The command line parameter, -a passes additional JVM parameters, e.g., system properties using -D.
Note that, -Dcreate.alfresco.defaults=alfresco,archive command automatically creates the alfresco and archive cores. So you need to pass this param only on first/initial startup of solr in order to allow cores being created and configured.
Once Search Services is up and running, you should see a message similar to the following:
Startup message:
Waiting up to 180 seconds to see Solr running on port 8983 [\] Started Solr server on port 8983 (pid=443218). Happy searching!
Stopping ASS:
sudo -u solr $SOLR_HOME/solr/bin/solr stop -p 8983 Or sudo -u solr $SOLR_HOME/solr/bin/solr stop -all
- Configure solr log, The logs are stored in the /usr/local/alfresco-search-services/logs/solr.log file, by default. This can be configured in solr.in.sh using SOLR_LOGS_DIR. This is optional setup. We are keeping default settings
SOLR_LOGS_DIR=../../logs LOG4J_PROPS=$SOLR_LOGS_DIR/log4j.properties
- We will create a system service for solr
$ sudo vim /etc/systemd/system/solr.service
# Systemd unit file for solr6 [Unit] Description=Alfresco search service After=syslog.target network.target [Service] Type=forking Restart=always Environment=JAVA_HOME=/usr/lib/jvm/jre ExecStart=/usr/local/alfresco-search-services/solr/bin/solr start ExecStop=/usr/local/alfresco-search-services/solr/bin/solr stop -all User=solr Group=Solr [Install] WantedBy=multi-user.target
- Reload demons
$ sudo systemctl daemon-reload
- Start and enable solr to automatically start at boot time
$ sudo systemctl start solr
$ sudo systemctl enable solr
- To check status whether solr service is running or not, use below given command:
$ sudo systemctl status solr
- We will open following ports for alfresco and share access:
- 8983 --> for alfresco and share access.
$ sudo firewall-cmd --zone=public --permanent --add-port=8983/tcp $ sudo firewall-cmd --reload
- Verify the SOLR Admin UI. Use the URL below to launch SOLR Admin UI and validate the status and cores:
http://localhost:8983/solr http://localhost:8983/solr/#/alfresco --> To check alfresco core status
- [For ACS7.2 Only] One of the major changes that has been done since ACS7.2 and ASS 2.x is that, solr.secureComms=none is no longer supported. Only "secret" or "https" are supported. You can take a look at this java class as well: org.alfresco.solr.security.SecretSharedAuthPlugin
- You can also check this config found under "<InstallPath>/alfresco-search-services/solrhome/security.json", e.g.: "/usr/local/alfresco-search-services/solrhome/security.json":
{ "authentication" : { "class": "org.alfresco.solr.security.SecretSharedAuthPlugin" } }
- [For ACS7.2 Only] To verify the Solr Admin UI when using secret mode. Use the URL below to launch SOLR Admin UI and validate the status and cores, Solr shared secret mode doesn't include authentication by default, but it will require to add the shared secret word ("secret" we have used above) in HTTP Header requests using by default X-Alfresco-Search-Secret property. Accessing SOLR Web Console requires using a Browser plugin to add this header to the HTTP Request.
http://localhost:8983/solr (Pass X-Alfresco-Search-Secret http header with shared secret value)
- You will see following warning when you try to access the solr admin console without the shared secret header.
- You can use the modheader browser extension to pass the header info, for example:
Note: You must be using ASS 2.0.2.x and later version for 'secret' based communication when using ACS 7.2.x and later.
Now we are done with all the setup and config changes. Here are full “alfresco-global.properties”, “custom-log4j.properties”, “shared.properties” and “solr.in.sh” files for reference:
############################### ## Common Alfresco Properties # ############################### dir.root=/usr/local/alfresco-community70/alf_data dir.contentstore=${dir.root}/contentstore dir.contentstore.deleted=${dir.root}/contentstore.deleted dir.keystore=/usr/local/alfresco-community70/tomcat/shared/classes/alfresco/extension/keystore # # URL Generation Parameters (The ${localname} token is replaced by the local server name) #------------- alfresco.context=alfresco alfresco.host=${localname} alfresco.port=8080 alfresco.protocol=http share.context=share share.host=${localname} share.port=8080 share.protocol=http ### database connection properties ### db.driver=org.postgresql.Driver db.username=alfresco db.password=alfresco db.name=alfresco db.url=jdbc:postgresql://localhost:5432/${db.name} # Note: your database must also be able to accept at least this many connections. Please see your database documentation for instructions on how to configure this. db.pool.max=275 db.pool.validate.query=SELECT 1 # The server mode. Set value here # UNKNOWN | TEST | BACKUP | PRODUCTION system.serverMode=UNKNOWN ### RMI registry port for JMX ### alfresco.rmi.services.port=50500 # Default value of alfresco.rmi.services.host is 0.0.0.0 which means 'listen on all adapters'. # This allows connections to JMX both remotely and locally. alfresco.rmi.services.host=0.0.0.0 # # # Assign individual ports for each service for best performance # or run several services on the same port. You can even run everything on 50500 if needed. # Select 0 to use a random unused port. #monitor.rmi.service.port=50508 ### E-mail site invitation setting ### notification.email.siteinvite=false ### License location ### dir.license.external=/usr/local/alfresco-community70 ### Allow extended ResultSet processing security.anyDenyDenies=false ### Smart Folders Config Properties ### smart.folders.enabled=false ### Remote JMX (Default: disabled) ### alfresco.jmx.connector.enabled=false ## AMQ And Transformation services localTransform.core-aio.url=http://localhost:8090/ local.transform.service.enabled=true messaging.broker.url=tcp://localhost:61616 messaging.subsystem.autoStart=true #If you have setup username and password for AMQ, then set the below properties. In my case i have kept default admin/admin messaging.broker.username=admin messaging.broker.password=admin ################ Solr Search service configurations ############### # # Index Recovery Mode #------------- #index.recovery.mode=AUTO # Set this property unless you have explicitly chosen to expose some repository APIs without authentication solr.host=localhost solr.port=8983 #none, https -- For ACS7.0, ACS7.1 or Below solr.secureComms=none #secret, https -- For ACS7.2 onwards, comment above property and enable below two properties #solr.secureComms=secret #solr.sharedSecret=secret solr.base.url=/solr index.subsystem.name=solr6
#Tranformer specific logs log4j.logger.org.alfresco.repo.content.transform.TransformerDebug=info log4j.logger.org.alfresco.util.exec.RuntimeExecBootstrapBean=info log4j.logger.org.alfresco.util.exec.RuntimeExec=info #ScriptLogger log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug #Log for email executer log4j.logger.org.alfresco.repo.action.executer.MailActionExecuter=debug #Transaction specific logs log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=INFO #Solr specific logs log4j.logger.org.alfresco.solr.query.AbstractQParser=DEBUG log4j.logger.org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient=DEBUG #Metadata extractor log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter=DEBUG log4j.logger.org.alfresco.repo.content.metadata.MetadataExtracterRegistry=DEBUG #Thumbnail logs log4j.logger.org.alfresco.repo.thumbnail=DEBUG # FTP server debugging log4j.logger.org.alfresco.ftp.protocol=debug log4j.logger.org.alfresco.ftp.server=debug
# Shared Properties file #Host details an external client would use to connect to Solr solr.host=localhost #If not set then solr.port will be the jetty.port #solr.port=8983 solr.baseurl=/solr # Properties treated as identifiers when indexed alfresco.identifier.property.0={http://www.alfresco.org/model/content/1.0}creator alfresco.identifier.property.1={http://www.alfresco.org/model/content/1.0}modifier alfresco.identifier.property.2={http://www.alfresco.org/model/content/1.0}userName alfresco.identifier.property.3={http://www.alfresco.org/model/content/1.0}authorityName alfresco.identifier.property.4={http://www.alfresco.org/model/content/1.0}lockOwner # Suggestable Properties alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content # Data types that support cross locale/word splitting/token patterns if tokenised alfresco.cross.locale.property.0={http://www.alfresco.org/model/content/1.0}name alfresco.cross.locale.property.1={http://www.alfresco.org/model/content/1.0}lockOwner # Data types that support cross locale/word splitting/token patterns if tokenised alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext alfresco.model.tracker.cron=0/10 * * * * ? * # Whether path queries are enabled. alfresco.cascade.tracker.enabled=true
SOLR_JAVA_MEM="-Xms2g -Xmx2g" SOLR_LOGS_DIR=../../logs LOG4J_PROPS=$SOLR_LOGS_DIR/log4j.properties SOLR_SOLR_HOST=localhost SOLR_SOLR_PORT=8983 SOLR_SOLR_BASEURL=/solr SOLR_ALFRESCO_HOST=localhost SOLR_ALFRESCO_PORT=8080 SOLR_ALFRESCO_BASEURL=/alfresco #Since we are setting up with no SSL, this property need to be set to none. Default is https. ACS7.1 or below only SOLR_ALFRESCO_SECURECOMMS=none #Since we are setting up with no SSL, this property need to be set to 'secret'. Default is https. ACS7.2 onwards #SOLR_ALFRESCO_SECURECOMMS=secret #ACS72 Shared secret [Start] ############## #export JAVA_TOOL_OPTIONS="-Dalfresco.secureComms.secret=secret" ############ OR Instead of JAVA_TOOL_OPTIONS, you can also export SOLR_OPTS , example below. Make sure you dont export both### #export SOLR_OPTS="-Dalfresco.secureComms.secret=secret" #ACS72 Shared secret [End] ##############
Start and test:
There are three services that we need to start one by one in order:
- Start AMQ
- To start AMQ, you can use the following command:
$ sudo systemctl start activemq
- Start LocalTransformationService
- To start LocalTransformationService, you can use following command or use this script:
java -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80 -DPDFRENDERER_EXE="/usr/local/alfresco-community70/alfresco-pdf-renderer/alfresco-pdf-renderer" -DLIBREOFFICE_HOME="/usr/local/alfresco-community70/libreoffice" -DIMAGEMAGICK_ROOT="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_DYN="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_EXE="/usr/local/alfresco-community70/imagemagick/convert" -DIMAGEMAGICK_CODERS="/usr/local/alfresco-community70/imagemagick/modules-Q16HDRI/coders" -DIMAGEMAGICK_CONFIG="/usr/local/alfresco-community70/imagemagick/config-Q16HDRI" -DACTIVEMQ_URL="failover:(tcp://localhost:61616)?timeout=3000" -jar /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar
Note: You can access "http://localhost:8090" URL to check the app status and run transform tests as well. See transformation service setup above for reference.
- Start DB
- To start DB, you can use the following command:
$ sudo systemctl start postgresql-13.service
- Start Alfresco
- To start Alfresco, you can use the following command:
$ sudo systemctl start tomcat
- Start ASS
- To start ASS (solr6), use the following command by navigating to “/usr/local/alfresco-search-services/solr/bin” folder via command prompt:
- Initial start only: sudo -u solr $SOLR_HOME/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
- Consecutive start command: sudo systemctl start solr
Note: See the search service configuration section for more details.
- Copy this script to '/usr/local/alfresco-community70' directory and set the appropriate permissions.
$ sudo cp /home/centos/Downloads/alfresco7-solr-localtransform-dist-setup/linux-platform/alfresco-community70/start.sh /usr/local/alfresco-community70/ $ sudo chgrp Alfresco /usr/local/alfresco-community70/start.sh $ sudo chmod 755 /usr/local/alfresco-community70/start.sh
#!/bin/bash #Order of operation ## - Start AMQ ## - Start LocalTransformationService ## - Start DB ## - Start ACS ## - Start SOLR printf "\n------------------------------ Starting services ------------------------- \n" #User can pass ALF_HOME path. Defaults to "/usr/local/alfresco-community70". export ALF_HOME=${1:-"/usr/local/alfresco-community70"} #User can pass SOLR_HOME path. Defaults to "/usr/local/alfresco-search-services". export SOLR_HOME=${2:-"/usr/local/alfresco-search-services"} export CATALINA_HOME=$ALF_HOME/tomcat export CATALINA_TMPDIR=$CATALINA_HOME/temp export JRE_HOME=$JAVA_HOME # Check if JRE_HOME is set in path variable or not, else set default path. It is mandatory for acs to start if [ -z "$JRE_HOME" ] then echo "JRE_HOME could not be found, setting the default..." export JRE_HOME="/usr/lib/jvm/java-11" fi #Export JRE_HOME to PATH export PATH=$PATH:$JRE_HOME/bin # Check if ALF_HOME is set in path variable or not, we may need it for executing shell scripts as needed. if [[ "$PATH" == *"$ALF_HOME"* ]]; then echo "$ALF_HOME already set in PATH variable." else export PATH=$PATH:$ALF_HOME fi # Check if SOLR_HOME is set in path variable or not, we may need it for executing shell scripts as needed. if [[ "$PATH" == *"$SOLR_HOME"* ]]; then echo "$SOLR_HOME already set in PATH variable." else export PATH=$PATH:$SOLR_HOME fi #User need to pass this param on initial startup in order to create the cores. if core values are not passed then default 'alfresco and archive' will be used. SOLR_CORES=${3:-"alfresco,archive"} #Set the exiftool path in PATH variable. export PATH=$PATH:$ALF_HOME/exiftool JAVA_OPTS="-Xms3G -Xmx4G -Xss1024k" JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC -XX:+UseStringDeduplication" JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom" JAVA_OPTS="${JAVA_OPTS} -Djava.io.tmpdir=${CATALINA_TMPDIR}" JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" JAVA_OPTS="${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote=true" JAVA_OPTS="${JAVA_OPTS} -server" echo "-------------------------------------------" echo CATALINA_HOME: $CATALINA_HOME echo CATALINA_TMPDIR: $CATALINA_TMPDIR echo JRE_HOME: $JRE_HOME echo JAVA_OPTS: $JAVA_OPTS echo SOLR_HOME: $SOLR_HOME echo ALF_HOME: $ALF_HOME echo PATH: $PATH echo "-------------------------------------------" StartAMQ() { printf "\nStarting ActiveMQ... \n" sudo systemctl start activemq if [[ $? = 0 ]] then echo "activemq service started successfully." else echo "Failed to start activemq service!" exit 1 fi } StartLocalTransformService() { printf "\nInvoking local transformation service startup script... \n" # Check for more info: https://docs.alfresco.com/transform-service/latest/install/#install-with-zip sudo -u alfresco $ALF_HOME/localTransformationService.sh start if [[ $? = 0 ]] then echo "localTransformService script executed successfully." else echo "Failed to execute localTransformService script!" exit 1 fi } StartDB() { printf "\nStarting Postgresql... \n" sudo systemctl start postgresql-13.service if [[ $? = 0 ]] then echo "postgresql-13.service started successfully." else echo "Failed to start postgresql-13.service!" exit 1 fi } StartACS() { printf "\nStarting Alfresco Tomcat... \n" sudo systemctl start tomcat if [[ $? = 0 ]] then echo "tomcat service started successfully." else echo "Failed to start tomcat service!" exit 1 fi } StartSOLR() { #flag for creating the cores on first startup INITIAL=false #Setting the context to solrhome cd $SOLR_HOME/solrhome for CORE in ${SOLR_CORES//,/ } do echo "Checking availability of the core: $CORE" if [ -d "$CORE" ]; then echo "'$CORE' found.." INITIAL=false else echo "Warning: '$CORE' NOT found." INITIAL=true fi done #Going back to original context cd $ALF_HOME if [[ $INITIAL == true ]]; then printf "\nStarting solr6 with initial mode, core '$SOLR_CORES' will be created... \n" sudo -u solr $SOLR_HOME/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive" else printf "\nStarting solr6... \n" sudo systemctl start solr if [[ $? = 0 ]] then echo "solr6 service started successfully." else echo "Failed to start solr6 service!" exit 1 fi fi } ################################### StartAMQ StartLocalTransformService StartDB StartACS StartSOLR ###################################
Note: If you see any warning in logs such as "org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/alfresco/templates/org/alfresco/dashboard.ftl] to the cache for web application [/share] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache" or "org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/share] - consider increasing the maximum size of the cache. After eviction approximately [9,411] KB of data remained in the cache." then you can increase the resource case of disable resource caching. Follow the below given steps if you see these warnings:
- By default value for resource caching is 10240 kbytes, even when not added to /usr/local/alfresco-community70/tomcat/conf/context.xml. so either increase it until you stop seeing the warning or disable it completely.
- Stop tomcat and make sure to cleanup tomcat 'work' (/usr/local/alfresco-community70/tomcat/work/) directory before restarting the server.
- Open and edit /usr/local/alfresco-community70/tomcat/conf/context.xml
$ sudo rm -rf /usr/local/alfresco-community70/tomcat/work/Catalina/* $ sudo vim /usr/local/alfresco-community70/tomcat/conf/context.xml
<Resources cacheMaxSize="100000" cachingAllowed="true"/>
Or disable the caching
<Resources cachingAllowed="false" />
- The above configuration is default for tomcat but since for 'alfresco' and 'share' webapps we have cross contexts under '$ALF_HOME\tomcat\conf\Catalina\localhost\ ' directory.
- Make the above given configuration changes in "alfresco.xml" and "share.xml" clean the tomcat 'work' (/usr/local/alfresco-community70/tomcat/work/Catalina) directory before restarting the server.
<Context crossContext="true">
<Resources cachingAllowed="true" cacheMaxSize="100000">
<PostResources base="${catalina.base}/../modules/platform"
className="org.apache.catalina.webresources.DirResourceSet"
webAppMount="/WEB-INF/lib"/>
</Resources>
</Context>
<Context crossContext="true">
<Resources cachingAllowed="true" cacheMaxSize="100000">
<PostResources base="${catalina.base}/../modules/share"
className="org.apache.catalina.webresources.DirResourceSet"
webAppMount="/WEB-INF/lib"/>
</Resources>
</Context>
Stopping:
There are three services that we need to stop one by one in order:
- Stop LocalTransformationService
- To stop LocalTransformationService, you can use following command or use this script:
$ sudo kill -9 $(lsof -t -i:8090)
Note: See transformation service setup above for reference.
- Stop Alfresco
- To stop Alfresco, you can use the following command:
$ sudo systemctl stop tomcat
- Stop DB
- To stop DB, you can use following command:
$ sudo systemctl stop postgresql-13.service
- Stop ASS (solr6)
- To stop ASS, use the following command by navigating to “/usr/local/alfresco-search-services/solr/bin” folder via command prompt:
- sudo -u solr $SOLR_HOME/solr/bin/solr stop -all
- Or sudo -u solr $SOLR_HOME/solr/bin/solr stop -p 8983
Note: See the search service configuration section for more details.
- Stop AMQ
- To stop AMQ, you can use the following command:
$ sudo systemctl stop activemq
I have created a convenience script “stop.sh”, you can use this to stop all services instead of doing one by one.
- Copy this script to '/usr/local/alfresco-community70' directory and set the appropriate permissions.
$ sudo cp /home/centos/Downloads/alfresco7-solr-localtransform-dist-setup/linux-platform/alfresco-community70/stop.sh /usr/local/alfresco-community70/ $ sudo chgrp Alfresco /usr/local/alfresco-community70/stop.sh $ sudo chmod 755 /usr/local/alfresco-community70/stop.sh
#!/bin/bash #Order of operation ## - Stop LocalTransformService ## - Stop ACS ## - Stop DB ## - Stop Solr ## - Stop AMQ printf "\n------------------------------ Stopping services ------------------------- \n" #User can pass ALF_HOME path. Defaults to "/usr/local/alfresco-community70". export ALF_HOME=${1:-"/usr/local/alfresco-community70"} #User can pass SOLR_HOME path. Defaults to "/usr/local/alfresco-search-services". export SOLR_HOME=${2:-"/usr/local/alfresco-search-services"} export CATALINA_HOME=$ALF_HOME/tomcat export CATALINA_TMPDIR=$CATALINA_HOME/temp export JRE_HOME=$JAVA_HOME # Check if JRE_HOME is set in path variable or not, else set default path. It is mandatory for acs to start if [ -z "$JRE_HOME" ] then echo "JRE_HOME could not be found, setting the default..." export JRE_HOME="/usr/lib/jvm/java-11" fi #Export JRE_HOME to PATH export PATH=$PATH:$JRE_HOME/bin # Check if ALF_HOME is set in path variable or not, we may need it for executing shell scripts as needed. if [[ "$PATH" == *"$ALF_HOME"* ]]; then echo "$ALF_HOME already set in PATH variable." else export PATH=$PATH:$ALF_HOME fi # Check if SOLR_HOME is set in path variable or not, we may need it for executing shell scripts as needed. if [[ "$PATH" == *"$SOLR_HOME"* ]]; then echo "$SOLR_HOME already set in PATH variable." else export PATH=$PATH:$SOLR_HOME fi echo "---------------------------------------------" echo CATALINA_HOME: $CATALINA_HOME echo CATALINA_TMPDIR: $CATALINA_TMPDIR echo JRE_HOME: $JRE_HOME echo SOLR_HOME: $SOLR_HOME echo ALF_HOME: $ALF_HOME echo PATH: $PATH echo "---------------------------------------------" StopLocalTransformService() { printf "\nInvoking local transformation service stop script... \n" # Check for more info: https://docs.alfresco.com/transform-service/latest/install/#install-with-zip sudo -u alfresco $ALF_HOME/localTransformationService.sh stop if [[ $? = 0 ]] then echo "localTransformService script executed successfully." else echo "Failed to execute localTransformService script!" exit 1 fi } StopACS() { printf "\nShutting down Alfresco Tomcat... \n" sudo systemctl stop tomcat if [[ $? = 0 ]] then echo "tomcat service stopped successfully." else echo "Failed to stop tomcat service!" exit 1 fi } StopDB() { printf "\nShutting down Postgresql... \n" sudo systemctl stop postgresql-13.service if [[ $? = 0 ]] then echo "postgresql-13.service stopped successfully." else echo "Failed to stop postgresql-13.service!" exit 1 fi } StopSOLR() { printf "\nShutting down solr6... \n" sudo systemctl stop solr if [[ $? = 0 ]] then echo "solr6 service stopped successfully." else echo "Failed to stop solr6 service!" exit 1 fi } StopAMQ() { printf "\nStopping ActiveMQ... \n" sudo systemctl stop activemq if [[ $? = 0 ]] then echo "activemq service stopped successfully." else echo "Failed to stop activemq service!" exit 1 fi } ################################### StopLocalTransformService StopACS StopDB StopSOLR StopAMQ ###################################
Permissions at '/usr/local/alfresco-community70' directory level: drwxr-xr-x. 11 root Alfresco 222 Jun 18 19:55 activemq drwxrwxr-x. 5 root Alfresco 88 Jun 18 19:48 alf_data drwxr-xr-x. 2 root Alfresco 53 Jun 18 16:23 alfresco-pdf-renderer drwxr-xr-x. 2 root Alfresco 140 Jun 18 16:48 amps drwxr-xr-x. 2 root Alfresco 107 Jun 18 12:45 amps_share drwxr-xr-x. 2 root Alfresco 92 Jun 18 20:03 bin drwxr-xr-x. 8 root Alfresco 255 Jun 24 10:05 exiftool drwxr-xr-x. 2 root Alfresco 84 Jun 18 18:05 imagemagick drwxr-xr-x. 2 root Alfresco 163 Jun 18 18:11 libreoffice drwxr-xr-x. 3 root Alfresco 78 Jun 18 17:28 licenses -rwxr-xr-x. 1 root Alfresco 2801 Jun 24 18:15 localTransformationService.sh drwxr-xr-x. 4 root Alfresco 53 Jun 18 12:45 modules -rwxr-xr-x. 1 root Alfresco 3839 Jun 18 17:27 start.sh -rwxr-xr-x. 1 root Alfresco 2428 Jun 18 17:28 stop.sh drwxr-xr-x. 10 root Alfresco 252 Jun 18 20:12 tomcat
Permissions at '/usr/local/alfresco-community70/tomcat' directory level:
drwxr-xr-x. 2 root Alfresco 4096 Jun 18 20:11 bin
-rw-r--r--. 1 root Alfresco 19318 Jun 18 20:11 BUILDING.txt
drwxr-xr-x. 3 root Alfresco 254 Jun 18 18:53 conf
-rw-r--r--. 1 root Alfresco 5408 Jun 18 20:11 CONTRIBUTING.md
drwxr-xr-x. 2 root Alfresco 4096 Jun 18 20:12 lib
-rw-r--r--. 1 root Alfresco 57011 Jun 18 20:11 LICENSE
drwxrwxr-x. 2 root Alfresco 197 Jun 18 17:06 logs
-rw-r--r--. 1 root Alfresco 1726 Jun 18 20:11 NOTICE
-rw-r--r--. 1 root Alfresco 3257 Jun 18 20:11 README.md
-rw-r--r--. 1 root Alfresco 193 Jun 18 20:12 Readme.txt
-rw-r--r--. 1 root Alfresco 7136 Jun 18 20:11 RELEASE-NOTES
-rw-r--r--. 1 root Alfresco 16507 Jun 18 20:11 RUNNING.txt
drwxr-xr-x. 4 root Alfresco 32 Jun 18 20:12 shared
drwxrwxr-x. 5 root Alfresco 165 Jun 18 18:43 temp
drwxrwxr-x. 6 root Alfresco 136 Jun 18 16:12 webapps
drwxrwxr-x. 3 root Alfresco 22 Jun 18 20:56 work
Permissions at '/usr/local/alfresco-community70/tomcat/logs' directory level:
-rw-r-----. 1 alfresco Alfresco 3476532 Jun 18 18:43 catalina.2021-01-29.log
-rw-r-----. 1 alfresco Alfresco 1475688 Jun 18 18:43 catalina.out
-rw-r-----. 1 alfresco Alfresco 0 Jun 18 17:06 host-manager.2021-01-29.log
-rw-r-----. 1 alfresco Alfresco 7187 Jun 18 18:43 localhost.2021-01-29.log
-rw-r-----. 1 alfresco Alfresco 2470863 Jun 18 18:58 localhost_access_log.2021-01-29.txt
-rw-r-----. 1 alfresco Alfresco 0 Jun 18 17:06 manager.2021-01-29.log
Permissions at '/usr/local/alfresco-community70/tomcat/temp' directory level:
drwxr-x---. 4 alfresco Alfresco 12288 Jun 18 18:43 Alfresco
drwxr-x---. 2 alfresco Alfresco 6 Jun 18 19:48 Alfresco-WebScripts
-rwxrwxr-x. 1 alfresco Alfresco 0 Jun 18 20:11 safeToDelete.tmp
-rw-r-----. 1 alfresco Alfresco 5 Jun 18 18:42 tomcat.pid
Permissions at '/usr/local/alfresco-community70/tomcat/webapps' directory level:
drwxr-x---. 11 alfresco Alfresco 209 Jun 18 16:11 alfresco
-rwxrwxr-x. 1 root Alfresco 191675102 Jun 18 20:03 alfresco.war
drwxr-x---. 6 alfresco Alfresco 119 Jun 18 19:49 ROOT
-rwxrwxr-x. 1 root Alfresco 275031 Jun 18 14:28 ROOT.war
drwxr-x---. 16 alfresco Alfresco 4096 Jun 18 16:12 share
-rwxrwxr-x. 1 root Alfresco 76888634 Jun 18 20:03 share.war
drwxr-x---. 4 alfresco Alfresco 54 Jun 18 19:49 _vti_bin
-rwxrwxr-x. 1 root Alfresco 762845 Jun 18 14:28 _vti_bin.war
Permissions at '/usr/local/alfresco-community70/tomcat/work' directory level:
drwxrwxr-x. 3 root Alfresco 23 Jun 25 20:56 Catalina
Permissions at '/usr/local/alfresco-search-services' directory level: drwxr-xr-x. 3 solr solr 23 Jun 17 17:13 contentstore
drwxr-xr-x. 4 solr Solr 72 Jun 17 16:21 licenses
drwxrwxr-x. 3 solr Solr 4096 Jun 17 18:42 logs
-rwxr-xr-x. 1 solr Solr 1328 Jun 17 16:21 README.MD
drwxr-xr-x. 6 solr Solr 159 Jun 17 16:21 solr
drwxrwxr-x. 7 solr Solr 104 Jun 17 17:13 solrhome
-rwxr-xr-x. 1 solr Solr 6764 Jun 17 16:21 solr.in.cmd
-rwxr-xr-x. 1 solr Solr 7520 Jun 18 16:40 solr.in.sh
Permissions at '/usr/local/alfresco-search-services/logs' directory level: drwxr-xr-x. 2 solr Solr 54 Jun 17 18:42 archived
-rwxr-xr-x. 1 solr Solr 1770 Jun 17 16:21 log4j.properties
-rwxr-xr-x. 1 solr Solr 245 Jun 17 16:21 README.txt
-rw-r--r--. 1 solr Solr 1359 Jun 17 18:42 solr-8983-console.log
-rw-r--r--. 1 solr Solr 4130 Jun 17 18:45 solr_gc.log
-rw-r--r--. 1 solr Solr 2882 Jun 17 18:42 solr.log
-rw-r--r--. 1 solr Solr 30629 Jun 17 18:42 solr.log.1
-rw-r--r--. 1 solr Solr 4871 Jun 17 18:29 solr.log.2
Permissions at '/usr/local/alfresco-search-services/solrhome' directory level: drwxr-xr-x. 5 solr solr 79 Jun 17 17:13 alfresco
drwxrwxr-x. 2 solr Solr 4096 Jun 17 17:13 alfrescoModels
drwxr-xr-x. 5 solr solr 79 Jun 17 17:13 archive
drwxrwxr-x. 2 solr Solr 93 Jun 17 16:35 conf
-rwxrwxr-x. 1 solr Solr 151 Jun 17 16:21 solr.xml
drwxrwxr-x. 4 solr Solr 36 Jun 17 16:21 templates
Hyland Alfresco has released ACS7.1.x, and ACS7.2.x. If you want to setup ACS7.1.x/ACS7.2.x community, then download the available versions from below download locations. All the steps outlined above would be pretty much same.
- Download ACS-7.1.x community:
ACS 7.1.1.2 Community
- Download ASS-2.0.2:
ASS 2.0.2.2
- Download ACS-7.2.x community:
ACS 7.2.0 Community
- Download ASS-2.0.3:
ASS 2.0.3
Note: If you are planning to setup ACS-7.1.x/ACS-7.2.x/ACS-7.3.x (Enterprise version) and ASS-2.0.2/ASS-2.0.3/ASS-2.0.6, then download the appropriate distribution packages from Alfresco Support portal. All the steps outlined above will remain pretty much the same.
If you want to setup ACS-7.3.x, complete the prerequisites given below and follow the installation steps. Checkout the release notes here.
1. ACS-7.3.x package (alfresco-content-services-community-distribution-7.3.1)
2. ASS-2.x package (alfresco-search-services-2.0.6)
3. Alfresco Transform Core All-in-one (alfresco-transform-core-aio-2.7.x)
If you would like to upgrade to Transform Core 3.x, check this post: https://hub.alfresco.com/t5/alfresco-content-services-blog/alfresco-7-3-upgrading-to-transform-core-3-0-0/ba-p/315364
4. Java: Oracle jdk-17.0.4 or later/Open JDK 17.0.4 or later
Download OracleJDK 17.0.x: https://download.oracle.com/java/17/archive/jdk-17.0.4.1_linux-x64_bin.rpm
5. Tomcat 9: Tomcat 9.0.74
Download: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.74/bin/apache-tomcat-9.0.74.zip
6. ActiveMQ v5.17: ActiveMQ v5.17.4.
Download: https://archive.apache.org/dist/activemq/5.17.4/apache-activemq-5.17.4-bin.zip
7. DB: PostgreSQL 14.7
Steps to install:
8. ImageMagick v7.1.x: ImageMagick v7.1.0-16
Imagemagick lib dist: https://github.com/Alfresco/imagemagick-build/releases/download/v7.1.0-16/ImageMagick-libs-7.1.0-16.x86_64.rpm
Dependencies: https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
9. Libreoffice: LibreOffice v7.2.5
10. PDF Renderer: alfresco-pdf-renderer v1.1
11. Exif tool v12.x: image-exiftool 12.5
Check the ACS-7.X Supported Platform for more details.
References:
Very nice and detailed blog to setting up new latest version of alfresco env. every step explained well with clear instruction. Thanks @Abhinav for sharing. Keep good work up.
ReplyDeleteThank you Nazakat, hope it is helpful.
Deleteexcellent work!
ReplyDeleteThanks, I appreciate it.
DeleteThis is a real, complete, concise and professional installation guide. THANK YOU SO MUCH for your time and effort putting together so detailed manual. This page should be at the Alfresco website! I already bookmarked your blog as my new Alfresco Reference Installation Guide. It helped me with some installation issues (because the changes in the new version). Best regards!
ReplyDeleteThanks @Calichon, I appreciate it. Glad to hear that post was helpful.
DeleteThanks Abhinav, The instructions are very clear and helpful.
ReplyDeleteThanks, I appreciate it.
DeleteIs it available for Ubuntu? Thanks.
ReplyDeleteFor this post I used centos, but steps should be pretty much the same. Instead of using yum you would be using apt-get.
DeleteThank you very much for all your effort, i finally install a distribution ZIP !
ReplyDeleteI had to add some debug, i you're interested to update, here is what i change :
sudo vim /etc/systemd/system/activemq.service
WorkingDirectory=~/usr/local/alfresco-community70/activemq/data
i had to remove ~
WorkingDirectory=/usr/local/alfresco-community70/activemq/data
i had an error with this command
sudo -u solr $SOLR_HOME/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
it didn't find the solr.xml
I had to add the SOLRHOME directory
sudo vim /usr/local/alfresco-search-services/solr.in.sh
SOLR_HOME=/usr/local/alfresco-search-services/solrhome/
To finish, i had alfresco.log and share.log error on catalina.out
i had to change those files
cd /usr/local/alfresco-community70/
grep -R 'log4j.appender.File.File=' ./
./tomcat/webapps/share/WEB-INF/classes/log4j.properties:log4j.appender.File.File=share.log
./tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties:log4j.appender.File.File=alfresco.log
and i changed the log4j.appender.File.File on both file to these
./tomcat/webapps/share/WEB-INF/classes/log4j.properties:log4j.appender.File.File=logs/share.log
./tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties:log4j.appender.File.File=logs/alfresco.log
By default, the alfresco.war and share.war try to write on tomcat folder (but we need to be root for it)
So now i have alfresco.log and share.log here
/usr/local/alfresco-community70/tomcat/logs/alfresco
Again thank you very much it's perfect like this i can now try to go on https for solr and share.
P.S : I love you !
Hi thanks for suggestions, I really appreciate it. I am glad that these steps were helpful.
DeleteMay i know what was the error you were getting so you had to remove "~" from activemq.service ->
WorkingDirectory=~/usr/local/alfresco-community70/activemq/data
So i can also test and fix the steps.
This is the most detail instruction I can find. Thank you. But I am still have question.
ReplyDeleteI am tasked to install an enterprise edition on a server. I login as myself (with sudo enabled), creating accounts 'alfresco', 'solo' per your instruction. When it comes to setting ALF_HOME, SOLR_HOME, JAVA_HOME environment variable to '.bash_profile' file, which user's .bash_profile ? ALF_HOME to '.bash_profile' of user 'alfresco' ? And SOLR_HOME to user 'soar' ? Or ALF_HOME, SOLR_HOME, JAVA_HOME environment variables to both user 'alfresco' and user 'solr' ?
You create group name 'Alfresco', 'Solr'. My system already has group name 'alfresco' and 'solr' (lower case). Does case of group names matter?
Also, do you have or plan to make an equivalent version using Ansible?
'.bash_profile' of the user which will be starting up the services manually. Checkout the notes:
Delete"This '.bash_profile' file's absolute path is '/home/centos/.bash_profile' since logged in user is 'centos', it can be different in your case based on logged in user. This is needed if you are planning to use the scripts given here: https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#start-stop-test "
If you are planning to setup system service for all services then the updates are not required.
Group name casing doesn't matter as long as you have reference the users and system services to use that. Check all the instances where group is used in system services and permissioning and use accordingly.
Alfresco already has ansible based deployment option for both enterprise and community, checkout here:
https://docs.alfresco.com/content-services/community/install/ansible/
https://docs.alfresco.com/content-services/latest/install/ansible/
Hello @Abhinav Kumar Mishra
ReplyDeleteThank you very much for this guide, it is super detailed and helps you to perform the installation and configuration correctly for me the best guide I found on the internet. Just 2 little things to see if you can help me. I need to configure a NFS server to install the data directory and make a cross server. Then the files are saved in .bin format but the idea we have is that it is saved with the original format that would be possible is more than everything if the servers are down to search for them by the nfs.
Greetings
I would rather suggest to use S3 as contentstore. Checkout this community project: https://github.com/Redpill-Linpro/alfresco-s3-adapter
ReplyDeleteIf you are using enterprise version, check this documentation: https://docs.alfresco.com/aws-s3/4.0/
You can't change how alfresco store the files in contentstore, under the hood there are a lot of code and configurations that depend on this format. If you were to change, it would require a lot of customizations. So the simple answer to this is "no dont do that".
Hello,
ReplyDeleteOnly one piece of information should be added secretRequired=false because its default value is true as long as it is on a trusted network.
Regards
Hi @Juancho, Can you provide more details as to where and why we need to add "secretRequired=false"? What happens if the value is not set if you have faced any issue?
DeleteI assume you are trying to setup proxy web server. Since we are not setting up reverse proxy for this post, it is not required. However, if someone is setting the proxy webserver then your info will be helpful. Here is another reference: https://stackoverflow.com/questions/60552873/tomcat-8-5-51-issues-with-secretrequired-false
DeleteThat's a rare piece of work. So much in detail and well structure. Many congrats.
ReplyDeleteOne issue faced when I run following command to Start LocalTransformationService
===================================================
java -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80 -DPDFRENDERER_EXE="/usr/local/alfresco-community70/alfresco-pdf-renderer/alfresco-pdf-renderer" -DLIBREOFFICE_HOME="/usr/local/alfresco-community70/libreoffice" -DIMAGEMAGICK_ROOT="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_DYN="/usr/local/alfresco-community70/imagemagick" -DIMAGEMAGICK_EXE="/usr/local/alfresco-community70/imagemagick/convert" -DIMAGEMAGICK_CODERS="/usr/local/alfresco-community70/imagemagick/modules-Q16/coders" -DIMAGEMAGICK_CONFIG="/usr/local/alfresco-community70/imagemagick/config-Q16" -DACTIVEMQ_URL="failover:(tcp://localhost:61616)?timeout=3000" -jar /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar
===================================================
I get following error:
2021-11-13 17:38:14.530 INFO 13941 --- [ main] o.a.j.office.ProcessPoolOfficeManager : ProcessManager implementation is LinuxProcessManager
2021-11-13 17:38:14.859 ERROR 13941 --- [ main] o.a.t.e.JodConverterSharedInstance : Unable to start JodConverter library. The following error is shown for informational purposes only.
org.artofsolving.jodconverter.office.OfficeException: failed to start and connect
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:62) ~[alfresco-jodconverter-core-3.0.1.12.jar!/:3.0.1.12]
at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:96) ~[alfresco-jodconverter-core-3.0.1.12.jar!/:3.0.1.12]
....
===================================================
Note that by default ImageMagick 6.9.10-68 Q16 x86_64 2021-10-14 installed on my system.And the folder name "modules-Q16" and "config-Q16" in the command I am running are also right as per my setup.
If you notice the error:
Delete-------------------------------------------------------------------------------------------------
- [ProcessThread-0] o.a.jodconverter.office.OfficeProcess : profile dir '/tmp/.jodconverter_socket_host-127.0.0.1_port-8100' already exists; deleting
2021-11-14 12:45:06.793 ERROR 7371 --- [ProcessThread-0] o.a.jodconverter.office.OfficeProcess : could not delete profileDir: Failed to list contents of /tmp/.jodconverter_socket_host-127.0.0.1_port-8100
2021-11-14 12:45:06.793 INFO 7371 --- [ProcessThread-0] o.a.jodconverter.office.OfficeProcess : Using original OpenOffice command: [/usr/local/alfresco-community70/libreoffice/program/soffice.bin, -accept=socket,host=127.0.0.1,port=8100;urp;, -env:UserInstallation=file:///tmp/.jodconverter_socket_host-127.0.0.1_port-8100, -headless, -nocrashreport, -nodefault, -nofirststartwizard, -nolockcheck, -nologo, -norestore]
2021-11-14 12:45:06.794 INFO 7371 --- [ProcessThread-0] o.a.jodconverter.office.OfficeProcess : starting process with acceptString 'socket,host=127.0.0.1,port=8100,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-8100'
2021-11-14 12:45:06.883 INFO 7371 --- [ProcessThread-0] o.a.jodconverter.office.OfficeProcess : started process; pid = 7413
2021-11-14 12:45:08.283 ERROR 7371 --- [ main] o.a.t.e.JodConverterSharedInstance : Unable to start JodConverter library. The following error is shown for informational purposes only.
org.artofsolving.jodconverter.office.OfficeException: failed to start and connect
-----------------------------------------------------------------------------------------------------
It seems a jodconvertor instance is already running on port 8100 on your vm and when you start the tr service, it also tried to start another instance on same port. Try killing any existing processes running on 8100.
Note that the versions you have mentioned for Imagemagick and Libreoffice is not something tested.
ImageMagick v7.0.1 - https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#download-imagemagick
LibreOffice v6.3.5 - https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#download-libreoffice
Check the support platform documentation here. I would recommend to use what is documented in supported platform official docs.
Thanks, i am glad you found the steps helpful.
DeleteHi Abhinav,
ReplyDeleteIndeed a great guide. Thanks for sharing with us. I tried the steps with ACS 7.1/ ASS 2.0 and all works fine just in the last step got bootstrap failed error for /alfresco when tomcat service started. Pls can you suggest why its getting failed while /share has deployed successfully?
catalina.out:
[Catalina]
23-Nov-2021 08:20:44.436 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.48]
23-Nov-2021 08:20:44.448 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [/usr/local/alfresco71/tomcat/conf/Catalina/localhost/alfresco.xml]
Nov 23, 2021 8:20:59 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Nov 23, 2021 8:20:59 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Nov 23, 2021 8:20:59 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class [org.alfresco.repo.webdav.WebDAVSessionListener]
java.lang.ClassNotFoundException: org.alfresco.repo.webdav.WebDAVSessionListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1407)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:539)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4691)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1388)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
...........
Please check the installation steps carefully and see if you have been missing anything. Also check if alfresco.war is exploading correctly. Make sure right permissions are provided when starting the tomcat.
Deletefirst of all.
ReplyDeleteI congratulate you for an excellent installation.
I followed the instructions to the letter and had no problems.
I just don't know if you could see the issue of why it takes so long to start the ACS.
I did the installation 2 months ago with your excellent manual.
but I see that with the time between more registrations, the startup becomes slower.
I don't want to overwhelm you with the log, but this part is the one that has me confused, if you have time and could check you can see that it takes around 40 minutes to start:
I have also placed these properties in the alfesco-global.properties
cache.node.nodesSharedCache.tx.maxItems=250000
cache.node.nodesSharedCache.maxItems=250000
but it only increments the org.alfresco.cache.node.nodesTransactionalCache is full (250000) part, and then reappears with the amount.
but this part remains the same:
'org.alfresco.cache.node.aspectsTransactionalCache' is full (65000).
'org.alfresco.cache.node.propertiesTransactionalCache' is full (65000).
According to AlfrescoHyland, this cache issue is just a Warning and only the cache issue is supposedly deleted every time the application is restarted, but it is not true or at least it does not apply
2022-03-01 18:13:31,083 INFO [management.subsystems.ChildApplicationContextFactory] [main] Starting 'Synchronization' subsystem, ID: [Synchronization, default]
2022-03-01 18:13:31,191 INFO [management.subsystems.ChildApplicationContextFactory] [main] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete
2022-03-01 18:13:55,077 WARN [cache.node.aspectsTransactionalCache] [main] Transactional update cache 'org.alfresco.cache.node.aspectsTransactionalCache' is full (65000).
2022-03-01 18:13:55,108 WARN [cache.node.propertiesTransactionalCache] [main] Transactional update cache 'org.alfresco.cache.node.propertiesTransactionalCache' is full (65000).
2022-03-01 18:53:26,005 INFO [service.descriptor.DescriptorService] [main] Alfresco JVM - v11.0.14.1+1-LTS; maximum heap size 12288.000MB
I am not sure why it is taking 40 minutes for you unless there is some process blocking the file io. In some cases antivirus's real time scan could slow down the startup. Here is all the properties you can refer: https://github.com/Alfresco/alfresco-community-repo/blob/master/repository/src/main/resources/alfresco/caches.properties#L172
DeleteUsually what's out of the box is enough and is tuned already. I am not very sure why would these warning comes in first place. transactional cache being full means that some code / logic has been loading a high number of elements, which were previously not cached, from the DB within a single transaction. Transactional cache sizes are limited for a reason (to avoid runaway resource consumption and overly expensive cache update processing at commit time), and once exceeded will cause the global shared cache to be cleared instead of updated, to ensure there are no stale data entries.
Axel talks about similar issue https://hub.alfresco.com/t5/alfresco-content-services-forum/cache-node-nodestransactionalcache/m-p/14196/highlight/true#M740, i am quoting - "It is generally NOT a good idea to just increase the maxItems configuration without really understanding the cause, i.e. which piece of code / logic is causing an excessive load of data in a single transaction. Ideally, such cases should be identified and either be rectified via configuration / code change. One example would be a background job processing data which should be configured to use smaller batches"
Hello good afternoon.
ReplyDeleteThank you very much for the contribution, this is great.
Do you think you can help me, in the part of the installation of Alfresco Content Search, it is not raising the application
cannot open "../../solr.log"
I see that the problem is solved by changing the version of java JDK 11 to java 8
but at the moment of changing the version to JAVA 8, the ACS application starts up in port 8983, but it does not give me the web service, I get a 404 error
HTTP ERROR: 404
Problem accessing /solr/. Reason:
Not Found
and in the solr log:
2022-03-16 23:04:58.575 ERROR (main) [ ] o.a.s.s.SolrDispatchFilter Could not start Solr. Check solr/home property and the logs
2022-03-16 23:04:58.610 ERROR (main) [ ] o.a.s.c.SolrCore null:java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:550)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:475)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:428)
at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.apache.solr.core.Config.(Config.java:143)
org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:610)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:529)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:392)
aused by: java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:550)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:475)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:428)
... 70 more
2022-03-16 23:04:58.630 INFO (main) [ ] o.e.j.s.Server Started @2307ms
2022-03-16 23:05:17.882 WARN (qtp717356484-23) [ ] o.e.j.h.HttpParser Illegal character 0x16 in state=START for buffer HeapByteBuffer@65e3a8ae[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x0$
2022-03-16 23:05:17.883 WARN (qtp717356484-23) [ ] o.e.j.h.HttpParser bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@3c2f45b6{r=0,c=false,a=IDLE,uri=null}
with JDK 11 it does not start the service due to the error in the logs and with the
java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
gives service problems.
Do you have any idea what is going on?
or say if it is correct that you are running solr with the version of JDK11
What version of java 11 you are using? I have used jdk-11.0.11 for this setup and works perfectly fine. See the steps given here clearly: https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#setup-java11-centos
DeleteNow, there is also a known issue with Jetty that is used for SOLR6 if java 11 version has a "9". Example: 11.0.9.1
Check this issue here: https://github.com/eclipse/jetty.project/issues/2090
So might be you are running into the same issue.
Try using jdk-11.0.11
You can also check the supported platform before installing any version of the softwares: https://docs.alfresco.com/content-services/latest/support/
DeleteThanks so much for the reply Abhinav Kumar.
ReplyDeleteThe java vercion is:
# java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
I don't know if it's affecting the version I have because of:
+9-LTS-194, mixed mode
I don't know if you can be so kind and provide me with the rpm link of the version you use, since when I download it through yum, it downloads the newest version.
At the moment I have SOLR6 as a container and it has been working well, but I did not really like the idea of mixing and I would like it to stay as you have achieved it.
Greetings.
Try this : https://centos.pkgs.org/7/centos-x86_64/java-11-openjdk-11.0.8.10-1.el7.x86_64.rpm.html
DeleteOr this one: https://centos.pkgs.org/7/centos-updates-x86_64/java-11-openjdk-11.0.14.1.1-1.el7_9.x86_64.rpm.html
Really thank you very much for the help, the version of java you use solved my problem.
DeleteHi Abhinav Kumar Mishra, first of all great job! It's more clear than the official guide.
ReplyDeleteI'm trying to install ACS CE 7.2, but I'm stuck because Solr gives me a Connection refused error.
I think that it tryes to connect to Alfresco, but it cannot in some way. Could be this the issue? Solr doesn't have credentials to access Alfresco.
I can access to the Share panel, but I cannot see any folder. I can see them if I access Alfresco from webdav view. I had to use the secret secureComms configuration in Solr, because Alfresco didn't start without it.
ACS7.2 onwards solr.secureComms="none" and alfresco.secureComms="none" no longer works (Its deprecated) and hence you are getting the error. You need to configure the "secret" mode.
DeleteSet the following in "$SOLR_INSTALLATION_DIR/solr.in.sh":
SOLR_ALFRESCO_SECURECOMMS=secret
and "alfresco.secureComms.secret=password" in $SOLR_HOME/alfresco/conf/solrcore.properties & $SOLR_HOME/archive/conf/solrcore.properties
If you have just started, you can delete the two cores created in $SOLR_HOME and then update the properties here: /usr/local/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties
alfresco.secureComms=secret
alfresco.secureComms.secret=password
Next time when you start solr, the cores will be created again and required properties will be populated.
Set the following in "$ALF_INSTALLATION_DIR/tomcat/shared/classes/alfresco-global.properties":
solr.secureComms=secret
solr.sharedSecret=password
Hi Abhinav Kumar Mishra, thanks for your reply.
DeleteI already configured secureComms to the "secret" mode as you described (following this guide: https://docs.alfresco.com/search-services/latest/install/options/), but something isn't working.
I don't understand to which system is Solr trying to connect.
Hi Abhinav Kumar Mishra, sorry to bother you, the issue was due only because I installed Alfresco on port 8084 and I missed to change it in alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties.
DeleteHey Luca, There you go. I was assuming something similar and was about to respond to your previous message. I am glad its resolved.
DeleteIf there is anything let me know. Happy to help.
Thanks again, I solved the errors that I found in solr logs, but I still have the problem that in Share I cannot see the folders.
DeleteI can access alfresco through webdav, create folders and add documents. I also see that in solr the number of documents increase when I add them.
I don't see any error in the logs (Alfresco, Share or Solr). What could be the problem?
This seems strange, Have not seen this before. Are you able to login to share ? Did you also applied the alfresco-share-services amp module to alfresco.war ? Did you tried creating a new site if able to login and see if files/folders are still not visible ? When you startup all services, tail the log (alfresco.log, catalina.out and share.log) and see if anything spotted.
DeleteHello, and thank you for this very useful write-up. I have successfully installed Aflresco 7.2 and Solr 6 using the shared secret HTTP. However, the Transformation service is not working. I have tried your writeup and the Alfresco official documentation without success. One question I have is this: The official documentation references a alfresco-transform-service-distribution-1.5.x.zip file, which includes a transform router (alfresco-transform-router-1.5.x.jar) and a shared file store controller (alfresco-shared-file-store-controller-x.y.z.jar) while your method only references the transform-core-aio-boot.jar file. Is the Alfresco documentation outdated? Do I still need that router and shared file store controller?
ReplyDeleteThe problem I seem to be having is that the Transformation service, as I set up according to your directions, will produce enqueued messages in ActiveMQ, but nothing seems to consume them. I just end up with blank previews in Alfresco and a lot of enqueued messages in ActiveMQ. Do you have any advice on where to look for a problem? Thank you very much.
Hi Dan, thanks. Since you are installing an enterprise version doc is suggesting to use the transformation service distribution. This post is written targetting to community version so i used https://github.com/Alfresco/alfresco-transform-core/tree/master/alfresco-transform-core-aio/alfresco-transform-core-aio-boot in order to setup a local transformation service. alfresco-transform-core-aio-boot is used when you need to setup a local transformation service.
DeleteBut setup using enterprise package should also work, you are setting up enterprise transformation service with enterprise version and hence tranform-router and shared-file-store apps are also provided. Can you confirm that you enabled following properties in alfresco-global.properties?:
transform.service.enabled=true
transform.service.url=http://localhost:8095
sfs.url=http://localhost:8099/
localTransform.core-aio.url=http://localhost:8090/
And started all the three boot apps along with alfresco, share , activemq and postgres. Above properties are required in order to work with tranform-router and shared-file-store.
If you want to use a local transformation service , alfresco-transform-core-aio-boot is enough to start. Following properties are needed to be enabled in alfresco-global.properties for local:
localTransform.core-aio.url=http://localhost:8090/
local.transform.service.enabled=true
Thank you sir. I did change my setup to use only the local transformation service as you have shown here, with the following items in my alfresco-global.properties file:
DeletelocalTransform.core-aio.url=http://localhost:8090/
local.transform.service.enabled=true
After fixing an error with my imagemagick setup (for some reason png file support was disabled) I started to see thumbnail images appear in Share. This was encouraging. Now I am down to one more problem that I am trying to solve. When I click on one of the test documents I have uploaded (I am testing with Microsoft Word, a pdf, and a LibreOffice Writer file) the preview pane remains blank. The thumbnails for these files do show up correctly, however, so it appears the transformation engine is now working. I don't see any errors in my logs that would explain the blank preview pane, however. I will dig into it some more.
That's strange. Just to cross check again, make sure alfresco-pdf-renderer, image-magick and libreoffice is installed correctly.
DeleteWhen you start the local transformation service, make sure all required tools and their paths are accessible/up/running
Example:
java -DPDFRENDERER_EXE="/usr/local/alfresco-community70/alfresco-pdf-renderer/alfresco-pdf-renderer" \
-DLIBREOFFICE_HOME="/usr/local/alfresco-community70/libreoffice" \
-DIMAGEMAGICK_ROOT="/usr/local/alfresco-community70/imagemagick" \
-DIMAGEMAGICK_DYN="/usr/local/alfresco-community70/imagemagick" \
-DIMAGEMAGICK_EXE="/usr/local/alfresco-community70/imagemagick/convert" \
-DIMAGEMAGICK_CODERS="/usr/local/alfresco-community70/imagemagick/modules-Q16HDRI/coders" \
-DIMAGEMAGICK_CONFIG="/usr/local/alfresco-community70/imagemagick/config-Q16HDRI" \
-DACTIVEMQ_URL=failover:(tcp://localhost:61616)?timeout=3000 \
-jar /usr/local/alfresco-community70/bin/alfresco-transform-core-aio-boot-2.4.0.jar
You can also make use of this utility script i wrote, and update according to your setup: https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/main/linux-platform/alfresco-community70/localTransformationService.sh
Well, I did check all of those things, and they seem to be installed correctly. I can connect to my transformation service at http://localhost:8090 and it seems to work for test files. But Alfresco Share still has a blank preview pane. It doesn't say "Unable to render pdf content" (I think that is the message I have seen before when the transform engines weren't working), it just shows a blank preview pane. I suspect something is wrong with ActiveMQ, as when I go to the admin screen of my ActiveMQ server, and click on the "Topics" tab, I see that the enqueued messages for ActiveMQ.Advisory.xxx.repo-rendition-events, repo-transform-request, and transform-engine-aio-acs just keep climbing, and never seem to be dequeued. I am using ActiveMQ 5.17.1. Do you know if there are any known issues with that version? I know you used 5.16.x.
DeleteOk, everything is working now, even with ActiveMQ 5.17.1. I had downloaded the jar file for adding an "Edit in Onlyoffice" button to Share for future testing, and mistakenly already had it in a lib folder that Tomcat was reading on startup. Removing that jar file fixed the blank preview pane in Share. Apparently that jar module is not working with Alfresco 7.2.0.1.
DeleteGlad to hear that DarthBulk, i am not aware of this specific module so can't talk about it. HTH
Delete@DarthBulk how you solve the problem with PNG files ?
DeleteThank you for the excellent writeup. With your guide, I have Alfresco Community 7.2.0.1 running from .zip install with Alfresco Search Services. Search is working. I did install ActiveMQ and the Local Transformation according to your guide as well, but unfortunately that is not working. I can view my ActiveMQ admin page, and I see messages enqueuing (transformation requests) but nothing is consuming them. In Alfresco Share I get a blank preview every time I try to preview a document, and no thumbnails are generated. I see no errors in the startup (catalina.out), in fact it says startup of Transformers subsystem complete, and the messaging subsystem. I also read the official Alfresco documentation on the Tranformation system, and they reference a Transform Router. Is this something I need as well, or is that obsolete information? Do you have any advice on where to look as to why Alfresco seems to be sending tranform messages to ActiveMQ, but then nothing is consumed from ActiveMQ and no transformation seems to take place? Thank you.
ReplyDeleteSimilar error as above. Please check the reply above, messages are not consumed because transformation service is not up and setup correctly.
DeleteHello, will there be a tutorial for install ACS CE 7.x on Windows platform?
ReplyDeleteAvailable for 6.x but not for 7.x. I will notify on this soon as i have been getting several requests for windows environment as well.
DeleteHere you go for ACS7.2 step by step setup : https://javaworld-abhinav.blogspot.com/2022/05/setup-acs-7-ass-2-and-local-windows.html
DeleteThank you so much. I will try it soon;)
DeleteWe installed ACS 7.2 community edition successfully, thanks for the detailed document you have provided. We tried to implement "SimpleOCR" (https://github.com/keensoft/alfresco-simple-ocr) but failed miserably. Is there a way / method to implement simpleocr or any other ocr for ACS7.x, if so please help us, we are badly need it.
ReplyDeleteThanks in anticipation.
With the help of your excellent guide, we were able to install and run ACS 7.2, but all our efforts to implement OCR failed (https://github.com/keensoft/alfresco-simple-ocr) miserably, and we are in a bad need too. If it is possible to implement simpleOCR or any other OCR functionality, kindly guide us.
ReplyDeleteThanks and regards in advance.
Hi, Abhinav, we somehow managed to integrate the OCR in ACS 6.0.2, not in 7.x though, we are now struggling with the digital signature module (esign-cert), the only client tool working we found is "AUTOFIRMA" which is unfortunately in Spanish, which we find intimidating to end users. Is there any equivalent tools available in English language ? If so pls let us know.
ReplyDeleteThanks in abundance for your valuable time.
Regards.
Hi, Abhinav. Thank you very much for all this information.
ReplyDeleteI'm trying to setup ACS 7.2 following your instructions but I get stucked when I copy ROOT.war to the webapps folder. Tomcat shows this error:
An error occurred at line: [14] in the generated java file: [/usr/local/alfresco-community72/tomcat/work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.java]
Only a type can be imported. javax.servlet.ServletContext resolves to a package
Do you know what the problem coud be?
This may be happening due to existing ROOT.War comes with ootb tomcat binary.
DeleteFollow the steps to keep it clean:
0- Stop tomcat service
1- Delete all war files from /tomcat/webapps/
$ sudo rm -rf /usr/local/alfresco-community72/tomcat/webapps/*
2- Delete all files from tomcat/work/Catalina/localhost/
$ sudo rm -rf /usr/local/alfresco-community72/tomcat/work/Catalina/localhost/*
3- Copy the 4 war files provided as part of distribution package.
alfresco.war -> Alfresco repository web application.
share.war -> Share interface web application.
ROOT.war -> Application for the server root, also contains additional code/setup for handling alfresco office services module (alfresco-office-services). Alfresco Office Services (AOS) allow you to access Alfresco Content Services directly from all your Microsoft Office applications. We will not be installing this module since SSL is a mandatory enablement for this module.
_vti_bin.war -> App to help and support AOS module.
4- Update the permissions for '/usr/local/alfresco-community72/tomcat/webapps/' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community72/tomcat/webapps/
$ sudo chmod -R 775 /usr/local/alfresco-community72/tomcat/webapps/*.war
5- Update the permissions for '/usr/local/alfresco-community72/tomcat/work/Catalina/localhost' directory:
$ sudo chgrp -R Alfresco /usr/local/alfresco-community72/tomcat/work/Catalina/localhost
$ sudo chmod -R 775 /usr/local/alfresco-community72/tomcat/work/Catalina/localhost
6- Start the tomcat service
Hi, Abhinav. Great post!
ReplyDeleteI've finally installed ACS 7.2 and everything is working fine. I only have one question.
Solr6 admin page shows up without the need of the web explorer extension. Seems that doesn't care if there is a secret word although everythins is working. Is it a normal situation?
Greets from Spain.
Hey thanks and i am glad to hear that you are able to install. I am not so sure though why it working without secret header "X-Alfresco-Search-Secret". I re-tested and i had to provide the header in order to see the solr6 admin
DeleteHi… thanks for the tutorÃal… i will install Alfresco community with this. My question is what kind Of centos instalation do i Need? Minimal? Any prerequisite?
ReplyDeleteHi thanks, a basic centos 7 should do. Nothing specific needed except hardware requirements. You should have enough memory and disk space to run the installation.
DeleteGreat tutorial, thank you! I had hard fight to install on Ubuntu Server 20.04 and 22.04 due to not working the default Imagemagick (ver.6). I hade to download the source code and compile the version 7 to localtransform images. Currently the Alfresco 7.2 image convert works on Ubuntu 22.04, but still I got error messages. Broken pipe and Error status 500 The stack details have been removed for security reasons.
ReplyDeleteOne of the thing with Alfresco is that they don't publish supported versions of diferent OSs. At present only CentOS and Windows has been mentioned in their list. Deployment should however work on ubuntu as well, but i have never tried that. You may take a look at this repo which might be helpful: https://github.com/loftuxab/alfresco-ubuntu-install
DeleteBonsoir excellent blog, mais j'aimerais savoir quelle est la version rm disponible pour la version alfresco 7, 7.1 et 7.2 ... Aussi sur quel site la télécharger ... Est elle disponible en opensource
ReplyDeleteTake a look at this doc: https://docs.alfresco.com/governance-services/latest/install/zip/
DeleteYou can reachout to alfresco/hyland support for downloading the amps if you are enterprise customer. Here is the repository to download for community:
https://nexus.alfresco.com/nexus/#nexus-search;gav~org.alfresco~alfresco-governance*~7.2.0~~
https://nexus.alfresco.com/nexus/#nexus-search;gav~org.alfresco~alfresco-governance*~7.1.0~~
Good afternoon, thanks for the guide. I have a problem, even following the guide step by step in the same OS I got the error in localhost:8080 Cannot find Alfresco Repository on this server. (Does this application have access to alfresco-global.properties? Does this application have cross-context permissions?)
ReplyDeleteThe database is not populated. I have tried this also in an Ubuntu server and I got the same results.
Please your help with this issue.
The error is likely, you have missed or miss configured the shared.loader in catalina.properties file.
DeleteOpen and edit the $ALF_HOME/tomcat/conf/catalina.properties file:
Update the value of the shared.loader= property to the following:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/main/linux-platform/alfresco-community70/tomcat/conf/catalina.properties#L90
Note: If you have used alternative names for the directories, you must specify these names in the shared.loader property.
The alfresco-global.properties file resides in /tomcat/shared/classes folder. See directory structure and example here: https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/tree/main/linux-platform/alfresco-community70/tomcat/shared/classes
Thanks for the great tutorial. Please your help with this issue: even following step by step and in the same OS I got the error in localhost:8080 "Cannot find Alfresco Repository on this server. (Does this application have access to alfresco-global.properties? Does this application have cross-context permissions?)" the database is not populated, localhost:8080/alfresco got 404 and localhost:8080/share after entering the credentials got "Your authentication details haven't been recognized or Alfresco Content Services may not be available at this time."
ReplyDeleteTried the same in another OS (Ubuntu) and the same issue got present.
The error is likely, you have missed or miss configured the shared.loader in catalina.properties file.
DeleteOpen and edit the $ALF_HOME/tomcat/conf/catalina.properties file:
Update the value of the shared.loader= property to the following:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/main/linux-platform/alfresco-community70/tomcat/conf/catalina.properties#L90
Note: If you have used alternative names for the directories, you must specify these names in the shared.loader property.
The alfresco-global.properties file resides in /tomcat/shared/classes folder. See directory structure and example here: https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/tree/main/linux-platform/alfresco-community70/tomcat/shared/classes
Hi Abhinav. Thanks a lot for this exhaustive tutorial! Might you be having one on AOS and googledocs integration? This is an amazing guide! Kuddos!
ReplyDeleteThis post was focused for installation steps. Will try to create a post for AOS integration in near future.
DeleteHi Mr Abhinav.
ReplyDeleteFirst of all thank you very much for the tutorial, simply magnificent.
Today I finished the installation with a modification. I used version ACS-7.3.0 with ASS 2.0.5.
I would like some help if possible. When I upload a file, the thumbnail is not displayed. Catalina.out has the output below. do you have any tips to solve this?
DEBUG [repo.thumbnail.ThumbnailServiceImpl] [http-nio-8080-exec-1] Getting thumbnail by name (nodeRef=workspace://SpacesStore/84e55ac3-cd61-4ed4-b74b-a93b638 d4265; contentProperty={http:// www.alfresco.org/model/content/1.0}content; thumbnailName=from clib)
2022-12-30 17:28:25,714 DEBUG [repo.thumbnail.ThumbnailServiceImpl] [http-nio-8080-exec-1] Getting thumbnail by name (nodeRef=workspace://SpacesStore/1b7db775-3e1b-41b7-845e- 9b92722 8591c; contentProperty={http://www.alfresco.org/model/content/1.0}content; thumbnailName=from clib)
Hi Thank you @Ednei
DeleteThe logs are partial and not helpful to trace the cause. It may be possible that the transformation service is misconfigured. Can you re-check the steps as per https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#setup-trserv-local
also make sure is to system.thumbnail.generate=true (this is default already unless you have overridden somewhere).
Wow, what a great resource if information! I'm experiencing an issue with my newly migrated contentstore and database. I can see all posts, document, and authenticate just fine but if I try to make ANY kind of change I get pop-up's telling me I cant do anything
ReplyDeleteAction:ERROR
Create a Folder: Could not create 'TEST2023'. Duplicate folder name?
Click Favorite: Your changes could not be saved.
Add Comment: Unable to save comment
I dont get what Im missing, its like I'm viewing a read-only site. I put my username in global properties "alfresco_user_store.adminusername=myuser" and get the same errors.
Alfresco and Catalina logs show absolutly nothing when these pop-up's occur...
Likely your repo is running in read only mode. Either your license has been expired database role has not been setup correctly for db user. Please review the configs once again.
DeleteHi Abhinav, The Guide was very helpful to setup. Can you post the Article on How to Setup SLL (mTLS)
ReplyDeleteThank you. It is in my todo list
DeleteThanks for the great tutorial. Please your help with this issue, I can not start alfresco services
ReplyDeleteMy config
- OS
- windows 11
- Java 11
- Tomcat 9.x
- Root dir: D:\project\RB-Alfresco\tomcat
- alf_data dir : D:\project\RB-Alfresco\tomcat\alf_data
- keystore dir: D:\project\RB-Alfresco\tomcat\alf_data\keystore (it copied from file .zip)
- alfresco-global.properties
dir.root=D://project//RB-Alfresco//tomcat//alf_data
dir.contentstore=${dir.root}/contentstore
dir.contentstore.deleted=${dir.root}/contentstore.deleted
dir.keystore=D:/project/RB-Alfresco/tomcat/shared/classes/alfresco/extension/keystore/metadata-keystore/keystore
- catalina.bat
rem ACS70 Custom changes [Start] ##############
SET "JAVA_TOOL_OPTIONS=-Dcsrf.filter.enabled=false -Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=D:\project\RB-Alfresco\tomcat\shared\classes\alfresco\extension\keystore\metadata-keystore\keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESede"
rem ACS70 Custom changes [End] ##############
When I start alfresco app in tomcat it have error:
2023-04-14 06:16:28,610 ERROR [org.alfresco.repo.admin.ConfigurationChecker] [http-nio-8080-exec-3] Ensure that the 'dir.root' property 'D:\project\RB-Alfresco\tomcat\alf_data' is pointing to the correct data location.
Please can you help me!
Thanks!
Please review setup steps. The error is likely, you have missed or miss configured the shared.loader in catalina.properties file and may be miss config in alfresco-global.properties.
DeleteOpen and edit the $ALF_HOME/tomcat/conf/catalina.properties file:
Update the value of the shared.loader= property to the following:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
Examples available here: https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/alfresco7.2.x/windows-platform/alfresco-community72/tomcat/conf/catalina.properties#L90
https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/alfresco7.2.x/windows-platform/alfresco-community72/tomcat/shared/classes/alfresco-global.properties#L6
Since you are setting up on windows, use this post: https://javaworld-abhinav.blogspot.com/2022/05/setup-acs-7-ass-2-and-local-windows.html
Thanks for the steps
ReplyDeleteI followed steps but when I tried to test I received this error:
ReplyDeleteWelcome to Alfresco
Online Documentation
Cannot find Alfresco Repository on this server. (Does this application have access to alfresco-global.properties? Does this application have cross-context permissions?)
You seem to have missed a configuration. Under this section : https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#setup-and-configure-acs
DeleteTake a look at following and make sure you have done this config correctly.
Update the value of the shared.loader= property to the following:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
and make sure your alfresco-global.properties configured correctly. Take a reference from here: https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/main/linux-platform/alfresco-community70/tomcat/shared/classes/alfresco-global.properties
I'm using Oracle 8 and I cant install all the dependencies for ImageMagick 7. Can I use 6.9?
ReplyDeleteYou can try that. I cant say for sure that it will work. Must see https://docs.alfresco.com/content-services/latest/support/
DeleteHi, I have installed version 7.4.1 successfully using your excellent guide. Everything except transformation works (Could not load PDF content). In the log it says "libreoffice returned a 500 status this OfficeManager is currently stopped". Any help to resolve this issue is highly appreciated.
ReplyDeleteThe log:
2023-12-14T16:25:37,106 [] DEBUG [content.transform.TransformerDebug] [pool-5-thread-2] 6 xlsx pdf TS-laptop_computer_2.xlsx 11.3 KB Local:libreoffice
2023-12-14T16:25:37,106 [] DEBUG [content.transform.TransformerDebug] [pool-5-thread-2] 6 workspace://SpacesStore/6282d18a-1d5a-437d-9282-f211197223c2
2023-12-14T16:25:37,146 [] DEBUG [content.transform.TransformerDebug] [pool-5-thread-2] 6 Failed 11140054 libreoffice returned a 500 status this OfficeManager is currently stopped http://10.40.40.52:8090/transform targetExtension=pdf sourceEncoding=UTF-8 sourceMimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet sourceExtension=xlsx targetMimetype=application/pdf
2023-12-14T16:25:37,147 [] DEBUG [content.transform.TransformerDebug] [pool-5-thread-2] 6 Finished in 42 ms
2023-12-14T16:25:37,308 [] ERROR [web.scripts.RepositoryContainer] [http-nio-8080-exec-10] Server error (11140057)
org.springframework.extensions.webscripts.WebScriptException: 11140002 Wrapped Exception (with status template): 11140056 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js': 11140055 Content conversion failed:
reader: ContentAccessor[ contentUrl=store://2023/12/13/17/26/e69114f8-8a9d-4ca6-94a7-557e40019887.bin, mimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, size=11629, encoding=UTF-8, locale=en_US]
writer: ContentAccessor[ contentUrl=store://2023/12/14/16/25/eaf92c0d-0b0a-47b5-805d-38849797788b.bin, mimetype=application/pdf, size=0, encoding=UTF-8, locale=en_US]
options: {}
.
.
.
Caused by: org.alfresco.scripts.ScriptException: 11140056 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js': 11140055 Content conversion failed:
reader: ContentAccessor[ contentUrl=store://2023/12/13/17/26/e69114f8-8a9d-4ca6-94a7-557e40019887.bin, mimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, size=11629, encoding=UTF-8, locale=en_US]
writer: ContentAccessor[ contentUrl=store://2023/12/14/16/25/eaf92c0d-0b0a-47b5-805d-38849797788b.bin, mimetype=application/pdf, size=0, encoding=UTF-8, locale=en_US]
options: {}
etc
Seems like your local transform service is not setup correctly or not running. See the detailed steps to setup local transform service here: https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html?showComment=1702551574550#setup-trserv-local , Note that, from ACS6.2 onwards legacy transform service is no longer available and you have to setup a local transform (async transform service for enterprise version) service separately. You can also setup a startup script to start/stop the transform service by referring : https://github.com/abhinavmishra14/alfresco7-solr-localtransform-dist-setup/blob/main/linux-platform/alfresco-community70/localTransformationService.sh
DeleteI made a shell script and added carefully every command you posted , installed with that script,now it works. But, now after integrating SSL, transformation breaks (https works ok though), any guides or instructions to do that ? Thanks in advance.
DeleteTake a look at this doc. It is about Mtls setup for transform service. https://docs.alfresco.com/content-services/7.4/config/mtls/
DeleteThanks for this tutorial it was really helpful , please can you provide me with some useful resources about setting up OCR capabilities and google docs with ACS-7.0.0 Thanks again abhinav .
ReplyDeleteYou may review this documentation for google docs integration: https://docs.alfresco.com/google-drive/3.2/ Choose the appropriate version of documentation based on your ACS version.
DeleteFor ocr setup, you may try ocrmypdf installation and build a jar file from this project to use the OCR T-engine. https://github.com/aborroy/alf-tengine-ocr/blob/master/ats-transformer-ocr/pom.xml
And this module provides an action for invoking ocr via folder rules, check this out: https://github.com/aborroy/alf-tengine-ocr/tree/master/embed-metadata-action
Hi, I have installed version 7.0.0 successfully using your excellent guide. Everything except transformation works. when I view an excel or powerpoint file (xlsx, pptx etc.) show "Could not load PDF content" then could not open any excel or powerpoint file.
ReplyDeleteAny help to resolve this issue is highly appreciated.
The issue indicates that your local transform service setup is not working or incorrect. Please check error logs and also check the steps if you have installed the components correctly. Details are provided in this post already. https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#setup-trserv-local
DeleteHello,
DeleteI tried installing ACS7 on Centos7 multiple times and all functions worked normally.
However, when ACS7 is installed on Rocky8 and all settings are the same, "Could not load PDF content" occurs when opening and previewing files.
Is there any other way to solve this problem?
Hi, I successfully installed ACS7 on Centos7 according to the above installation steps, and all functions can operate normally.
DeleteBut since Centos7's EOL date is June 30, 2024.
I am trying to install ACS7.x on Rocky 8.x version. With all the steps being the same, the "could not load pdf content" error message appears when I upload and preview excel files and ppt files.
The query error message on the host is as follows:
2024-04-18 14:08:16,433 ERROR [web.scripts.RepositoryContainer] [http-nio-8080-exec-9] Server error (03180039)
Caused by: org.alfresco.error.AlfrescoRuntimeException: 03180036 libreoffice returned a 500 status All in One Transformer - this OfficeManager is currently stopped http://localhost:8090/transform
targetExtension=pdf sourceEncoding=UTF-8 sourceMimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet sourceExtension=xlsx targetMimetype=application/pdf
I tried checking all the setup steps and made sure I could access
http://localhost:8090
So the Local transformation service should start normally
The operating system platforms that have been tried are:
ACS6.2+ASS1.4 on Rocky8.x works well
ACS7.0+ASS2.0x on Centos7 works well
ACS7.0+ASS2.0x on Rocky8.x Problem: "could not load pdf content"
ACS7.3+ASS2.0x on Rocky8.x Problem: "could not load pdf content"
All software setting steps are in accordance with the steps provided by you
Only the operating system platform is different, but the results are different.
Do you have any better suggestions?
Any help to resolve this issue is highly appreciated.
Hi I want to upgrade alfresco 6.2 to Alfresco 7, I have installed version 7.0.0 successfully using your excellent guide.
ReplyDeletebut , when I imported data $ALF_HOME/alf_data/contentstore and $ALF_HOME/alf_data/contentstore.deleted to alfresco 7.0 and import Database correctly, and restart all service.
but when I view any document file (xlsx, pptx... etc.) some error, (Could not load PDF content).
Any help to resolve this issue is highly appreciated.
Seems like same question as above. The issue indicates that your local transform service setup is not working or incorrect. Please check error logs and also check the steps if you have installed the components correctly. Details are provided in this post already. https://javaworld-abhinav.blogspot.com/2021/06/setup-acs70-ass201-and-transformation-service.html#setup-trserv-local
DeleteI'm trying to use alfresco.secureComms=secret in solr.in.sh but I can't get the 403 in any way when I open the web page http://192.168.1.213/solr, it opens without the secret in the header.
ReplyDeleteI tried starting solr with environment variables, and also using solrcore.prorperties but it doesn't work.
I also have the error api/solr/modelsdiff return status:403 in the solr logs.
Could you help me
You seems to have mentioned about two different issues unless i am not understanding correctly.
ReplyDeleteTo get the secret mode working you need to add these two in your solr.in.sh file:
export SOLR_OPTS="-Dalfresco.secureComms.secret=secret"
SOLR_ALFRESCO_SECURECOMMS=secret
To open the admin console in the you need to pass the X-Alfresco-Search-Secret http header with shared secret value. Here per above example, the value is "secret".
These steps are outlines above.
I'll try to be more clear. Yes I think I have more problems.
DeleteFirst of all I indicate the versions :
ACS-7.2.0
ASS-2.0.1
The first problem is that when i start Solr6 , I see the administration console (http://127.0.0.1:8983/solr/#/) but it doesn't ask me for the authentication header.
Although I configured the solr.in.sh as indicated in the steps above. It seems to me as if it doesn't take the set configurations in solr.in.sh or some confilcts with solrcore.properties configurations.
So one question, when i change some configuration in solr.in.sh and in solcore.properties in rerank folder, Is it always necessary to delete the archives to make the configurations effective?
The second problem, and I think it depends on the first, is that I have an error in the log solr.log :
"Model tracking failed for core: archive
org.alfresco.error.AlfrescoRuntimeException: 04160000 api/solr/modelsdiff return status:403"
which I think means ACS can't communicate with ASS.
I summarize my configurations :
/usr/local/alfresco-search-services/solr.in.sh :
SOLR_ALFRESCO_SECURECOMMS=secret
export SOLR_OPTS="-Dalfresco.secureComms.secret=secret"
/usr/local/alfresco-search-services/solrhome/templates/rerank/conf/solcore.properties :
alfresco.secureComms=none (I try also alfresco.secureComms=https or alfresco.secureComms=secret) but don't work anymore
/usr/local/alfresco-community72/tomcat/shared/classesalfresco-global.properties :
solr.secureComms=secret
solr.sharedSecret=secret
"The first problem is that when i start Solr6 , I see the administration console (http://127.0.0.1:8983/solr/#/) but it doesn't ask me for the authentication header.
DeleteAlthough I configured the solr.in.sh as indicated in the steps above. It seems to me as if it doesn't take the set configurations in solr.in.sh or some confilcts with solrcore.properties configurations.
" --> Compare the two configurations and make sure they are correct. Even if they match then its not a problem. The idea to have these in solr.in.sh is that you can override the same for both cores.
Also check the browser dev console and look for heads in the list of headers when you hit, http://127.0.0.1:8983/solr/#/. If you have installed any extension like 'mod-headers', and added the header and its value once, you are no longer asked for it. It is always available in your browser as a request header.
You don't need to delete the cores once created. you can modify the properties in both cores. As mentioned above, having the properties in solr.in.sh takes affect for both.
alfresco.secureComms=none is not supported.
--------------------------------------------------------------------------------------
Try these settings in solr.in.sh, if exporting SOLR_OPTS is not working:
SOLR_ALFRESCO_SECURECOMMS=secret
export JAVA_TOOL_OPTIONS="-Dalfresco.secureComms.secret=secret"
and in alfresco-global.properties:
solr.secureComms=secret
solr.sharedSecret=secret
----------------------------------------------------------------------------------------------------
Secondly you can also try these settings if above settings not working for you (Usually above settings should work):
in alfresco-global.properties:
solr.secureComms=secret
solr.sharedSecret=secret
in /usr/local/alfresco-search-services/solrhome/alfresco/conf/solrcore.properties
and in /usr/local/alfresco-search-services/solrhome/archive/conf/solrcore.properties
alfresco.secureComms=secret
alfresco.secureComms.secret=secret
I solved, i try a more recent version of ASS. I was using the one mentioned in this guide, the 2.0.1. I updated to 2.0.2.2 and it work.
DeleteI solved ugrading the version of ASS from 2.0.1 (downloaded in this guide) to ASS 2.0.2.2
DeleteGreat news. I will add a note in the updates to make sure ASS 2.0.2.2 is the min version if someone is trying ACS7.2 and above. The example i gave above talks about using ASS 2.0.6
Delete