How do I install a Perl Module?

last updated in Categories , , , , , , , , ,

Q. How do I install a Perl module under Linux or UNIX like operating system?

A. Perl modules (a Perl module is a discrete component of software for the Perl programming language) can be installed using various methods under different Linux distributions.

Task: Install perl module

If you are using Red Hat Linux then use up2date command to install most common modules:

# up2date module-name
Use following command to list all supported modules:
# up2date --showall | grep -i 'perl'
OR use yum command under CentOS/RHEL 5/Fedora core:
# yum list available 'perl'

If you are using Debian Linux, try to use apt-get command to install common perl module. However following is the recommended way to install a perl module.

A) Start CPAN Shell:
# perl -MCPAN -e shell

B) Install a perl module:
At cpan> shell prompt install module using install module::Name command. For example install module called MIME::Lite:
# cpan> install MIME::Lite
Alternatively, try out the following command:
# cpan -i MIME::Lite

See also:

Run shell script from web page

last updated in Categories , , ,

Q. How do I run a shell script from a web server or a web page under Apache or Lighttpd websever?

A. In order to run a shell script from a web page you need Apache web server configured with cgi access. Apache CGI allows documents/files in cgi-bin directory treated as application and run by server when requested rather than as documents sent to the client.. It means if you put shell script in cgi-bin directory then you are able to execute them from a web page. However, you cannot simply run shell script from a web. You need to send or print the MIME type before outputting data to the web browser from shell script. You need to add following line to script before you get output back to browser:

echo "Content-type: text/html"
echo ""

Here is the script that can displays today’s date and other information related to your shell script:

#!/bin/bash
# get today's date
OUTPUT="$(date)"
# You must add following two lines before
# outputting data to the web browser from shell
# script
 echo "Content-type: text/html"
 echo ""
 echo "<html><head><title>Demo</title></head><body>"
 echo "Today is $OUTPUT <br>"
 echo "Current directory is $(pwd) <br>"
 echo "Shell Script name is $0"
 echo "</body></html>"

Save the script in your cgi-bin directory and execute it from web page.

See also:

=> For more examples see how to: Run Linux / UNIX commands from a web page.

How do I find the url for my cgi-bin?

last updated in Categories , ,

The CGI is acronym for Common Gateway Interface. It is a standard for interfacing external applications with Apache Web servers. A CGI program is executed in real-time, so that it can output dynamic information. It can be written in Perl, Php, Bash, C/C++ or other programming languages. But how do I find the url for my cgi-bin? It’s not in my /var/www/ directory.
Apache web server use ScriptAlias directive defines cgi-bin directory that contain server scripts. You can use open Apache web server configuration file using text editor such as vi and look for ScriptAlias directive:

httpd.conf file location:
Debian Linux:

$ vi /etc/apache-perl/httpd.conf

Red Hat/ Fedora Core Linux:

$ vi  /etc/httpd/conf/httpd.conf

FreeBSD:

$ vi  /usr/local/etc/httpd.conf

You can also use grep command as follows to find out your cgi-bin directory:

$ grep 'ScriptAlias'  /etc/httpd/conf/httpd.conf
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

/usr/lib/cgi-bin/ is cgi-bin directory. If you have public_htm directory then cgi-bin directory should be inside this directory. Once you located cgi-bin directory you can use it.

Default cgi-bin directory locations:

  • Red Hat Linux: /var/www/cgi-bin/
  • Fedora Linux: /var/www/cgi-bin/
  • Debian Linux: /usr/lib/cgi-bin/
  • FreeBSD: /usr/local/www/cgi-bin/

Finally your url location depends upon directory location. You can use http://ip-address/cgi-bin or http://ip-address/~yourname/cgi-bin (replace ip-address with your domain name)