RHEL7: Deploy an Apache basic CGI application.

Share this link

Note: This is an RHCE 7 exam objective.


First, follow the instructions to install an Apache web server.

Configuration Procedure

Create the /var/www/cgi-bin/hello.pl Perl script and insert the following lines:

print "Content-type: text/html\n\n";
print "Hello, World!";

Make this script executable:

# chmod 755 /var/www/cgi-bin/hello.pl

Restart the httpd service:

# systemctl restart httpd

Check the SELinux httpd_enable_cgi boolean is on (it is on by default):

# getsebool httpd_enable_cgi
httpd_enable_cgi --> on

Note: Another SELinux boolean useful to remember is httpd_can_sendmail: it allows the httpd server to send emails.

Check the httpd service:

# yum install -y elinks
# elinks http://localhost/cgi-bin/hello.pl

Alternatively, if you want to use a directory other than the /var/www/cgi-bin/ default (/webapp for example), you will have some additional steps.

Create the /webapp directory:

# mkdir /webapp

Move the hello.pl file into it:

# mv /var/www/cgi-bin/hello.pl /webapp

Set up SElinux configuration for the /webapp directory:

# yum install -y setroubleshoot-server
# semanage fcontext -a -t httpd_sys_script_exec_t "/webapp(/.*)?"
# restorecon -R /webappelinks /usr/share/httpd/manual/howto/cgi.html

Edit the /etc/httpd/conf/httpd.conf file and replace the ‘ScriptAlias‘ option with the following line:

ScriptAlias /cgi-bin/ "/webapp/"

In the same file, where the configuration of your website (or virtual host) is located, add the following lines:

<Directory "/webapp">
AllowOverride None
Options None
Require all granted

In the same stanza, you can optionally add the following lines (but it doesn’t seem mandatory):

Options ExecCGI
AddHandler cgi-script .pl

Check the configuration file:

# apachectl configtest
Syntax OK

Restart the httpd service:

# systemctl restart httpd

Testing Time

Check the execution of the Perl script:

# yum install -y elinks
# elinks http://localhost/cgi-bin/hello.pl

Useful Tip

If you don’t remember the syntax of any directive, type:

# yum -y install httpd-manual
# elinks /usr/share/httpd/manual/howto/cgi.html
1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)

Leave a Reply

12 Comments on "RHEL7: Deploy an Apache basic CGI application."

Notify of
Sort by:   newest | oldest

“Options ExecCGI” and “AddHandler cgi-script .pl” should be added only if you don’t specify ScriptAlias directive within VirtualHost. Otherwise, if you use ScriptAlias you can indeed skip it.


do I need to use particularly a Perl test script for this task? or it can be PHP or Python one? or it can be requested to deploy any of them on the exam?


You should also include how to work on WSGI script followed by mod_wsgi package.


Hi Jaz and CertDepot
This might help.


When the problem is with opening cgi page “500 Internal Server Error”, you have to verify also the httpd error log file, because when selinux is not set properly, the warning is not displaying in /var/log/audit/audit.log,
but in /var/log/httpd/error_log only.

According to http://selinuxproject.org/page/NB_AL:
“…It is not mandatory for SELinux-aware applications to audit events or even log them in the audit log. The decision is made by the application designer.”


For examples on syntax it’s easier to check the httpd manual:

yum -y install httpd-manual
elinks /usr/share/httpd/manual/howto/cgi.html


How about wsgi scripts? Are those worth learning?


RHCSA7: Task of the day

Allowed time: 10 minutes.
Create an EXT4 file system mounted by UUID in /etc/fstab under /vol based on a logical volume of 28 logical extents.

RHCE7: Task of the day

Allowed time: 8 minutes.
Set up an iScsi target based on a block backstore of 100MB called lv_iscsi with basic authentication, ext4 filesystem and standard firewall configuration.

Recent Comments

Follow me on Twitter

Poll for favorite RHEL 7 book

What is your favorite RHEL 7 book to prepare RHCSA & RHCE exams?

View Results

Loading ... Loading ...

Poll for most difficult RHCSA 7 topic

What do you think is the most difficult RHCSA 7 topic?

View Results

Loading ... Loading ...

Poll for most difficult RHCE 7 topic

What do you think is the most difficult RHCE 7 topic?

View Results

Loading ... Loading ...