83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <HTML>
 | |
| <!-- SECTION: Getting Started -->
 | |
| <HEAD>
 | |
| 	<TITLE>Using CGI Programs</TITLE>
 | |
| 	<LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
 | |
| </HEAD>
 | |
| <BODY>
 | |
| 
 | |
| <H1 CLASS="title">Using CGI Programs</H1>
 | |
| 
 | |
| <P>CUPS provides a dynamic web interface through dedicated CGI programs that
 | |
| are executed when users open special directories on the CUPS server. Each CGI
 | |
| performs administration, class, help, job, and printer functions as directed by
 | |
| the user, but the actual programs that are run and functions that are available
 | |
| are limited to those that were originally designed into the scheduler.</P>
 | |
| 
 | |
| <P>CUPS also supports CGI programs and specific scripting languages (Java, Perl,
 | |
| PHP, and Python) for pages you want to provide.  The interpreters for these
 | |
| languages are currently configured at compile time and are associated with
 | |
| MIME media types. <a href="#TABLE1">Table 1</a> shows the MIME media types that
 | |
| are reserved for each type of page and are the same as those used by the Apache
 | |
| web server.</P>
 | |
| 
 | |
| <DIV CLASS="table"><TABLE SUMMARY="CGI MIME Media Types">
 | |
| <CAPTION><A NAME="TABLE1">Table 1</A>: CGI MIME Media Types</CAPTION>
 | |
| <TR>
 | |
| 	<TH>MIME Media Type</TH>
 | |
| 	<TH>Description</TH>
 | |
| </TR>
 | |
| <TR>
 | |
| 	<TD>application/x-httpd-cgi</TD>
 | |
| 	<TD>CGI script/program</TD>
 | |
| </TR>
 | |
| <TR>
 | |
| 	<TD>application/x-httpd-java</TD>
 | |
| 	<TD>Java program</TD>
 | |
| </TR>
 | |
| <TR>
 | |
| 	<TD>application/x-httpd-perl</TD>
 | |
| 	<TD>Perl script</TD>
 | |
| </TR>
 | |
| <TR>
 | |
| 	<TD>application/x-httpd-php</TD>
 | |
| 	<TD>PHP script</TD>
 | |
| </TR>
 | |
| <TR>
 | |
| 	<TD>application/x-httpd-python</TD>
 | |
| 	<TD>Python script</TD>
 | |
| </TR>
 | |
| </TABLE></DIV>
 | |
| 
 | |
| <H2><A NAME="CONFIG">Configuring the Server</A></H2>
 | |
| 
 | |
| <P>In order to enable the corresponding type, you must create a
 | |
| new <VAR>/etc/cups/cgi.types</VAR> file which maps the filename
 | |
| extensions to the appropriate MIME types, for example:</P>
 | |
| 
 | |
| <PRE CLASS="command">
 | |
| application/x-httpd-cgi cgi
 | |
| application/x-httpd-java class
 | |
| application/x-httpd-perl pl
 | |
| application/x-httpd-php php
 | |
| application/x-httpd-python py
 | |
| </PRE>
 | |
| 
 | |
| <P>CGI scripts/programs (application/x-httpd-cgi) also must be owned by root, have execution permissions, and not have world or group write permissions to be treated as a CGI script or program.</P>
 | |
| 
 | |
| <H2><A NAME="LIMITS">Limitations</A></H2>
 | |
| 
 | |
| <P>CUPS implements most of the CGI/1.1 specification, with the
 | |
| following exceptions:</P>
 | |
| 
 | |
| <UL>
 | |
| 
 | |
| 	<LI>No PATH_INFO or PATH_TRANSLATED support</LI>
 | |
| 
 | |
| 	<LI>Limited HTTP field support; only the Content-Length (CONTENT_LENGTH), Content-Type (CONTENT_TYPE), Cookie (HTTP_COOKIE), Referrer (HTTP_REFERRER), and User-Agent (HTTP_USER_AGENT) fields are placed in environment variables at this time</LI>
 | |
| 
 | |
| </UL>
 | |
| 
 | |
| </BODY>
 | |
| </HTML>
 |