Install the “Web server” package group:
# yum groupinstall -y "Web server"
Create the /var/www/cgi-bin/hello.pl Perl script and insert the following lines:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello, World!";
Make this script executable:
# chmod 755 /var/www/cgi-bin/hello.pl
Add a new rule to the firewall:
# iptables -I INPUT -p tcp -m state --state NEW -m tcp —dport 80 -j ACCEPT
Save the firewall configuration:
# service iptables save
Activate the httpd service at boot:
# chkconfig httpd on
Start the httpd service:
# service httpd start
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
Copy the hello.pl file into it:
# cp /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 /webapp
Edit the /etc/httpd/conf/httpd.conf file and replace the ‘ScriptAlias‘ option with the following content:
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 Order allow,deny Allow from all </Directory>
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:
# service httpd configtest
Restart the httpd service:
# service httpd restart
Check the execution of the Perl script:
# yum install -y elinks # elinks http://localhost/cgi-bin/hello.pl
Leave a Reply
You must be logged in to post a comment.