Checking out the Apache Split Deployment
these days I went ahead and added an Apache Web Server to a test BI4.1 Installation as per the proposal made by James Rapp. I was particularly eager in seeing how much effort would it take to do this for a standard 1-box BI4 installation. Here I am sharing screenshots of that process in order to give you a highlevel overview. This blog is not intended to give you instructions on how to split deploy with Apache. For the correspondent instructions please visit following Documents:
- Improving the User Experience in SAP BI Platform 4.0 with Apache and WDeploy
- Improving the User Experience in SAP BI Platform – BI 4.1 and Apache 2.4 Supplement
- Quick Step-by-Step Guide to Apache Split Deployment with BI 4.1
I am on Windows Server 2012, BI4.1 SP02 Installation with Tomcat7, Downloading Apache 2.4.7 and mod_jk 1.2.37. Furthermore I am also using the httpd-bi41.conf and workers.properties file shared in the documents by James and Ian in the articles above.
After Downloading the Apache files, I extracted it to the root folder (in this case Z) just to make less changes to paths later on in the configuration files (C:\->Z:\):
From the module mod_jk, which comes as a separate .zip file, copy the file mod_jk.so file from modules-2.4-win64-VC11.zip to \Apache24\Modules:
In the httpd.conf file, adjust the corresponding lines for the ServerAdmin and ServerName. Because my Apache root is not C\Apache24, I also need to adjust ServerRoot and DocumentRoot in this file:
Before starting with the installation of Apache Web Server, make sure that no one else is listening on port 80, this is the port that Apache will listen to in standard. With following command you can check which process is currently listening to which port:
In case you would see another program listening to port 80, you could identify it by the process ID being shown to the right of the last screen. This Process ID can be useful in the task manager to get to the corresponding program.
Open a command window in \Apache24\bin. Now we are ready to install Apache Web Server in form of a windows Service with the name BOEXI40Apache. Services starting with the name BOEXI40 will automatically appear in the CCM:
Ok, the installation says there is something wrong, but no explanation and no logs, so I go ahead and try to start Apache from the CCM, Seems I can start it without any issue:
Test to kindly ask Apache if it really works?
Note that the port number is missing, that is because the standard port is 80
To make things fancy, I keep following James’ proposal and change the display name of the service from BOXI40Apache to Apache HTTPD 2.4.7:
The CCM looks more organized now with the new name for Apache:
As we are still going to be using tomcat for the dynamic content, I add tomcat as a dependency to Apache in the CCM, this way tomcat will be automatically started when we start apache. Similarly, tomcat cannot be stopped while Apache is running:
Adjusting now the config.apache file of WDeploy with the ws_dir and connector_type:
Also adjusting the config.tomcat7 file with as_dir, as_instance and as_service_name:
Copying the downloaded httpd-bi41.conf file to \Apache24\conf\extra and copying the workers.properties file to Apache24\Conf:
After making a backup of the server.xml file, adjusting it now and uncomment the AJP connector line by deleting the <!– characters at start and –> at the end of the line:
Restarting Apache now by using CCM or windows services. Looks good as the service can be started. Afterwards, update the CacheRoot and CacheLockPath in the downloaded httpd-bi41.conf file:
Create the corresponding folders of the last screen if needed. Creating now a task with the windows task scheduler to clean the cache:
Enter a name for the Task, run whether the user is logged on or not, Do not store password:
Trigger at startup:
Setting a new action with corresponding arguments:
Adding now an Include line to the httpd.conf file in order to load the httpd-bi41.conf file:
Then checking if the Apache server can be restarted. It does correctly, so im stopping it now.
Now its time to start predeploying:
wdeploy tomcat7 -Das_mode=split -Dws_type=apache -Dwork_dir=Z:\temp predeployall
After a successful deployment, I see a corresponding message:
Creating an empty MOBIServer.zip file in the predeployed content:
And now its time to split deploy!
wdeploy tomcat7 -Das_mode=split -Dws_type=apache -Dwork_dir=Z:\temp deployonlyall
Running now post-installation checks. Around 100k files as static content in the BOE directory? -> Check!
Were some extra Include conf/bobj* added to the httpd.conf file? -> Check!
bobj* Files were added to Apache24/conf? -> Check!
Is public,max-age=315360000 (or whatever value you configured in mod_headers) being inserted by mod_headers from the httpd-bi41.conf file? -> Check!