mirror of https://gitee.com/openkylin/cups.git
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>
|