Site Tools


Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
public:deploy:expertusone_deployment_process

ExpertusONE Deployment Process

This document is to describe the system requirement, system setup/configuration, installation steps to install the Product ExpertusONE.

System Requirement

Please refer to the below wiki for Hardware and software requirements under ESP2 section

http://dokuwiki/doku.php?id=deploy:software_installation_configurations

System Settings

PHP Settings

php compilation :

Compile the PHP on enabling the following modules/libraries

php.ini setting:

PHP_CURL
PHP_DOM
PHP_EXIF
PHP_GD2
PHP_MBSTRING
PHP_MCRYPT
PHP_MYSQL
PHP_MYSQLI
PHP_OPENSSL
PHP_PDO
PHP_PDO_MYSQL
PHP_SOAP
PHP_XMLRPC
PHP_XSL
PHP_ZIP

Edit the php.ini file for the tokens below

upload_max_filesize = 2000M
post_max_size = 2000M
SMTP = localhost
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="<tmp directory path for wsdl cache>"
soap.wsdl_cache_ttl=8640000
soap.wsdl_cache = 3
soap.wsdl_cache_limit = 100

Apache Settings

Inatall the apache of version in the Software Requirement section and set with configuration below

Enable modules in httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule expires_module modules/mod_expires.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule deflate_module modules/mod_deflate.so
Include conf.d/*.conf

Enable content compression module mod_deflate

Add a new file mod_deflate.conf on the server (Suggested location: 'include' sub-folder of the folder containing httpd.conf file of the Apache server)

$ vi </path/to/httpd/conf/mod_deflate.conf

# The below settings are obtained from http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#recommended
# and http://www.freebsdmadeeasy.com/tutorials/web-server/apache-mod-deflate.php
# to compress everything except images.
# Insert filter
SetOutputFilter DEFLATE
# Highest 9 - Lowest 1
DeflateCompressionLevel 9
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content (below is a sample entry)
#Header append Vary User-Agent env=!dont-vary
# Optional logging
# For details on below see:
# http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#deflatefilternote and
# http://httpd.apache.org/docs/2.0/mod/mod_log_config.html
# Uncomment the below lines for logging compression messages
# DeflateFilterNote Input instream
# DeflateFilterNote Output outstream
# DeflateFilterNote Ratio ratio
# LogFormat '"%r" [%{instream}n bytes compressed to %{outstream}n bytes (Compression Ratio: %{ratio}n%%)] "%{User-agent}i"' deflate
# CustomLog /opt/ESP2/apache2/logs/deflate_log.log deflate

Set to override httpd.conf :

<Directory "<path_to>/ExpertusONE">
AllowOverride All
AddType text/ExpertusONE .exm
</Directory>
#NOTE: Replace <path_to> appropriately with the path where ExpertusONE web source is deployed

Virtual host settings:

Update the httpd-vhosts.conf for doc-root, servername, vhost,

DocumentRoot "<path_to/lamp>"
ServerName localhost

<VirtualHost *:80>
DocumentRoot <path_to/lamp>/ExpertusONE
ServerName www.expertusone.com
php_flag soap.wsdl_cache_enabled on
php_value soap.wsdl_cache_dir "<path_to/lamp>/www_wsdl_cache_dir"
RewriteEngine on
RewriteRule ^/services/(.*)$ /sites/all/services/LnrService.php?soapaction=$1 [L]
RewriteRule ^/services/(.*)?WSDL$ /sites/all/services/LnrService.php?soapaction=$1&showWSDL=true [L]
<IfModule mod_deflate.c>
     Include <path/to/mod_deflate.conf>
</IfModule>
<Directory D:\wamp\www\ExpertusONE>
  FileETag none
</Directory>
</VirtualHost>
#NOTE: Replace DocumentRoot appropriately with the path where ExpertusONE web source is deployed

Host entry Edit server's /etc/hosts entry mapping for deployment site-url

<HOST_IP> <SITE_NAME>
example : 192.168.7.97 idev.expertusone.com

Mysql Settings

Install the mysql of version in software Requirement and set the database as below

CREATE DATABASE `<DB_NAME>` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON *.* TO '<DB_USER>'@'localhost' IDENTIFIED BY 'expuser' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `<DB_NAME>` . * TO '<DB_USER>'@'localhost' IDENTIFIED BY '<DB_USER>';
GRANT ALL PRIVILEGES ON `mysql` . * TO '<DB_USER>'@'localhost' IDENTIFIED BY '<DB_USER>';
flush privileges;
-- NOTE: Replace <DB_USER> and <DB_NAME> appropriately, execute the above as mysql's root user

Setup in etc/my.cnf file (Note: Make sure the setting is under the [mysqld] group header):

group_concat_max_len=5M

Setup in etc/my.cnf file (Note: Make sure the setting is under the [mysqld] group header):

(Mysql Default timezont must match with php.ini default timezone.)
default-time-zone = '+5:30'

Populate timezone table in mysql from following command: (Locate mysql_tzinfo_to_sql file in mysql)

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Deployment Pre-requisites

Check List for server setup:

  • Apache installed and httpd.conf is configured
  • MySQL Database tool installed and database, user, password, permissions are set
  • PHP installed and php.ini are configured
  • /etc/hosts entry mapping for deployment site-url at server.
  • Check Services like apache and mysql are working fine

NOTE: Above are required for initial setup of the server

Backup of existing deployed code and database

  • Take backup of existing web component and preserve under standard backup location.
  • Take backup of existing database dump and preserve under standard backup location.
  • Make sure mysql service is running

NOTE : This is required for incremental build/full build deployment.

Web Component Deployment:

Web component is given in the form of zip archive, deploy(unzip the archive) in the web server deployment location (<path_to>/htdocs/ExpertusONE directory).

Site URL : Change all the http://idev.expertusone.com, http://www.expertusone.com to appropriate site url

cd <path_to>/ExpertusONE
grep -rl "www.expertusone.com" * | xargs sed -i "s/www.expertusone.com/idev.expertusone.com/g"
grep -rl "http:\/\/www.expertusone.com" * | xargs sed -i "s/http:\/\/www.expertusone.com/http:\/\/idev.expertusone.com/g"                                         

sites/default/exp_sp.ini Set the following tokens of exp_sp.ini file:

 1.To set the DB URL need to set this URL in exp_sp.ini file DB_URL = mysql://<DB_USER>:<DB_PASSWORD>@localhost/<DB_NAME>
 2.To set up the drupal_debug_path the following  need to be set up in exp_sp.ini file = /var/www/ExpertusONE
 3.To set up the debug_path the following need to be set up in exp_sp.ini file = /var/www/ExpertusONE
 4.To set up the learner theme name the following need to be set up in exp_sp.ini file learner_themename=AdministrationTheme
 5.If site name need to be set up the the following need to be set up in exp_sp.ini file site_name=ExpertusONE Learning Portal
 6.If company name need to be set up the following need to be set up in exp_sp.ini file company_name=ExpertusONE
 7.If any content need to be uploaded then the path for the content uploading need to be set up in the exp_sp.ini filecontent_upload_path =https://www.expertusone.com/ sites/default/files
 8.If need to set the up the notification image path the following URL need to be set up in the exp_sp.ini file notification_image_path=https://www.expertusone.com/sites/all/themes/AdministrationTheme/images
 9.If the language need to be set up the following language URL need to be set up in the exp_sp.ini file language = cre_sys_lng_eng
 10.If the replay mail need to be send the following mail URL need to be set up in the exp_sp.ini file reply_to = lms@expertusone.com
 11.If the mail to be send from that  following set up  need to be done in the exp_sp.ini file sendmail_from = portalsupport@expertus.com
 12.For shopping cart the checkout time need to be set up that time settings need to be done in the exp_sp.ini file checkout_timeout = 60
 13.If any certification is getting expiry the remainder time need to be set up that can be done in the exp_sp.ini file cert_expire_reminder_days = 10
 14.The minimum price for the purchase of the training that can be set up under the exp_sp.ini file minprice = 0
 15.The maximum price for the purchase of the training that can be set up under the exp_sp.ini file maxprice = 10000
 16.To set up the URL link as http or https this need to be set up in the exp_sp.ini file custom_https_pages = false
 17.https_protected_url=home_page_before_login,ctools_ajax_sample/ajax/user_login,cart,cart/checkout,cart/review,learning/my-account
 18.If the multiple selection is required then the multiple select option multi_select_required = Y need to be set up in the exp_sp.ini file
 19.The  maximum request that need to be performed by the API the count will be set down here in exp_sp.inin MAX_API_REQUEST_PER_MINUTE = 50
 20.Based on the count the throttling will be set up in the exp_sp.ini file THROTTLING_BY_EACH_API = false
 21.To set up the max time limit for a query need to be set QUERY_MAX_EXECUTION_TIME = 30 (Sepcify the maximum execution time to execute report queries in seconds)
 22.For mobile App for IPHONE the following URL need to be set up in the exp_sp.ini file to down load the IPHONE settings IPHONE_DOWNLOAD_URL = http://expstaging.expertus.com/mobileapp/install.html
 23.For mobile App for ANDROID the following URL need to be set up in the exp_sp.ini file to down load the ANDROID settings ANDROID_DOWNLOAD_URL = http://expstaging.expertus.com/mobileapp/install.html
 24.To set up the VC meeting of type WebEx this URL need to be set up in the exp_sp.ini file WEBEX_URL = https://indiafreetrial.webex.com/indiafreetrial
 25.To set up the VC meeting type Expertus meeting this URL need to be set up in the exp_sp.ini file MEETING_URL = http://www.expertusone.com
 26.To set up the VC meeting type Live meeting this URL need to be set up in the exp_sp.ini file LIVE_MEETING_URL = https://www.livemeeting.com/cc/microsoft/join
 27.To Launch the meeting the meeting launch set up will be set under the exp_sp.ini file ALLOW_MEETING_LAUNCH = 30
 28. If need to set up the debug levels the debug on need to be set up in the exp_sp.ini file [EXPERTUS_DEBUG] debug = On
   Possible debug levels 1-5. Default is 3.
   1 - Print only the errors thrown by system
   2 - Print level 1 and database queries (SQL)
   3 - Print level 2 and queries results
   4 - Print level 3 and small object or array variables. (For development purpose)
   5 - Print level 4 and form and form state objects. (For development purpose)
   debug_level = 5
 29. To set up the debug path the following path need to be set up in exp_sp.ini file debug_path = D:\wamp\www\ExpertusONE
 30.The deubug file name will be set up in the exp_sp.ini file debug_file_name = exp_debug.txt

sites/default/settings.php

$databases = array (
'default' =>
array (
'default' =>
array (
'database' => '<DB_NAME>',
'username' => '<DB_USER>',
'password' => '<DB_PASSWORD',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
$update_free_access = FALSE;

ini_set('session.cookie_lifetime', 0);

Cleanup WSDL cache:

rm -rf <path_to>/wsdl_cache_dir # remove the files in the wsdl cache directory

File permissions:

Make the below files and folder to have read and write access

  • ExpertusONE/sites/all/commonlib/html2pdf/cache
  • ExpertusONE/sites/default/files
  • ExpertusONE/sites/all/files/pictures
  • ExpertusONE/tmp
  • ExpertusONE/exp_debug.txt
  • ExpertusONE/exp_sp_debug.txt

DB Component Deployment:

Database component is deployed into db server. DB component is a archived sql file.

unzip the file and deploy it to mysql database

$ cd <path_to/shipin>
$ unzip Expertusone_db.sql
$ mysql -u[DB_USER] -p[DB_password] -h[Host_ip] [DB_NAME] < Expertusone_db.sql

Edit the end_point_url in table sct_service_provider

mysql -u[DB_USER] -p[DB_password] -h[Host_ip] [DB_NAME] << ENDOFMYSQL
update sct_service_provider set end_point_url = replace(end_point_url,'idev.expertusone.com','<domain_name>.expertusone.com') where end_point_url like '%idev.expertusone.com%'; 
update sct_service_provider set end_point_url = replace(end_point_url,'www.expertusone.com','<domain_name>.expertusone.com') where end_point_url like '%www.expertusone.com%'; 
update slt_person set email='expertusone_idev@expertus.com';
update users set mail = 'expertusone_idev@expertus.com';
truncate slt_notification;
commit;
ENDOFMYSQL
#NOTE : Replace <domain_name> with appropriate domain name of the site. [DB_USER],[DB_password],[Host_ip],[DB_NAME] should be replace with actual values.
#NOTE : Above steps is necessary for ExpertusONE version < 3.2.0.0

Once Web component and Database components are deployed, please restart apache service

sudo /etc/init.d/apache2 restart

Product Configurations:

Enable Content Delivery Network:

(Apache configuration steps are from my local workstation, and may slightly differ for idev and other servers)

Create a new domain www.static-expertusone.com pointing to the www.expertusone.com server.

  e.g. In the etc\hosts file make a new entry
 <same IP addr as for www.expertusone.com>    www.static-expertusone.com

Enable Apache headers_module by uncommenting the below line in httpd.conf file:

 LoadModule headers_module modules/mod_headers.so

Add the new VirtualHost entry in httpd_vhosts.conf.

e.g.
On my workstation I have the following VirtualHost entries for www.expertusone.com and its corresponding static domain www.static-expertusone.com.
<VirtualHost *:80>
  DocumentRoot D:\wamp\www\ExpertusONE
  ServerName www.static-expertusone.com
  <IfModule mod_deflate.c>
     Include D:\wamp\bin\apache\Apache2.2.17\conf\include\mod_deflate.conf
  </IfModule>
  RewriteEngine on
  RewriteRule ^/services/(.*)$ /sites/all/services/LnrService.php?soapaction=$1 [L]
  RewriteRule ^/services/(.*)?WSDL$ /sites/all/services/LnrService.php?soapaction=$1&showWSDL=true [L]
  # The following entries included in the new static domain to make it cookie-free.
  <Directory D:\wamp\www\ExpertusONE>
    RequestHeader unset Cookie
    Header unset Set-Cookie
    FileETag none
  </Directory>
 </VirtualHost>
 

Note: Add the below entry to vhost entry of actual sitename eg (www.expertusone.com)

<Directory D:\wamp\www\ExpertusONE>
FileETag none
</Directory>

Restart Apache server to read the new configurations.

Enable CDN module:

 As admin,
   i) Goto ?q=admin/modules.
  ii) Enable 'CDN' module under 'Performance and scalability' section by ticking its checkbox.
 iii) Save configuration

Setup CDN:

 As admin,
   i) Goto ?q=admin/config/development/cdn/details
  ii) Select Mode: Original Pull
 iii) Under Mode-specific settings, in the CDN Mapping text-box enter http://www.static-expertusone.com
  iv) Click Save configuration
   v) Goto ?q=admin/config/development/cdn/other
  vi) Check 'CDN supports HTTPS' under 'HTTPS'
 vii) In Exceptions->FILE URL->Blacklist textbox, enter *.js (remove any other entries if present)
viii) Clear text box Exception->FILE URL->Whitelist
  ix) Click Save configuration
   x) Goto ?q=admin/config/development/cdn
  xi) Select status enabled
 xii) Ensure Display statistics in not checked.
xiii) Click save configuration

Cyber-source Configuration for e-commerce:

  • Create keys folder outside htdocs and update the path in the system. The path can be updated in the system under:
    • Create keys directory to store the data
      • sudo mkdir /opt/apache2/keys
      • sudo chmod 777 /opt/apache2/keys
    • Browse to http://sitename.expertusone.com, login as admin and switch to administer view
    • Browse to Commerce Administration » Configurations » Payment settings » Payment Methods » Credit card settings» or site/?q=admin/store/settings/payment/method/credit
      • edit the key path to → /opt/apache2/keys
  • Update the Cybersource “Merchant ID” and “Transaction key” in the system.
    • Browse to Commerce Administration » Configurations » Payment settings » Payment Gateways: » Credit Card settings » Expertus CyberSource Silent Order POST » Soap toolkit API settings »
      • edit the “Merchant ID” and “Transaction key” as below for qa nad staging sites, for production it must be obtained from exp_sp.ini file
Merchant ID: expertus
Transactionkey: jyvxCFfEagSPLF98c/oZsOPUv4BGj6nBvY1KFIxwl8gEnd1MSHVWwjg0bUuJNWMiBith2cDjciLxWzfE8nc0ooU1WkXRVrQh0nc3bQ8Y7PMWL40WRvun7M2JLWDOnrF2qzO9RhBlYt0TW+p7IWnfoDaitq5TOCoikKPp1szbjWpeDlJAniWnDiy0bSeLmqyniL+ARo+pwb2NShSMcJfIBJ3dTEh1VsI4NG1LiTVjIgYrYdnA43Ii8Vs3xPJ3NKKFNVpF0Va0IdJ3N20PGOzzFi+NFkb7p+zNiS1gzp6xdqszvUYQZWLdE1vqeyFp36A2orauUzgqIpCj6dbM241qEg==

Other Instructions

  • This configuration is for full build deployment and initial setup.
  • Any additional other UI level configurations (admin setttings) are performed as per installation/release notes.
  • Clear performance cache http:<domain_name.expertusone.com>/?q=admin/config/development/performance.
public/deploy/expertusone_deployment_process.txt · Last modified: 2024/06/15 21:20 by 47.128.52.211