Learn may be configured to run on a system administrator installed Apache 2. Installation of Apache 2 may be done to support institutional security policy while enabling the use of the RHEL approved and secured version of Apache 2. Blackboard supports only the official versions of Apache.
Additionally, Apache 2 provides convenient configuration support for Integrating Shibboleth
Use of Apache 2 instead of the bundled Apache 1.3 httpd server is supported and sustained through upgrades. Note however, that the provided ServiceController scripts will no longer perform the http start/stop operations required for making Learn available (see below instructions for how to start/stop Apache).
Note: Instructions for configuring Learn to use Apache 2 are also contained in ~/blackboard/config/apache2/README.txt.
To learn more about operating the Apache HTTP server, visit the Apache HTTP Server Project site.
Before configuring Learn to use Apache 2, you must have Apache 2 installed on your server.
In a Load Balanced environment Apache must be installed on each server.
How to Check if Apache 2 is Installed
Before proceeding with installation of Apache you should check if it is already installed.
These commands, depending on the privileges for your server account, may require root access.
If Apache was installed via a package manager like RPM (RedHat Package Installer) or Yum (Yellowdog Updater Modifier) you may enter:
#yum list installed | grep httpd
If installed you will see output something like:
The above indicates that Apache 2 (as noted by the version number 2.2.x.xx) is installed - if you see something similar you may skip to the How to Configure Apache 2 for Blackboard section.
If the version installed is not 2.2 or greater then proceed to the How to Install/Update Apache 2 section.
If you see an empty prompt, indicating that Apache was not installed via a package manager, that does not mean Apache is not installed. This is because Apache may be installed in a variety of ways which are not visible to the package manager. So you should do a couple more checks just to be sure.
Run the locate command to find any instances of the apache controller - the app used, among other options, to start or stop Apache.
# locate apachectl
If listings are found then you will see something similar to the above - if there are any apachectl files found besides the Blackboard installed version as identified by it's location under the blackboard directory path (that will certainly be Apache 1.3), then for each listing of apachectl get the version:
# /usr/sbin/apachectl -v
This provides you with an indicator of the version of Apache and the location of the Apache httpd services control application.
If Apache is installed and a version greater than or equal to Apache 2.2.x you may skip to "Configure Apache 2 for Blackboard Learn" otherwise proceed with "How to Install or Update Apache 2".
How to Install or Update Apache 2
Apache 2 is installable and maintainable using standard RHEL installation and maintenance operations. Install Apache 2 from the command line as root using:
#yum install httpd
This installs the latest available version of Apache for your system.
Before making any changes to default installation, you should always backup and save your certificate files. These are encrypted files with extensions of .cer, .crt and .key.
How to Configure Apache 2 for Blackboard Learn
After this change has been made, the Learn ServiceController script will not attempt to start or stop Apache. You must manually start Apache using the command in step #4.
To learn more, see bb-config.properties File.
- Create a symlink from your Apache 2.2 distribution's conf.d directory to the blackboard.conf configuration file:
# cd /etc/httpd/conf.d
# sudo ln -s /usr/local/blackboard/config/apache2/blackboard.conf
Place your certificate files in the directory noted in the ssl.conf file.
- Disable Apache 1.3 in bb-config.properties:
- Push configuration updates:
To learn more, see PushConfigUpdates.
- Restart Apache 2.2:
# sudo apachectl restart
Using strong ciphers and SSL 3.0 by default
Customers may consider the following configuration. Customers may customize the setting to their environment needs.
Follow the Apache documentation at: http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html
SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:!MEDIUM:!SSLv2
Managing Service Restarts
Apachectl options and results
|apachectl stop||Sends a stop signal to the parent causing it to immediately attempt to kill off all of its children. It may take it several seconds to complete killing off its children. Then the parent itself exits. Any requests in progress are terminated, and no further requests are served.|
|apachectl start||Starts the httpd service. To ensure Apache starts with SSL support, you should edit your configuration file to include the relevant directives.|
|apachectl graceful||The graceful signal causes the parent process to advise the children to exit after their current request (or to exit immediately if they're not serving anything). The parent re-reads its configuration files and re-opens its log files. As each child dies off the parent replaces it with a child from the new generation of the configuration, which begins serving new requests immediately.|
|apachectl configtest||Run a configuration file syntax test. It parses the configuration files and either reports Syntax Ok or detailed information about the particular syntax error.|
Learn Application ServiceController Options
The Learn Application ServiceController options are available on the ServiceController help page.
To start services when running Learn over Apache 2, you must start both the Learn application and Apache separately:
Change to the blackboard/tools/admin directory and execute the ServiceController.sh script with the services.start option.
- Start the Learn application.
- Start Apache.
After the Learn application startup has completed and returns you to the command line prompt, as root or privileged user, enter apachectl start on the command ilne and press Enter.
Example: /usr/sbin/apachectl start
To stop services when running Learn over Apache 2, you must stop both the Learn application and Apache separately.
How to Restart the Apache httpd Service
If you make changes to the Apache configurtion or suspect an httpd performance issue, you can gracefully restart Apache separately from the Learn application.
As root or privileged user, execute apachectl graceful on the command line:
Example: # /usr/sbin/apachectl graceful
- Stop Apache.
As root or privileged user execute apachectl stop on the command line:
Example: /usr/sbin/apachectl stop
- Stop the Learn application.
Change to the blackboard/tools/admin directory and execute the ServiceController.sh script with the services.stop option.
How to Restart the Learn Application Service
If you suspect an application performance issue you may restart the Learn application separately from Apache.
As root or privileged user, change to the blackboard/tools/admin directory and enter the ServiceController.sh script with the services.appserver.restart option:
# cd /usr/local/blackboard/tools/admin # ./ServiceController.sh services.appserver.restart
Finally always remember to check your httpd service after a PushConfig and restart if necessary. You can check whether your httpd service is running by entering:
# ps -deaf | grep httpd
If Apache is running, you will see a list of processes:
If Apache is not running, you will be returned to an empty command line prompt and will need to follow the How to Restart the Apache httpd Service procedure.