Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 8 of 8
  1. #1
    s3a
    s3a is offline
    New to the CF scene
    Join Date
    Jun 2012
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Need to get my first Perl/CGI script working with a web browser!

    When I go to file:///tmp/perlcgi.cgi (or basically open perlcgi.cgi using chromium), the browser displays the following content (which is the perlcgi.cgi code – which is not what I want the browser to do).:

    Code:
    #!/usr/bin/perl
     
    @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
    @weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
    ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime();
    $year = 1900 + $yearOffset;
    $theTime = "$weekDays[$dayOfWeek] $months[$month] $dayOfMonth, $year";
    
    print "HTTP/1.0 200 OK"; # Remove this if it doesn't help
    print "Content-type: text/html\n\n";
    print <<HTML;
    <html>
    <head>
    <title>A Simple Perl CGI</title>
    </head>
    <body>
    <h1>A Simple Perl CGI</h1>
    <p>$theTime</p>
    </body>
    HTML
    exit;
    I have no idea what I am doing; I just want to get my first working example so I can modify things and learn from there. What am I doing wrong and what must I do differently?

    Please don't tell me to just google it because I've searched many times and I am still stuck as to how I should get started. What I understand is that the Perl/CGI or Python/CGI, etc script is run server-side and that you import a CGI library and use print statements to make an HTML file or something of the sort. I'm trying to run it from a browser locally because I don't have any server(s); I am just doing this for learning purposes. I basically just need the initial push.

    Any input would be GREATLY appreciated!
    Thanks in advance!

  • #2
    Super Moderator
    Join Date
    May 2005
    Location
    Southern tip of Silicon Valley
    Posts
    2,874
    Thanks
    2
    Thanked 164 Times in 159 Posts
    You need to install a web server on your computer.

    The best web server choice, IMO, is Apache, but others like to use Microsoft's IIS.

    apache 2.2.22 msi installation file

    Using Apache with Microsoft Windows

  • #3
    s3a
    s3a is offline
    New to the CF scene
    Join Date
    Jun 2012
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Thanks for the reply FishMonger but, I still get the same result when opening perlcgi.cgi with the chromium web browser after installing apache 2.2.22. By the way, I'm using Debian GNU/Linux Wheezy/Testing (amd64) and not Windows if it matters (which I don't think it does).

  • #4
    Super Moderator
    Join Date
    May 2005
    Location
    Southern tip of Silicon Valley
    Posts
    2,874
    Thanks
    2
    Thanked 164 Times in 159 Posts
    The script needs to be in the directory configured in apache to run cgi scripts. Typically that path is: /var/www/cgi-bin but it may be different on your system.

    It also needs to have the correct file permissions, which is normally 655 or 755.

    When calling it up in the browser, don't use file://
    use: http://localhost/cgi-bin/perlcgi.cgi

  • #5
    Super Moderator
    Join Date
    May 2005
    Location
    Southern tip of Silicon Valley
    Posts
    2,874
    Thanks
    2
    Thanked 164 Times in 159 Posts
    Once you get it working, the first change you'll want to make to you script is to add these 2 lines.
    Code:
    use strict;
    use warnings;
    Those 2 pragmas will help you by pointing out common problems/mistakes and should be in every Perl script you write.

    When using the strict pragma, you will need to declare your vars before using them, which is done by adding the 'my' keyword. e.g.
    Code:
    my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
    my @weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun);

  • #6
    s3a
    s3a is offline
    New to the CF scene
    Join Date
    Jun 2012
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello again and sorry for the late response. I followed beck03076's post on: http://stackoverflow.com/questions/5...rl-cgi-scripts

    and, to make sure I followed the instructions correctly, here are the results:

    Code:
    deniz@debian:~$ cat /etc/hosts
    127.0.0.1	localhost
    127.0.1.1	debian
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    deniz@debian:~$ cat /etc/apache2/sites-available/default
    <VirtualHost *:80>
    	ServerAdmin webmaster@localhost
    
    	DocumentRoot /var/www
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    	</Directory>
    	<Directory /var/www/>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride None
    		Order allow,deny
    		allow from all
    	</Directory>
    
    	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    	<Directory "/usr/lib/cgi-bin">
    		AllowOverride None
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    	</Directory>
    
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
    
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    #I added the following
        <Files ~ "\.(pl|cgi)$">
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options +ExecCGI
        PerlSendHeader On
        </Files>
    
    
    
    <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/cgi-bin >
    ####(the perl/cgi scripts can be stored out of the cgi-bin directory, but thats a story for another day. Lets concentrate on washing out the issue at hand)
    ####
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    
    ScriptAlias /cgi-bin/ /var/www/cgi-bin
    
    <Directory /var/www/cgi-bin>
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    AddHandler cgi-script .pl
    Order allow,deny
    allow from all
    </Directory>s ~ "\.(pl|cgi)$">
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options +ExecCGI
        PerlSendHeader On
        </Files>
    
    
    
    <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/cgi-bin >
    ####(the perl/cgi scripts can be stored out of the cgi-bin directory, but thats a story for another day. Lets concentrate on washing out the issue at hand)
    ####
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    
    ScriptAlias /cgi-bin/ /var/www/cgi-bin
    
    <Directory /var/www/cgi-bin>
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    AddHandler cgi-script .pl
    Order allow,deny
    allow from all
    </Directory>
    
    #I added the above
    deniz@debian:~$ cat /etc/apache2/apache2.conf
    # This is the main Apache server configuration file.  It contains the
    # configuration directives that give the server its instructions.
    # See http://httpd.apache.org/docs/2.2/ for detailed information about
    # the directives and /usr/share/doc/apache2-common/README.Debian.gz about
    # Debian specific hints.
    #
    #
    # Summary of how the Apache 2 configuration works in Debian:
    # The Apache 2 web server configuration in Debian is quite different to
    # upstream's suggested way to configure the web server. This is because Debian's
    # default Apache2 installation attempts to make adding and removing modules,
    # virtual hosts, and extra configuration directives as flexible as possible, in
    # order to make automating the changes and administering the server as easy as
    # possible.
    
    # It is split into several files forming the configuration hierarchy outlined
    # below, all located in the /etc/apache2/ directory:
    #
    #	/etc/apache2/
    #	|-- apache2.conf
    #	|	`--  ports.conf
    #	|-- mods-enabled
    #	|	|-- *.load
    #	|	`-- *.conf
    #	|-- conf.d
    #	|	`-- *
    # 	`-- sites-enabled
    #	 	`-- *
    #
    #
    # * apache2.conf is the main configuration file (this file). It puts the pieces
    #   together by including all remaining configuration files when starting up the
    #   web server.
    #
    #   In order to avoid conflicts with backup files, the Include directive is
    #   adapted to ignore files that:
    #   - do not begin with a letter or number
    #   - contain a character that is neither letter nor number nor _-:.
    #   - contain .dpkg
    #
    #   Yet we strongly suggest that all configuration files either end with a
    #   .conf or .load suffix in the file name. The next Debian release will
    #   ignore files not ending with .conf (or .load for mods-enabled).
    #
    # * ports.conf is always included from the main configuration file. It is
    #   supposed to determine listening ports for incoming connections, and which
    #   of these ports are used for name based virtual hosts.
    #
    # * Configuration files in the mods-enabled/ and sites-enabled/ directories
    #   contain particular configuration snippets which manage modules or virtual
    #   host configurations, respectively.
    #
    #   They are activated by symlinking available configuration files from their
    #   respective *-available/ counterparts. These should be managed by using our
    #   helpers a2enmod/a2dismod, a2ensite/a2dissite. See
    #   their respective man pages for detailed information.
    #
    # * Configuration files in the conf.d directory are either provided by other
    #   packages or may be added by the local administrator. Local additions
    #   should start with local- or end with .local.conf to avoid name clashes. All
    #   files in conf.d are considered (excluding the exceptions noted above) by
    #   the Apache 2 web server.
    #
    # * The binary is called apache2. Due to the use of environment variables, in
    #   the default configuration, apache2 needs to be started/stopped with
    #   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
    #   work with the default configuration.
    
    
    # Global configuration
    #
    
    #
    # ServerRoot: The top of the directory tree under which the server's
    # configuration, error, and log files are kept.
    #
    # NOTE!  If you intend to place this on an NFS (or otherwise network)
    # mounted filesystem then please read the LockFile documentation (available
    # at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
    # you will save yourself a lot of trouble.
    #
    # Do NOT add a slash at the end of the directory path.
    #
    #ServerRoot "/etc/apache2"
    
    #
    # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
    #
    LockFile ${APACHE_LOCK_DIR}/accept.lock
    
    #
    # PidFile: The file in which the server should record its process
    # identification number when it starts.
    # This needs to be set in /etc/apache2/envvars
    #
    PidFile ${APACHE_PID_FILE}
    
    #
    # Timeout: The number of seconds before receives and sends time out.
    #
    Timeout 300
    
    #
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    #
    KeepAlive On
    
    #
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We recommend you leave this number high, for maximum performance.
    #
    MaxKeepAliveRequests 100
    
    #
    # KeepAliveTimeout: Number of seconds to wait for the next request from the
    # same client on the same connection.
    #
    KeepAliveTimeout 5
    
    ##
    ## Server-Pool Size Regulation (MPM specific)
    ## 
    
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_prefork_module>
        StartServers          5
        MinSpareServers       5
        MaxSpareServers      10
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # worker MPM
    # StartServers: initial number of server processes to start
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
    #              graceful restart. ThreadLimit can only be changed by stopping
    #              and starting Apache.
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxClients: maximum number of simultaneous client connections
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_worker_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # event MPM
    # StartServers: initial number of server processes to start
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxClients: maximum number of simultaneous client connections
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_event_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # These need to be set in /etc/apache2/envvars
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    
    #
    # AccessFileName: The name of the file to look for in each directory
    # for additional configuration directives.  See also the AllowOverride
    # directive.
    #
    
    AccessFileName .htaccess
    
    #
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    #
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy all
    </Files>
    
    #
    # DefaultType is the default MIME type the server will use for a document
    # if it cannot otherwise determine one, such as from filename extensions.
    # If your server contains mostly text or HTML documents, "text/plain" is
    # a good value.  If most of your content is binary, such as applications
    # or images, you may want to use "application/octet-stream" instead to
    # keep browsers from trying to display binary files as though they are
    # text.
    #
    # It is also possible to omit any default MIME type and let the
    # client's browser guess an appropriate action instead. Typically the
    # browser will decide based on the file's extension then. In cases
    # where no good assumption can be made, letting the default MIME type
    # unset is suggested  instead of forcing the browser to accept
    # incorrect  metadata.
    #
    DefaultType None
    
    
    #
    # HostnameLookups: Log the names of clients or just their IP addresses
    # e.g., www.apache.org (on) or 204.62.129.132 (off).
    # The default is off because it'd be overall better for the net if people
    # had to knowingly turn this feature on, since enabling it means that
    # each client request will result in AT LEAST one lookup request to the
    # nameserver.
    #
    HostnameLookups Off
    
    # ErrorLog: The location of the error log file.
    # If you do not specify an ErrorLog directive within a <VirtualHost>
    # container, error messages relating to that virtual host will be
    # logged here.  If you *do* define an error logfile for a <VirtualHost>
    # container, that host's errors will be logged there and not here.
    #
    ErrorLog ${APACHE_LOG_DIR}/error.log
    
    #
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #
    LogLevel warn
    
    # Include module configuration:
    Include mods-enabled/*.load
    Include mods-enabled/*.conf
    
    # Include list of ports to listen on and which to use for name based vhosts
    Include ports.conf
    
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    # If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
    #
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    
    # Include of directories ignores editors' and dpkg's backup files,
    # see the comments above for details.
    
    # Include generic snippets of statements
    Include conf.d/
    
    # Include the virtual host configurations:
    Include sites-enabled/
    
    #I added the following
    AddHandler cgi-script .cgi .pl
    <Files ~ "\.pl$">
    Options +ExecCGI
    </Files>
    <Files ~ "\.cgi$">
    Options +ExecCGI
    </Files>
    
    <IfModule mod_perl.c>
    <IfModule mod_alias.c>
    Alias /perl/ /home/sly/host/perl/
    </IfModule>
    <Location /perl>
    SetHandler perl-script
    PerlHandler Apache::Registry
    Options +ExecCGI
    </Location>
    </IfModule>
    
    <Files ~ "\.pl$">
    Options +ExecCGI
    </Files>
    #I added the above
    deniz@debian:~$ cat /etc/apache2/sites-enabled/000-default
    <VirtualHost *:80>
    	ServerAdmin webmaster@localhost
    
    	DocumentRoot /var/www
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    	</Directory>
    	<Directory /var/www/>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride None
    		Order allow,deny
    		allow from all
    	</Directory>
    
    	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    	<Directory "/usr/lib/cgi-bin">
    		AllowOverride None
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    	</Directory>
    
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
    
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    #I added the following
        <Files ~ "\.(pl|cgi)$">
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options +ExecCGI
        PerlSendHeader On
        </Files>
    
    
    
    <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/cgi-bin >
    ####(the perl/cgi scripts can be stored out of the cgi-bin directory, but thats a story for another day. Lets concentrate on washing out the issue at hand)
    ####
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    
    ScriptAlias /cgi-bin/ /var/www/cgi-bin
    
    <Directory /var/www/cgi-bin>
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    AddHandler cgi-script .pl
    Order allow,deny
    allow from all
    </Directory>s ~ "\.(pl|cgi)$">
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options +ExecCGI
        PerlSendHeader On
        </Files>
    
    
    
    <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/cgi-bin >
    ####(the perl/cgi scripts can be stored out of the cgi-bin directory, but thats a story for another day. Lets concentrate on washing out the issue at hand)
    ####
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    
    ScriptAlias /cgi-bin/ /var/www/cgi-bin
    
    <Directory /var/www/cgi-bin>
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    AddHandler cgi-script .pl
    Order allow,deny
    allow from all
    </Directory>
    
    #I added the above
    deniz@debian:~$
    I then put the perlcgi.cgi script in /var/www/cgi-bin as well as in /var/www just to make sure.

    I tried going to http://127.0.0.1:/cgi-bin/perlcgi.cgi as well as http://localhost/cgi-bin/perlcgi.cgi but neither work. Did I make a small mistake or a large one?

  • #7
    Super Moderator
    Join Date
    May 2005
    Location
    Southern tip of Silicon Valley
    Posts
    2,874
    Thanks
    2
    Thanked 164 Times in 159 Posts
    What does "but neither work" mean? What response are you getting? Did you check the web server error log? What error(s) did it show?

    Your ScriptAlias directive indicates that cgi scripts need to be in the /usr/lib/cgi-bin/ directory. Is that where you put it? Looking further, I see that you have multiple conflicting ScriptAlias directives. That will cause problems.

    Are the permissions on the script set to 655 and is the path in the shebang line correct?

    Do any .pl or .cgi scripts work?

    You seem to have randomly added conflicting directives in an attempt to get this working without understanding the consequences.

    A clean install of apache will have the proper configuration to run .pl scripts. I suggest that you start over by reverting the httpd.conf file back to it's default and then troubleshoot from that point.

  • #8
    s3a
    s3a is offline
    New to the CF scene
    Join Date
    Jun 2012
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Sorry, I should have specified what the errors were.

    At first, the errors were: “Could not connect to localhost” and “Could not connect to 127.0.0.1”

    but then I removed every single apache file and reinstalled apache and got these errors:

    “Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.
    Apache/2.2.22 (Debian) Server at localhost Port 80”

    and

    “Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.
    Apache/2.2.22 (Debian) Server at 127.0.0.1 Port 80”

    This time, I left the configurations to their defaults and placed the perlcgi.cgi file in the following directory: /usr/lib/cgi-bin/. I also gave the read, write and execute permissions to the perlcgi.cgi file:

    Code:
    sudo chown -R deniz /usr/lib/cgi-bin/perlcgi.cgi
    chmod u+rwx /usr/lib/cgi-bin/perlcgi.cgi
    Here is what I posted earlier but without my modifications (from removing all the files and reinstalling apache from scratch):

    Code:
    deniz@debian:~$ cat /etc/hosts
    127.0.0.1	localhost
    127.0.1.1	debian
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    deniz@debian:~$ cat /etc/apache2/sites-available/default
    <VirtualHost *:80>
    	ServerAdmin webmaster@localhost
    
    	DocumentRoot /var/www
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    	</Directory>
    	<Directory /var/www/>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride None
    		Order allow,deny
    		allow from all
    	</Directory>
    
    	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    	<Directory "/usr/lib/cgi-bin">
    		AllowOverride None
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    	</Directory>
    
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
    
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    deniz@debian:~$ cat /etc/apache2/apache2.conf
    # This is the main Apache server configuration file.  It contains the
    # configuration directives that give the server its instructions.
    # See http://httpd.apache.org/docs/2.2/ for detailed information about
    # the directives and /usr/share/doc/apache2-common/README.Debian.gz about
    # Debian specific hints.
    #
    #
    # Summary of how the Apache 2 configuration works in Debian:
    # The Apache 2 web server configuration in Debian is quite different to
    # upstream's suggested way to configure the web server. This is because Debian's
    # default Apache2 installation attempts to make adding and removing modules,
    # virtual hosts, and extra configuration directives as flexible as possible, in
    # order to make automating the changes and administering the server as easy as
    # possible.
    
    # It is split into several files forming the configuration hierarchy outlined
    # below, all located in the /etc/apache2/ directory:
    #
    #	/etc/apache2/
    #	|-- apache2.conf
    #	|	`--  ports.conf
    #	|-- mods-enabled
    #	|	|-- *.load
    #	|	`-- *.conf
    #	|-- conf.d
    #	|	`-- *
    # 	`-- sites-enabled
    #	 	`-- *
    #
    #
    # * apache2.conf is the main configuration file (this file). It puts the pieces
    #   together by including all remaining configuration files when starting up the
    #   web server.
    #
    #   In order to avoid conflicts with backup files, the Include directive is
    #   adapted to ignore files that:
    #   - do not begin with a letter or number
    #   - contain a character that is neither letter nor number nor _-:.
    #   - contain .dpkg
    #
    #   Yet we strongly suggest that all configuration files either end with a
    #   .conf or .load suffix in the file name. The next Debian release will
    #   ignore files not ending with .conf (or .load for mods-enabled).
    #
    # * ports.conf is always included from the main configuration file. It is
    #   supposed to determine listening ports for incoming connections, and which
    #   of these ports are used for name based virtual hosts.
    #
    # * Configuration files in the mods-enabled/ and sites-enabled/ directories
    #   contain particular configuration snippets which manage modules or virtual
    #   host configurations, respectively.
    #
    #   They are activated by symlinking available configuration files from their
    #   respective *-available/ counterparts. These should be managed by using our
    #   helpers a2enmod/a2dismod, a2ensite/a2dissite. See
    #   their respective man pages for detailed information.
    #
    # * Configuration files in the conf.d directory are either provided by other
    #   packages or may be added by the local administrator. Local additions
    #   should start with local- or end with .local.conf to avoid name clashes. All
    #   files in conf.d are considered (excluding the exceptions noted above) by
    #   the Apache 2 web server.
    #
    # * The binary is called apache2. Due to the use of environment variables, in
    #   the default configuration, apache2 needs to be started/stopped with
    #   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
    #   work with the default configuration.
    
    
    # Global configuration
    #
    
    #
    # ServerRoot: The top of the directory tree under which the server's
    # configuration, error, and log files are kept.
    #
    # NOTE!  If you intend to place this on an NFS (or otherwise network)
    # mounted filesystem then please read the LockFile documentation (available
    # at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
    # you will save yourself a lot of trouble.
    #
    # Do NOT add a slash at the end of the directory path.
    #
    #ServerRoot "/etc/apache2"
    
    #
    # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
    #
    LockFile ${APACHE_LOCK_DIR}/accept.lock
    
    #
    # PidFile: The file in which the server should record its process
    # identification number when it starts.
    # This needs to be set in /etc/apache2/envvars
    #
    PidFile ${APACHE_PID_FILE}
    
    #
    # Timeout: The number of seconds before receives and sends time out.
    #
    Timeout 300
    
    #
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    #
    KeepAlive On
    
    #
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We recommend you leave this number high, for maximum performance.
    #
    MaxKeepAliveRequests 100
    
    #
    # KeepAliveTimeout: Number of seconds to wait for the next request from the
    # same client on the same connection.
    #
    KeepAliveTimeout 5
    
    ##
    ## Server-Pool Size Regulation (MPM specific)
    ## 
    
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_prefork_module>
        StartServers          5
        MinSpareServers       5
        MaxSpareServers      10
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # worker MPM
    # StartServers: initial number of server processes to start
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
    #              graceful restart. ThreadLimit can only be changed by stopping
    #              and starting Apache.
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxClients: maximum number of simultaneous client connections
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_worker_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # event MPM
    # StartServers: initial number of server processes to start
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxClients: maximum number of simultaneous client connections
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule mpm_event_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    
    # These need to be set in /etc/apache2/envvars
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    
    #
    # AccessFileName: The name of the file to look for in each directory
    # for additional configuration directives.  See also the AllowOverride
    # directive.
    #
    
    AccessFileName .htaccess
    
    #
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    #
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy all
    </Files>
    
    #
    # DefaultType is the default MIME type the server will use for a document
    # if it cannot otherwise determine one, such as from filename extensions.
    # If your server contains mostly text or HTML documents, "text/plain" is
    # a good value.  If most of your content is binary, such as applications
    # or images, you may want to use "application/octet-stream" instead to
    # keep browsers from trying to display binary files as though they are
    # text.
    #
    # It is also possible to omit any default MIME type and let the
    # client's browser guess an appropriate action instead. Typically the
    # browser will decide based on the file's extension then. In cases
    # where no good assumption can be made, letting the default MIME type
    # unset is suggested  instead of forcing the browser to accept
    # incorrect  metadata.
    #
    DefaultType None
    
    
    #
    # HostnameLookups: Log the names of clients or just their IP addresses
    # e.g., www.apache.org (on) or 204.62.129.132 (off).
    # The default is off because it'd be overall better for the net if people
    # had to knowingly turn this feature on, since enabling it means that
    # each client request will result in AT LEAST one lookup request to the
    # nameserver.
    #
    HostnameLookups Off
    
    # ErrorLog: The location of the error log file.
    # If you do not specify an ErrorLog directive within a <VirtualHost>
    # container, error messages relating to that virtual host will be
    # logged here.  If you *do* define an error logfile for a <VirtualHost>
    # container, that host's errors will be logged there and not here.
    #
    ErrorLog ${APACHE_LOG_DIR}/error.log
    
    #
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #
    LogLevel warn
    
    # Include module configuration:
    Include mods-enabled/*.load
    Include mods-enabled/*.conf
    
    # Include list of ports to listen on and which to use for name based vhosts
    Include ports.conf
    
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    # If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
    #
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    
    # Include of directories ignores editors' and dpkg's backup files,
    # see the comments above for details.
    
    # Include generic snippets of statements
    Include conf.d/
    
    # Include the virtual host configurations:
    Include sites-enabled/
    deniz@debian:~$
    Lastly, I didn't try any .pl files but the perlcgi.cgi file I keep on trying does not work (errors are already mentioned above).

    I think /usr/bin/perl is a link that points to /usr/bin/perl5.14.2 if it matters.

    And, sorry for the dumb question but, where exactly is the web server error log?

    If I missed something, tell me and I will add it.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •