Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / html / python / lib / node476.html
CommitLineData
920dae64
AT
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<link rel="STYLESHEET" href="lib.css" type='text/css' />
5<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
6<link rel='start' href='../index.html' title='Python Documentation Index' />
7<link rel="first" href="lib.html" title='Python Library Reference' />
8<link rel='contents' href='contents.html' title="Contents" />
9<link rel='index' href='genindex.html' title='Index' />
10<link rel='last' href='about.html' title='About this document...' />
11<link rel='help' href='about.html' title='About this document...' />
12<link rel="next" href="node477.html" />
13<link rel="prev" href="cgi-security.html" />
14<link rel="parent" href="module-cgi.html" />
15<link rel="next" href="node477.html" />
16<meta name='aesop' content='information' />
17<title>11.2.7 Installing your CGI script on a Unix system</title>
18</head>
19<body>
20<DIV CLASS="navigation">
21<div id='top-navigation-panel' xml:id='top-navigation-panel'>
22<table align="center" width="100%" cellpadding="0" cellspacing="2">
23<tr>
24<td class='online-navigation'><a rel="prev" title="11.2.6 Caring about security"
25 href="cgi-security.html"><img src='../icons/previous.png'
26 border='0' height='32' alt='Previous Page' width='32' /></A></td>
27<td class='online-navigation'><a rel="parent" title="11.2 cgi "
28 href="module-cgi.html"><img src='../icons/up.png'
29 border='0' height='32' alt='Up One Level' width='32' /></A></td>
30<td class='online-navigation'><a rel="next" title="11.2.8 Testing your CGI"
31 href="node477.html"><img src='../icons/next.png'
32 border='0' height='32' alt='Next Page' width='32' /></A></td>
33<td align="center" width="100%">Python Library Reference</td>
34<td class='online-navigation'><a rel="contents" title="Table of Contents"
35 href="contents.html"><img src='../icons/contents.png'
36 border='0' height='32' alt='Contents' width='32' /></A></td>
37<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
38 border='0' height='32' alt='Module Index' width='32' /></a></td>
39<td class='online-navigation'><a rel="index" title="Index"
40 href="genindex.html"><img src='../icons/index.png'
41 border='0' height='32' alt='Index' width='32' /></A></td>
42</tr></table>
43<div class='online-navigation'>
44<b class="navlabel">Previous:</b>
45<a class="sectref" rel="prev" href="cgi-security.html">11.2.6 Caring about security</A>
46<b class="navlabel">Up:</b>
47<a class="sectref" rel="parent" href="module-cgi.html">11.2 cgi </A>
48<b class="navlabel">Next:</b>
49<a class="sectref" rel="next" href="node477.html">11.2.8 Testing your CGI</A>
50</div>
51<hr /></div>
52</DIV>
53<!--End of Navigation Panel-->
54
55<H2><A NAME="SECTION0013270000000000000000">
5611.2.7 Installing your CGI script on a <span class="Unix">Unix</span> system</A>
57</H2>
58
59<P>
60Read the documentation for your HTTP server and check with your local
61system administrator to find the directory where CGI scripts should be
62installed; usually this is in a directory <span class="file">cgi-bin</span> in the server tree.
63
64<P>
65Make sure that your script is readable and executable by ``others''; the
66<span class="Unix">Unix</span> file mode should be <code>0755</code> octal (use "<tt class="samp">chmod 0755
67<var>filename</var></tt>"). Make sure that the first line of the script contains
68<code>#!</code> starting in column 1 followed by the pathname of the Python
69interpreter, for instance:
70
71<P>
72<div class="verbatim"><pre>
73#!/usr/local/bin/python
74</pre></div>
75
76<P>
77Make sure the Python interpreter exists and is executable by ``others''.
78
79<P>
80Make sure that any files your script needs to read or write are
81readable or writable, respectively, by ``others'' -- their mode
82should be <code>0644</code> for readable and <code>0666</code> for writable. This
83is because, for security reasons, the HTTP server executes your script
84as user ``nobody'', without any special privileges. It can only read
85(write, execute) files that everybody can read (write, execute). The
86current directory at execution time is also different (it is usually
87the server's cgi-bin directory) and the set of environment variables
88is also different from what you get when you log in. In particular, don't
89count on the shell's search path for executables (<a class="envvar" id='l2h-3173' xml:id='l2h-3173'>PATH</a>) or
90the Python module search path (<a class="envvar" id='l2h-3174' xml:id='l2h-3174'>PYTHONPATH</a>) to be set to
91anything interesting.
92
93<P>
94If you need to load modules from a directory which is not on Python's
95default module search path, you can change the path in your script,
96before importing other modules. For example:
97
98<P>
99<div class="verbatim"><pre>
100import sys
101sys.path.insert(0, "/usr/home/joe/lib/python")
102sys.path.insert(0, "/usr/local/lib/python")
103</pre></div>
104
105<P>
106(This way, the directory inserted last will be searched first!)
107
108<P>
109Instructions for non-<span class="Unix">Unix</span> systems will vary; check your HTTP server's
110documentation (it will usually have a section on CGI scripts).
111
112<P>
113
114<DIV CLASS="navigation">
115<div class='online-navigation'>
116<p></p><hr />
117<table align="center" width="100%" cellpadding="0" cellspacing="2">
118<tr>
119<td class='online-navigation'><a rel="prev" title="11.2.6 Caring about security"
120 href="cgi-security.html"><img src='../icons/previous.png'
121 border='0' height='32' alt='Previous Page' width='32' /></A></td>
122<td class='online-navigation'><a rel="parent" title="11.2 cgi "
123 href="module-cgi.html"><img src='../icons/up.png'
124 border='0' height='32' alt='Up One Level' width='32' /></A></td>
125<td class='online-navigation'><a rel="next" title="11.2.8 Testing your CGI"
126 href="node477.html"><img src='../icons/next.png'
127 border='0' height='32' alt='Next Page' width='32' /></A></td>
128<td align="center" width="100%">Python Library Reference</td>
129<td class='online-navigation'><a rel="contents" title="Table of Contents"
130 href="contents.html"><img src='../icons/contents.png'
131 border='0' height='32' alt='Contents' width='32' /></A></td>
132<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
133 border='0' height='32' alt='Module Index' width='32' /></a></td>
134<td class='online-navigation'><a rel="index" title="Index"
135 href="genindex.html"><img src='../icons/index.png'
136 border='0' height='32' alt='Index' width='32' /></A></td>
137</tr></table>
138<div class='online-navigation'>
139<b class="navlabel">Previous:</b>
140<a class="sectref" rel="prev" href="cgi-security.html">11.2.6 Caring about security</A>
141<b class="navlabel">Up:</b>
142<a class="sectref" rel="parent" href="module-cgi.html">11.2 cgi </A>
143<b class="navlabel">Next:</b>
144<a class="sectref" rel="next" href="node477.html">11.2.8 Testing your CGI</A>
145</div>
146</div>
147<hr />
148<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
149</DIV>
150<!--End of Navigation Panel-->
151<ADDRESS>
152See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
153</ADDRESS>
154</BODY>
155</HTML>