Question

Cgi related problem

Asked by: kashirmerwe

I am on windows with Apache2 server. I am trying to run perl and python scripts from my cgi folder but I get access forbidden. I hope someone can help me out here.  This is how my httpd.conf looks like:

 ScriptAlias /cgi-bin/ "D:/xampp/htdocs/cgi-bin/"

AddHandler cgi-script .cgi .pl .exe .py
<Directory  "D:/xampp/htdocs/cgi-bin/">
 Options +ExecCGI
    Allow from all
</Directory>

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-07-24 at 02:04:31ID24597294
Tags

cgi-bin

,

perl

,

python

Topics

CGI Scripting

,

Perl Programming Language

,

Python Scripting Language

Participating Experts
4
Points
500
Comments
51

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Perl CGI
    Hi, I'm new in Perl/CGI world. I have a html page that contains a call to .cgi file. However, seems like it doesn't work. I did install a Sambar Web Server in my pc & load the cgi-lib.pl in my /cgi-bin directory. I have no ideas in solving this probs. test.html--->p...
  2. CGI Configuration.
    For Some reason my Apache does not run CGI Script and gives me Error 500 or Error 404. Here below is the config of my server related to CGI. ScriptAlias /cgi-bin/ "E:/root/lhn/root/cgi-bin" <Directory "E:/root/lhn/root/cgi-bin"> AllowOverride Non...
  3. CGI Trim
    Hi, Is there a way to trim a stirng in CGI? NeoTek
  4. pelase relate PERL and CGI
    I need to learn PERL. i got perl.org and perl.com pelase can you relate PERL and CGI. how are they related and how are they different...... furthermore, i know c, c++, vc++, java, vb, asp, html, javascript, .... any relation of PERL with there. what abt PHP where does PHP sta...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: Fairlight2cxPosted on 2009-07-24 at 02:39:53ID: 24933316

In the directory section, try adding:

Order allow,deny

Add it as a line above the Allow from all.

 

by: kashirmerwePosted on 2009-07-24 at 03:06:01ID: 24933427

Problem persist. This is my error log

[Fri Jul 24 12:00:12 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 62\r
[Fri Jul 24 12:00:12 2009] [error] [client 127.0.0.1]     print "\\n[!] Message Sent Successfully" \r
[Fri Jul 24 12:00:12 2009] [error] [client 127.0.0.1]                                           ^\r
[Fri Jul 24 12:00:12 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r
[Fri Jul 24 12:00:27 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Fri Jul 24 12:00:27 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 62\r
[Fri Jul 24 12:00:27 2009] [error] [client 127.0.0.1]     print "\\n[!] Message Sent Successfully" \r
[Fri Jul 24 12:00:27 2009] [error] [client 127.0.0.1]                                           ^\r
[Fri Jul 24 12:00:27 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r

 

by: Fairlight2cxPosted on 2009-07-24 at 03:32:58ID: 24933546

Looks like the problem is not in apache, but rather in your python script.  It seems to be trying to execute your script.

Premature end of script headers generally indicates you have not sent a MIME Content-Type header, but have sent output--or gotten an error.

Try making the very first thing the script does be to output:

Content-Type: text/plain

And a blank line after that to end the headers.

 

by: kashirmerwePosted on 2009-07-24 at 03:45:27ID: 24933600

#!c:/perl/bin/perl.exe
print("Content-Type: text/html\n\n");

print("Hello world!\n");
exit 0

I tried the above code. Same problem here. This is my error log:

[Fri Jul 24 12:05:33 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Fri Jul 24 12:16:54 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Fri Jul 24 12:40:38 2009] [error] [client 127.0.0.1] attempt to invoke directory as script: D:/xampp/htdocs/cgi-bin/

 

by: kashirmerwePosted on 2009-07-24 at 04:06:50ID: 24933682

I run the above script in command line and there was no error! What I received was Hello World!

Expecting your prompt response

 

by: kashirmerwePosted on 2009-07-24 at 07:06:27ID: 24935011

Still struggling with it. Anyone here to assist?

 

by: Adam314Posted on 2009-07-24 at 07:08:51ID: 24935025

The directory should not end in a slash.  So, instead of this:
    <Directory  "D:/xampp/htdocs/cgi-bin/">
Try this:
    <Directory  "D:/xampp/htdocs/cgi-bin">

 

by: kashirmerwePosted on 2009-07-24 at 07:18:35ID: 24935132

I removed the slash and restarted my apache web server, but the error remains.

This is how my system is structured, my apache resides in drive D: and both activestate and python30 interpreters are located in drive C: do you think that might have caused the problem?

 

by: Adam314Posted on 2009-07-24 at 07:45:41ID: 24935409

Is c:/perl/bin/perl.exe the correct path to your perl.exe?
Is there anything else in your error log?  

 

by: kashirmerwePosted on 2009-07-24 at 08:44:25ID: 24936080

c:\perl\bin\perl.exe is my correct path to perl.exe and there is nothing else in my error log

 

by: kashirmerwePosted on 2009-07-24 at 09:24:42ID: 24936519

I dont know if am the only one experiencing this problem. But it really kicking me

 

by: Fairlight2cxPosted on 2009-07-24 at 09:44:50ID: 24936700

You know, you said you're running Apache 2.  Thing is, you also said, "My httpd.conf looks like [...]."

I have yet to see an install of Apache 2.x that utilises only the main httpd.conf.  They entirely redid the configuration system from 1.3 to 2.x.  It's based largely on includes from conf.d and vhosts.d in the distributions I've worked with.

I'm wondering if you've actually got the ScriptAlias and Directory sections in the right place in the configuration, attached to the right host/virtualhost and port.

Doublecheck where you have these placed.

Incidentally, and it probably has no bearing on the issue, but I'd add -Indexes to the Options.  I've never seen a production system without the CGI directory having both +ExecCGI and -Indexes.

 

by: kashirmerwePosted on 2009-07-24 at 09:57:42ID: 24936835

this is everything that I have in httpd.conf

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
# In particular, see 
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.  
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "D:/xampp/apache" will be interpreted by the
# server as "D:/xampp/apache/logs/foo.log".
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which Apache.exe is located
# will be used by default.  It is recommended that you always supply
# an explicit drive letter in absolute paths, however, to avoid
# confusion.
#
 
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
ThreadsPerChild 250
MaxRequestsPerChild  0
 
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk.  If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
#
ServerRoot "D:/xampp/apache"
 
#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 80
 
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule charset_lite_module modules/mod_charset_lite.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule mime_module modules/mod_mime.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule speling_module modules/mod_speling.so
LoadModule status_module modules/mod_status.so
LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule ssl_module modules/mod_ssl.so
 
#LoadModule autoindex_color_module modules/mod_autoindex_color.so
#LoadModule mysql_auth_module modules/mod_auth_mysql.so
#LoadModule auth_remote_module modules/mod_auth_remote.so
#LoadModule sspi_auth_module modules/mod_auth_sspi.so
#LoadModule log_sql_module modules/mod_log_sql.so
#LoadModule log_sql_mysql_module modules/mod_log_sql_mysql.so
#<IfModule ssl_module>
#    LoadModule log_sql_ssl_module modules/mod_log_sql_ssl.so
#</IfModule>
#LoadModule proxy_html_module modules/mod_proxy_html.so
#LoadModule xmlns_module modules/mod_xmlns.so
#LoadModule proxy_xml_module modules/mod_proxy_xml.so
#LoadModule bw_module modules/mod_bw.so
 
### SVN from XAMPP devel package ###
#LoadModule dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module modules/mod_authz_svn.so
 
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
 
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin admin@localhost
 
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80
 
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "D:/xampp/htdocs"
 
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
 
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
 
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "D:/xampp/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks Includes ExecCGI
   
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
 
    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all
 
</Directory>
 
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.cgi index.php index.php4 index.php3 index.pl index.html index.htm index.shtml index.phtml
</IfModule>
 
#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
</FilesMatch>
 
#
# 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 logs/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
 
<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
 
    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
 
    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    CustomLog logs/access.log common
 
    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog logs/access.log combined
</IfModule>
 
<IfModule alias_module>
    #
    # Redirect: Allows you to tell clients about documents that used to 
    # exist in your server's namespace, but do not anymore. The client 
    # will make a new request for the document at its new location.
    # Example:
    # Redirect permanent /foo http://www.example.com/bar
 
    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.
 
    #
    # ScriptAlias: This controls which directories contain server scripts. 
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    
</IfModule>
 
#
# "D:/xampp/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
 ScriptAlias /cgi-bin/ "D:/xampp/htdocs/cgi-bin/"
 
AddHandler cgi-script .cgi .pl .exe .py
<Directory  "D:/xampp/htdocs/cgi-bin">
 Options +ExecCGI
 Order allow,deny
    Allow from all
</Directory>
 
 
# 
# Apache parses all CGI scripts for the shebang line by default.
# This comment line, the first line of the script, consists of the symbols
# pound (#) and exclamation (!) followed by the path of the program that 
# can execute this specific script.  For a perl script, with perl.exe in
# the C:\Program Files\Perl directory, the shebang line should be:
 
   #!c:/Python30/python.exe
   #!c:/perl/bin/perl.exe
 
# Note you _must_not_ indent the actual shebang line, and it must be the
# first line of the file.  Of course, CGI processing must be enabled by 
# the appropriate ScriptAlias or Options ExecCGI directives for the files 
# or directory in question.
#
# However, Apache on Windows allows either the Unix behavior above, or can
# use the Registry to match files by extention.  The command to execute 
# a file of this type is retrieved from the registry by the same method as 
# the Windows Explorer would use to handle double-clicking on a file.
# These script actions can be configured from the Windows Explorer View menu, 
# 'Folder Options', and reviewing the 'File Types' tab.  Clicking the Edit
# button allows you to modify the Actions, of which Apache 1.3 attempts to
# perform the 'Open' Action, and failing that it will try the shebang line.
# This behavior is subject to change in Apache release 2.0.
#
# Each mechanism has it's own specific security weaknesses, from the means
# to run a program you didn't intend the website owner to invoke, and the
# best method is a matter of great debate.
#
# To enable the this Windows specific behavior (and therefore -disable- the
# equivilant Unix behavior), uncomment the following directive:
#
ScriptInterpreterSource registry
#
# The directive above can be placed in individual <Directory> blocks or the
# .htaccess file, with either the 'registry' (Windows behavior) or 'script' 
# (Unix behavior) option, and will override this server default option.
#
 
#
# DefaultType: 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.
#
DefaultType text/plain
 
<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types
 
    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
 
    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi .py .pl
 
    # For files that include their own HTTP headers:
    #AddHandler send-as-is asis
 
    # For server-parsed imagemap files:
    #AddHandler imap-file map
 
    # For type maps (negotiated resources):
    #AddHandler type-map var
 
    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
   AddType text/html .shtml
   AddOutputFilter INCLUDES .shtml
</IfModule>
 
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type.  The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#MIMEMagicFile conf/magic
 
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
 
#
# EnableMMAP and EnableSendfile: On systems that support it, 
# memory-mapping or the sendfile syscall is used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted 
# filesystems or if support for these functions is otherwise
# broken on your system.
#
EnableMMAP off
EnableSendfile off
 
# Supplemental configuration
#
# The configuration files in the conf/extra/ directory can be 
# included to add extra features or to modify the default configuration of 
# the server, or you may simply copy their contents here and change as 
# necessary.
 
# XAMPP specific settings
Include conf/extra/httpd-xampp.conf
 
# Server-pool management (MPM specific)
# Include conf/extra/httpd-mpm.conf
 
# Multi-language error messages
Include conf/extra/httpd-multilang-errordoc.conf
 
# Fancy directory listings
Include conf/extra/httpd-autoindex.conf
 
# Language settings
Include conf/extra/httpd-languages.conf
 
# User home directories
Include conf/extra/httpd-userdir.conf
 
# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf
 
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
 
# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf
 
# Distributed authoring and versioning (WebDAV)
Include conf/extra/httpd-dav.conf
 
# Various default settings
Include conf/extra/httpd-default.conf
 
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
 
#
# Note: The following must must be present to support
#       starting without SSL on platforms with no /dev/random equivalent
#       but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:

Select allOpen in new window

 

by: clockwatcherPosted on 2009-07-24 at 10:43:23ID: 24937223

Can you retry your perl script?  These "see .pl" entries look a little iffy to me.  Like you're possibly not using the correct URL to reach your script:  Your errors relating to the python script look like you're using the right URL but that there's a problem with the script.  Can you temporarily change your python test.py script to:

print "Content-type: text/html\n\n"
print "hello"

Either that or post your test.py script so we can see what the error may be (if there is one).

 

by: Fairlight2cxPosted on 2009-07-24 at 10:49:16ID: 24937264

I'd like to see the actual URLs being called.

 

by: kashirmerwePosted on 2009-07-24 at 11:27:18ID: 24937612

I created a folder in my root directory "cgi-bin" and I have the following files

see.pl
test.py

I start my apache from the control panel and visit the below URL

http://localhost/cgi-bin/test.py
------------------------------------------------
Error message:
Premature end of script headers: test.py
--------------------------------------------------

http://localhost/cgi-bin/see.pl
----------------------------------------------
Loading forever without output
----------------------------------------


This is what I have in my error log when I tried the above URL's

[Fri Jul 24 20:15:44 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Fri Jul 24 20:15:44 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 62\r
[Fri Jul 24 20:15:44 2009] [error] [client 127.0.0.1]     print "\\n[!] Message Sent Successfully" \r
[Fri Jul 24 20:15:44 2009] [error] [client 127.0.0.1]                                           ^\r
[Fri Jul 24 20:15:44 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r
[Fri Jul 24 20:16:11 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Fri Jul 24 20:16:11 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 2\r
[Fri Jul 24 20:16:11 2009] [error] [client 127.0.0.1]     print "Content-type: text/html\\n\\n"\r
[Fri Jul 24 20:16:11 2009] [error] [client 127.0.0.1]                                       ^\r
[Fri Jul 24 20:16:11 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r
[Fri Jul 24 20:21:20 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Fri Jul 24 20:21:20 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 1\r
[Fri Jul 24 20:21:20 2009] [error] [client 127.0.0.1]     print "Content-type: text/html\\n\\n"\r
[Fri Jul 24 20:21:20 2009] [error] [client 127.0.0.1]                                       ^\r
[Fri Jul 24 20:21:20 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r
[Fri Jul 24 20:21:22 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Fri Jul 24 20:21:22 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\htdocs\\cgi-bin\\test.py", line 1\r
[Fri Jul 24 20:21:22 2009] [error] [client 127.0.0.1]     print "Content-type: text/html\\n\\n"\r
[Fri Jul 24 20:21:22 2009] [error] [client 127.0.0.1]                                       ^\r
[Fri Jul 24 20:21:22 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

Select allOpen in new window

 

by: kashirmerwePosted on 2009-07-25 at 10:36:48ID: 24942446

someone to help please?

 

by: FishMongerPosted on 2009-07-25 at 12:45:17ID: 24942932

First possible issue I see is that you have cgi-bin as a subdir of htdocs.  They should be at the same level.

Try changing it to:

AddHandler cgi-script .cgi .pl .exe .py
 
ScriptAlias /cgi-bin/ "D:/xampp/cgi-bin/"
 
<Directory "D:/xampp/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

Select allOpen in new window

 

by: FishMongerPosted on 2009-07-25 at 12:47:29ID: 24942941

ScriptAlias /cgi-bin/ "D:/xampp/cgi-bin/"

I forgot...drop the trailing / like so:

ScriptAlias /cgi-bin/ "D:/xampp/cgi-bin"

                                              
1:

Select allOpen in new window

 

by: kashirmerwePosted on 2009-07-25 at 14:00:02ID: 24943118

I tried the above exactly. This is the result:

This is my URL: http://localhost/cgi-bin/test.py
The script in the file looks like this:

print "Content-type: text/html\n\n"
print "hello"

The output on my browser:
-------------------------------------------------------------------
Access forbidden!

You don't have permission to access the requested object. It is either read-protected or not readable by the server.
--------------------------------------------------------------------

Error Log:

[Sat Jul 25 22:56:54 2009] [notice] Server built: Dec 10 2008 00:10:06
[Sat Jul 25 22:56:54 2009] [notice] Parent: Created child process 8104
[Sat Jul 25 22:56:56 2009] [notice] Digest: generating secret for digest authentication ...
[Sat Jul 25 22:56:56 2009] [notice] Digest: done
[Sat Jul 25 22:56:57 2009] [notice] Child 8104: Child process is running
[Sat Jul 25 22:56:57 2009] [notice] Child 8104: Acquired the start mutex.
[Sat Jul 25 22:56:57 2009] [notice] Child 8104: Starting 250 worker threads.
[Sat Jul 25 22:56:57 2009] [notice] Child 8104: Starting thread to listen on port 443.
[Sat Jul 25 22:56:57 2009] [notice] Child 8104: Starting thread to listen on port 80.
[Sat Jul 25 22:56:57 2009] [error] [client 127.0.0.1] client denied by server configuration: D:/xampp/cgi-bintest.py

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

Select allOpen in new window

 

by: FishMongerPosted on 2009-07-25 at 14:13:24ID: 24943155

What is the ownership and permission settings for the cgi-bin dir and scripts?

client denied by server configuration: D:/xampp/cgi-bintest.py

There's a missing / between the dir and the filename.  Is that a copy/paste error, or is that how you entered it in the browser?
i.e, did you enter this: http://localhost/cgi-bintest.py

 

by: FishMongerPosted on 2009-07-25 at 14:16:52ID: 24943172

I just noticed an error in my second post (ID:24942941), so disregard it and set the config as is in my first post.

 

by: kashirmerwePosted on 2009-07-25 at 15:57:25ID: 24943495

I have ignored your second post and added the slash (I believe that what you meant) This is the error I got

Server error!

The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: test.py

The below is my error log

[Sun Jul 26 00:55:10 2009] [notice] Digest: generating secret for digest authentication ...
[Sun Jul 26 00:55:10 2009] [notice] Digest: done
[Sun Jul 26 00:55:11 2009] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 configured -- resuming normal operations
[Sun Jul 26 00:55:11 2009] [notice] Server built: Dec 10 2008 00:10:06
[Sun Jul 26 00:55:11 2009] [notice] Parent: Created child process 7628
[Sun Jul 26 00:55:13 2009] [notice] Digest: generating secret for digest authentication ...
[Sun Jul 26 00:55:13 2009] [notice] Digest: done
[Sun Jul 26 00:55:15 2009] [notice] Child 7628: Child process is running
[Sun Jul 26 00:55:15 2009] [notice] Child 7628: Acquired the start mutex.
[Sun Jul 26 00:55:15 2009] [notice] Child 7628: Starting 250 worker threads.
[Sun Jul 26 00:55:15 2009] [notice] Child 7628: Starting thread to listen on port 80.
[Sun Jul 26 00:55:15 2009] [notice] Child 7628: Starting thread to listen on port 443.
[Sun Jul 26 00:55:18 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Sun Jul 26 00:55:18 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\cgi-bin\\test.py", line 1\r
[Sun Jul 26 00:55:18 2009] [error] [client 127.0.0.1]     print "Content-type: text/html\\n\\n"\r
[Sun Jul 26 00:55:18 2009] [error] [client 127.0.0.1]                                       ^\r
[Sun Jul 26 00:55:18 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:

Select allOpen in new window

 

by: FishMongerPosted on 2009-07-25 at 16:11:10ID: 24943540

Do you get the same error when calling a Perl script?

Try this Perl script.

#!/usr/bin/perl
 
print "Content-type:text/html\n\n";
print "hello world";

                                              
1:
2:
3:
4:

Select allOpen in new window

 

by: kashirmerwePosted on 2009-07-25 at 16:25:34ID: 24943569

The .pl extension didnt output anything! The browser was forever loading - Nothing got displayed

 

by: kashirmerwePosted on 2009-07-25 at 16:28:49ID: 24943576

This is the error log

[Sun Jul 26 01:24:34 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Sun Jul 26 01:25:01 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl

                                              
1:
2:

Select allOpen in new window

 

by: FishMongerPosted on 2009-07-25 at 16:33:55ID: 24943591

Do you have a file type association configured for the .pl extension?

Try changing the shebang line to point to perl.exe.

maybe:
#!c:/perl/bin/perl.exe

 

by: kashirmerwePosted on 2009-07-25 at 16:43:17ID: 24943611

I have done that, same problem. I have this quick question, My web server resides in D:\ drive while the Perl and Python installation folders are place in C:\ drive respectively! I hope this is not the cause of the problem.  

More so, the cgi-bin folder where the files are saved is not placed in the htdocs directory. There is a default cgi-bin folder that comes with Apache installation. I have placed all the files there.

Am I missing something, or what?

 

by: kashirmerwePosted on 2009-07-25 at 22:59:13ID: 24944441

Am in need of a solution. Some should help

 

by: kashirmerwePosted on 2009-07-26 at 07:27:49ID: 24945927

Awaiting solution

 

by: FishMongerPosted on 2009-07-27 at 08:49:05ID: 24952839

Change line 222 of http.conf from:
Options Indexes FollowSymLinks Includes ExecCGI

to this:
Options Indexes FollowSymLinks


Do you have an htaccess file that is doing any restrictions?

 

by: kashirmerwePosted on 2009-07-27 at 15:26:46ID: 24956536

I don't have any .htaccess file. I have changed the line as requested and the error remain the same

The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: test.py

The below was found in the error log

[Tue Jul 28 00:23:44 2009] [error] [client 127.0.0.1] Premature end of script headers: test.py
[Tue Jul 28 00:23:44 2009] [error] [client 127.0.0.1]   File "D:\\xampp\\cgi-bin\\test.py", line 2\r
[Tue Jul 28 00:23:44 2009] [error] [client 127.0.0.1]     print "Content-Type: text/html"\r
[Tue Jul 28 00:23:44 2009] [error] [client 127.0.0.1]                                   ^\r
[Tue Jul 28 00:23:44 2009] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r

                                              
1:
2:
3:
4:
5:

Select allOpen in new window

 

by: FishMongerPosted on 2009-07-27 at 16:59:40ID: 24956957

What about the Perl script?

 

by: FishMongerPosted on 2009-07-27 at 17:38:32ID: 24957082

Add this line to the Perl script just after the shebang line.

use CGI:Carp qw(fatalsToBrowser);

                                              
1:

Select allOpen in new window

 

by: kashirmerwePosted on 2009-07-28 at 01:26:40ID: 24958754

the perl script didnt output anything.

[Tue Jul 28 10:20:05 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Tue Jul 28 10:20:22 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Tue Jul 28 10:20:40 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl
[Tue Jul 28 10:20:56 2009] [error] [client 127.0.0.1] Premature end of script headers: see.pl

Thats the error log

 

by: kashirmerwePosted on 2009-07-28 at 03:52:10ID: 24959376

Do anyone think giving is the solution. No traces of error!

 

by: Fairlight2cxPosted on 2009-07-28 at 04:55:45ID: 24959739

Oh God.  This is still going on days later, eh?  I've taken a look through the thread and just noticed a few things.

I'd like you to attach actual files instead of using attach code snippet.

Please attach test.py, see.pl, your httpd.conf, and your error log.  Attach them as actual files, NOT copy/paste into the code snippet area.

We may be looking at a skewed picture of what's going on.  Until I get the actual files and see them under certain analysis, I don't want to venture more than that, other than to say that there are spurious \r sequences in your snippets, as well as double backslashes, etc.  Some of which may have a bearing on what's happening.  At this point, without the -actual files-, I can't tell if these are artifacts of EE's quoting mechanism, or if they're literal.  If they're literal, you have issues--although we'd be on the road to fixing them.

 

by: kashirmerwePosted on 2009-07-28 at 07:10:11ID: 24960798

These are the files you requested

 

by: FishMongerPosted on 2009-07-28 at 07:26:38ID: 24960994

The Perl script is missing a colon on the use CGI:Carp line, which was my error.  Change that line to:

use CGI::Carp qw(fatalsToBrowser);
                                              
1:

Select allOpen in new window

 

by: Fairlight2cxPosted on 2009-07-28 at 07:49:59ID: 24961228

As FishMonger said, it needs CGI::Carp with two colons.  Additionally, there should be a space after the colon on the Content-type: header:  

print "Content-type: text/plain\n\n";

httpd.conf, line 341, change to:

Options +ExecCGI -Indexes

I'm still curious as to why we're -literally- seeing double backslashes in the path to the script, as well as literal '\r' sequences in the error log.  The backslashes aren't indicated by any file you've put up here.  Hmmm.  Anyone else puzzled about that one as well?

Is there anything in conf/extra/httpd-xampp.conf ?  Please post the file, if so.  Actually, it might be worth looking at conf/extra/httpd-vhosts.conf as well, on the off chance your host is redefined and you're hitting the wrong configuration as one gets overloaded/overwritten.  I'd expect apache to complain strenuously about something like that, but God only knows with the 2.x trees.  It just hasn't been the same (ie., up to snuff) since 1.3.




 

by: Adam314Posted on 2009-07-28 at 08:09:06ID: 24961412

Can you run the perl/python scripts from a command prompt?  What is the output there?

Start a command prompt
Type:    cd /d d:\xampp\cgi-bin
Type:    see.pl
    (post output)
Type:    test.py
    (post output)

 

by: FishMongerPosted on 2009-07-28 at 08:11:53ID: 24961448

Options +ExecCGI -Indexes

That change is not needed in this case.
It would be needed in a directory block that is not configured as the path in a ScriptAlias directive.

This is the working apache default ScriptAlias (*nix) config and is the same config I use on my Windows boxes (except of course for fixing the dir paths).

# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
 
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:

Select allOpen in new window

 

by: kashirmerwePosted on 2009-07-28 at 12:51:24ID: 24964487

@ Adam314

When I run see.pl, it pop-up the file it self without any output on the cmd prompt. This is what I have in the file [see.pl]

#!c:/perl/bin/perl.exe
use CGI::Carp qw(fatalsToBrowser);
 
print "Content-type:text/html\n\n";
print "hello world";


For the test.py. I got this error

File "D:\xampp\cgi-bin\test.py", line 2
 print "Content-type: text/html\n\n"

SyntaxError: invalid syntax

This is what I have in text.py

#!C:/Python30/python.exe
print "Content-type: text/html\n\n"
print
print "Hello World!"

@Fairlight2cx

I have attached the both files that you requested:
conf/extra/httpd-xampp.conf
conf/extra/httpd-vhosts.conf

Thanks in advance








 

by: Fairlight2cxPosted on 2009-07-28 at 13:11:14ID: 24964686

Nothing in those httpd config files (the extras I asked for) that would be a factor.

What do you mean about the perl program popping up the file itself?  How -exactly- are you running it?  What -exactly- is the output?

As for the python, I tested it under python 2.3.4 on Solaris and it runs fine here.  I only tested because I'm not a python guy (yet, anyway) and wanted to verify the viability of the test script myself.  How -exactly- are you running it?

It's at about this point when one starts to wonder, "Would you actually let someone in via RDP to check this out hands-on?"  This thread has been going several days, we're quickly exhausting options, and I have a feeling this might be one of those times when it needs an actual eyeball on the system by someone that's used to doing this stuff.

 

by: kashirmerwePosted on 2009-07-28 at 14:32:59ID: 24965405

I donot have a problem via RDP or VNC which ever. But dont you think posting my IP address and other relevant port to the public could endanger my security. Kindly advise as I believe it would be better to have a one-on-one assistance.

Please let me know if am wrong

 

by: Fairlight2cxPosted on 2009-07-28 at 15:13:16ID: 24965709

You're absolutely correct.  Do NOT post that information here.  I was seeing if it was viable in general, as we seem to be at an impasse currently.

 

by: kashirmerwePosted on 2009-07-28 at 15:53:52ID: 24965950

So where do we take it from?

 

by: FishMongerPosted on 2009-07-28 at 16:14:02ID: 24966070

If you want to send me an email, I will vnc to your box a take a look.  I put my email address in my profile, but won't leave it there for long.

 

by: kashirmerwePosted on 2009-07-29 at 02:11:57ID: 24968322

I have sent an email to you

 

by: FishMongerPosted on 2009-07-29 at 09:34:26ID: 24971938

Unfortunately due to your ISP restrictions, I won't be able to vnc to you system.

If none of the suggestions that we've given so far have helped, then my next suggestion would be to start over and uninstall/reinstall xampp.

I've never been a fan of xampp.  I prefer to install each component separately so that I know what I'm installing and that each component is complete and standalone.  I'm not sure if it's still true, but in the past the components of an xampp installation were stripped down versions of the standalone components, particularly with the stripping out of standard/core Perl modules.

 

by: kashirmerwePosted on 2009-07-29 at 12:25:52ID: 24973648

I thank everyone for your assistance throughout this process. I can run perl scripts on my system without hassles. Thank you all

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...