由 老实巴交 在 08-06-2002 09:03 发表:
我的RED hat7.2服务器安装方式,却不支持CGI?
我的RED hat7.2服务器安装方式,以默认的方式在www/cgi-bin/目录下调试cgi却出现下面这种错误提示,是何故?请大虾帮忙!
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@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/1.3.20 Server at default Port 80
由 sd44 在 08-07-2002 12:24 发表:
DIRECTORY "/WWW/CGI-BIN
更改Options、Allow Override的参数为All。
然后再看看吧
由 风起 在 08-07-2002 12:37 发表:
不只是这样。我用mozilla打开CGI的网页。
最后竟问我是下载还是用什么程序打开。。。很奇怪。
由 Yuking 在 08-07-2002 14:41 发表:
也许是。。。
很大的可能是您的CGI程序写的有问题,比如少了“开场白”等,当然也可能是配置有问题。
由 老实巴交 在 08-07-2002 15:57 发表:
程序是没有问题的,我使用其它能正常使用的CGI程序,但还是会出现这种情况。
由 老实巴交 在 08-10-2002 15:42 发表:
请帮我看一下apache配置为什么不支持cgi?
下面是httpd.cof内容,请各位帮我看一下,是那里配置不对,谢谢了!
---------------------------------------------
httpd.conf - configuration for the Apache web server
Generated automatically... if you edit manually, the changes will be lost
the next time you run "apacheconfig".
What we listen to
ServerType StandAlone
ServerRoot /etc/httpd/
We don't handle this yet...
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.
Please read the file README.DSO in the Apache 1.3 distribution for more
details about the DSO mechanism and run `httpd -l' for the list of already
built-in (statically linked and thus always available) modules in your httpd
binary.
Note: The order is which modules are loaded is important. Don't change
the order below without expert advice.
Example:
LoadModule foo_module modules/mod_foo.so
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule includes_module modules/mod_include.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule asis_module modules/mod_asis.so
LoadModule imap_module modules/mod_imap.so
LoadModule action_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
LoadModule db_auth_module modules/mod_auth_db.so
#LoadModule digest_module modules/mod_digest.so
#LoadModule proxy_module modules/libproxy.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule bandwidth_module modules/mod_bandwidth.so
#LoadModule put_module modules/mod_put.so
1<ifdefine have_perl="">
2
3LoadModule perl_module modules/libperl.so
4
5</ifdefine>
1<ifdefine have_php="">
2
3LoadModule php_module modules/mod_php.so
4
5</ifdefine>
1<ifdefine have_php3="">
2
3LoadModule php3_module modules/libphp3.so
4
5</ifdefine>
1<ifdefine have_php4="">
2
3LoadModule php4_module modules/libphp4.so
4
5</ifdefine>
1<ifdefine have_dav="">
2
3LoadModule dav_module modules/libdav.so
4
5</ifdefine>
1<ifdefine have_roaming="">
2
3LoadModule roaming_module modules/mod_roaming.so
4
5</ifdefine>
1<ifdefine have_ssl="">
2
3LoadModule ssl_module modules/libssl.so
4
5</ifdefine>
Reconstruction of the complete module list from all available modules
(static and shared ones) to achieve correct module execution order.
[WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
ClearModuleList
#AddModule mod_mmap_static.c
AddModule mod_vhost_alias.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
#AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
#AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
#AddModule mod_digest.c
#AddModule mod_proxy.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
#AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
#AddModule mod_bandwidth.c
#AddModule mod_put.c
1<ifdefine have_perl="">
2
3AddModule mod_perl.c
4
5</ifdefine>
1<ifdefine have_php="">
2
3AddModule mod_php.c
4
5</ifdefine>
1<ifdefine have_php3="">
2
3AddModule mod_php3.c
4
5</ifdefine>
1<ifdefine have_php4="">
2
3AddModule mod_php4.c
4
5</ifdefine>
1<ifdefine have_dav="">
2
3AddModule mod_dav.c
4
5</ifdefine>
1<ifdefine have_roaming="">
2
3AddModule mod_roaming.c
4
5</ifdefine>
1<ifdefine have_ssl="">
2
3AddModule mod_ssl.c
4
5</ifdefine>
ServerName linux.tz167.com
ServerAdmin [email protected]
Listen 211.163.115.48:80
Port 80
ScoreBoardFile /var/run/httpd.scoreboard
Where do we put the lock and pif files?
LockFile /var/lock/httpd.lock
PidFile /var/run/httpd.pid
CoreDumpDirectory "/etc/httpd"
Documents
DocumentRoot /var/www/html
UserDir public_html
IndexOptions FancyIndexing
Who runs the server?
User apache
Group apache
Performance parameters
MaxClients 150
TimeOut 300
KeepAlive false
MaxKeepAliveRequests 100
MaxRequestsPerChild 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 20
StartServers 8
Error documents
Misc
AccessFileName .htaccess
UseCanonicalName on
TypesConfig /etc/mime.types
DefaultType "text/plain"
Defaults for virtual hosts
ServerSignature on
Logs
ErrorLog /var/log/httpd/error_log
LogLevel warn
HostNameLookups Off
Need to fix this
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/httpd/access_log common
Alias /icons/ "/var/www/icons/"
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
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.
1<directory "="" cgi-bin"="" var="" www="">
2
3AllowOverride None
4
5Options ExecCGI
6
7Order allow,deny
8
9Allow from all
10
11</directory>
Redirect allows you to tell clients about documents which used to exist in
your server's namespace, but do not anymore. This allows you to tell the
clients where to look for the relocated document.
Format: Redirect old-URI new-URL
Directives controlling the display of server-generated directory listings.
FancyIndexing: whether you want fancy directory indexing or standard
IndexOptions FancyIndexing
AddIcon* directives tell the server which icon to show for different
files or filename extensions. These are only displayed for
FancyIndexed directories.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon: which icon to show for files which do not have an icon
explicitly set.
DefaultIcon /icons/unknown.gif
AddDescription: allows you to place a short description after a file in
server-generated indexes. These are only displayed for FancyIndexed
directories.
Format: AddDescription "description" filename
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName: the name of the README file the server will look for by
default, and append to directory listings.
HeaderName: the name of a file which should be prepended to
directory indexes.
The server will first look for name.html and include it if found.
If name.html doesn't exist, the server will then look for name.txt
and include it as plaintext if found.
ReadmeName README
HeaderName HEADER
IndexIgnore: a set of filenames which directory indexing should ignore
and not include in the listing. Shell-style wildcarding is permitted.
IndexIgnore .??* ~ # HEADER README RCS CVS *,v *,t
AddEncoding: allows you to have certain browsers (Mosaic/X 2.1+) uncompress
information on the fly. Note: Not all browsers support this.
Despite the name similarity, the following Add* directives have nothing
to do with the FancyIndexing customization directives above.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage: allows you to specify the language of a document. You can
then use content negotiation to give a browser a file in a language
it can understand. Note that the suffix does not have to be the same
as the language keyword --- those with documents in Polish (whose
net-standard language code is pl) may wish to use "AddLanguage pl .po"
to avoid the ambiguity with the common suffix for perl scripts.
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
LanguagePriority: allows you to give precedence to some languages
in case of a tie during content negotiation.
Just list the languages in decreasing order of preference.
LanguagePriority en fr de
AddType: allows you to tweak mime.types without actually editing it, or to
make certain files to be certain types.
The following is for PHP4 (conficts with PHP/FI, below):
1<ifmodule mod_php4.c="">
2
3AddType application/x-httpd-php .php4 .php3 .phtml .php
4
5AddType application/x-httpd-php-source .phps
6
7</ifmodule>
The following is for PHP3:
1<ifmodule mod_php3.c="">
2
3AddType application/x-httpd-php3 .php3
4
5AddType application/x-httpd-php3-source .phps
6
7</ifmodule>
The following is for PHP/FI (PHP2):
1<ifmodule mod_php.c="">
2
3AddType application/x-httpd-php .phtml
4
5</ifmodule>
AddType application/x-tar .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 command (see below)
If you want to use server side includes, or CGI outside
ScriptAliased directories, uncomment the following lines.
To use CGI scripts:
#AddHandler cgi-script .cgi
To use server-parsed HTML files
AddType text/html .shtml
AddHandler server-parsed .shtml
Uncomment the following line to enable Apache's send-asis HTTP file
feature
#AddHandler send-as-is asis
If you wish to use server-parsed imagemap files, use
AddHandler imap-file map
The following directives modify normal HTTP response behavior.
The first directive disables keepalive for Netscape 2.x and browsers that
spoof it. There are known problems with these browser implementations.
The second directive is for Microsoft Internet Explorer 4.0b2
which has a broken HTTP/1.1 implementation and does not properly
support keepalive when it is used on 301 or 302 (redirect) responses.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
The following directive disables HTTP/1.1 responses to browsers which
are in violation of the HTTP/1.0 spec by not being able to grok a
basic 1.1 response.
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
If the perl module is installed, this will be enabled.
1<ifmodule mod_perl.c="">
2
3Alias /perl/ /var/www/perl/
4
5<location perl="">
6
7SetHandler perl-script
8
9PerlHandler Apache::Registry
10
11Options +ExecCGI
12
13</location>
14</ifmodule>
Allow http put (such as Netscape Gold's publish feature)
Use htpasswd to generate /etc/httpd/conf/passwd.
You must unremark these two lines at the top of this file as well:
#LoadModule put_module modules/mod_put.so
#AddModule mod_put.c
#Alias /upload /tmp
1<location upload="">
2
3# EnablePut On
4
5# AuthType Basic
6
7# AuthName Temporary
8
9# AuthUserFile /etc/httpd/conf/passwd
10
11# EnableDelete Off
12
13# umask 007
14
15# <limit put="">
16
17# require valid-user
18
19# </limit>
20
21#</location>
Allow server status reports, with the URL of http://servername/server-status
Change the ".your_domain.com" to match your domain to enable.
1<location server-status="">
2
3# SetHandler server-status
4
5# Order deny,allow
6
7# Deny from all
8
9# Allow from .your_domain.com
10
11#</location>
Allow remote server configuration reports, with the URL of
http://servername/server-info (requires that mod_info.c be loaded).
Change the ".your_domain.com" to match your domain to enable.
1<location server-info="">
2
3# SetHandler server-info
4
5# Order deny,allow
6
7# Deny from all
8
9# Allow from .your_domain.com
10
11#</location>
Allow access to local system documentation from localhost
Alias /doc/ /usr/share/doc/
1<location doc="">
2
3order deny,allow
4
5deny from all
6
7allow from localhost
8
9Options Indexes FollowSymLinks
10
11</location>
1<ifdefine have_ssl="">
2
3##
4
5## SSL Virtual Host Context
6
7##
8
9
10
11# Apache will only listen on port 80 by default. Defining the virtual server
12
13# (below) won't make it automatically listen on the virtual server's port.
14
15Listen 443
16
17
18
19<virtualhost _default_:443="">
20
21
22
23# General setup for the virtual host
24
25DocumentRoot "/var/www/html"
26
27
28
29# SSL Engine Switch:
30
31# Enable/Disable SSL for this virtual host.
32
33SSLEngine on
34
35
36
37# SSL Cipher Suite:
38
39# List the ciphers that the client is permitted to negotiate.
40
41# See the mod_ssl documentation for a complete list.
42
43#SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
44
45
46
47# Server Certificate:
48
49# Point SSLCertificateFile at a PEM encoded certificate. If
50
51# the certificate is encrypted, then you will be prompted for a
52
53# pass phrase. Note that a kill -HUP will prompt again. A test
54
55# certificate can be generated with `make certificate' under
56
57# built time. Keep in mind that if you've both a RSA and a DSA
58
59# certificate you can configure both in parallel (to also allow
60
61# the use of DSA ciphers, etc.)
62
63SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
64
65#SSLCertificateFile /etc/httpd/conf/ssl.crt/server-dsa.crt
66
67
68
69# Server Private Key:
70
71# If the key is not combined with the certificate, use this
72
73# directive to point at the key file. Keep in mind that if
74
75# you've both a RSA and a DSA private key you can configure
76
77# both in parallel (to also allow the use of DSA ciphers, etc.)
78
79SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
80
81#SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server-dsa.key
82
83
84
85# Server Certificate Chain:
86
87# Point SSLCertificateChainFile at a file containing the
88
89# concatenation of PEM encoded CA certificates which form the
90
91# certificate chain for the server certificate. Alternatively
92
93# the referenced file can be the same as SSLCertificateFile
94
95# when the CA certificates are directly appended to the server
96
97# certificate for convinience.
98
99#SSLCertificateChainFile /etc/httpd/conf/ssl.crt/ca.crt
100
101
102
103# Certificate Authority (CA):
104
105# Set the CA certificate verification path where to find CA
106
107# certificates for client authentication or alternatively one
108
109# huge file containing all of them (file must be PEM encoded)
110
111# Note: Inside SSLCACertificatePath you need hash symlinks
112
113# to point to the certificate files. Use the provided
114
115# Makefile to update the hash symlinks after changes.
116
117#SSLCACertificatePath /etc/httpd/conf/ssl.crt
118
119#SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca-bundle.crt
120
121
122
123# Certificate Revocation Lists (CRL):
124
125# Set the CA revocation path where to find CA CRLs for client
126
127# authentication or alternatively one huge file containing all
128
129# of them (file must be PEM encoded)
130
131# Note: Inside SSLCARevocationPath you need hash symlinks
132
133# to point to the certificate files. Use the provided
134
135# Makefile to update the hash symlinks after changes.
136
137#SSLCARevocationPath /etc/httpd/conf/ssl.crl
138
139#SSLCARevocationFile /etc/httpd/conf/ssl.crl/ca-bundle.crl
140
141# Client Authentication (Type):
142
143# Client certificate verification type and depth. Types are
144
145# none, optional, require and optional_no_ca. Depth is a
146
147# number which specifies how deeply to verify the certificate
148
149# issuer chain before deciding the certificate is not valid.
150
151#SSLVerifyClient require
152
153#SSLVerifyDepth 10
154
155
156
157# Access Control:
158
159# With SSLRequire you can do per-directory access control based
160
161# on arbitrary complex boolean expressions containing server
162
163# variable checks and other lookup directives. The syntax is a
164
165# mixture between C and Perl. See the mod_ssl documentation
166
167# for more details.
168
169#<location></location>
170
171#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
172
173# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
174
175# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
176
177# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
178
179# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
180
181# or %{REMOTE_ADDR} =~ m/^192\\.76\\.162\\.[0-9]+$/
182
183#
184
185# SSL Engine Options:
186
187# Set various options for the SSL engine.
188
189# o FakeBasicAuth:
190
191# Translate the client X.509 into a Basic Authorisation. This means that
192
193# the standard Auth/DBMAuth methods can be used for access control. The
194
195# user name is the `one line' version of the client's X.509 certificate.
196
197# Note that no password is obtained from the user. Every entry in the user
198
199# file needs this password: `xxj31ZMTZzkVA'.
200
201# o ExportCertData:
202
203# This exports two additional environment variables: SSL_CLIENT_CERT and
204
205# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
206
207# server (always existing) and the client (only existing when client
208
209# authentication is used). This can be used to import the certificates
210
211# into CGI scripts.
212
213# o StdEnvVars:
214
215# This exports the standard SSL/TLS related `SSL_*' environment variables.
216
217# Per default this exportation is switched off for performance reasons,
218
219# because the extraction step is an expensive operation and is usually
220
221# useless for serving static content. So one usually enables the
222
223# exportation for CGI and SSI requests only.
224
225# o CompatEnvVars:
226
227# This exports obsolete environment variables for backward compatibility
228
229# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this
230
231# to provide compatibility to existing CGI scripts.
232
233# o StrictRequire:
234
235# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
236
237# under a "Satisfy any" situation, i.e. when it applies access is denied
238
239# and no other module can change it.
240
241# o OptRenegotiate:
242
243# This enables optimized SSL connection renegotiation handling when SSL
244
245# directives are used in per-directory context.
246
247#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
248
249<files "\\.(cgi|shtml)$"="" ~="">
250
251SSLOptions +StdEnvVars
252
253</files>
254<directory "="" cgi-bin"="" var="" www="">
255
256SSLOptions +StdEnvVars
257
258</directory>
259
260
261
262# Notice: Most problems of broken clients are also related to the HTTP
263
264# keep-alive facility, so you usually additionally want to disable
265
266# keep-alive for those clients, too. Use variable "nokeepalive" for this.
267
268SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
269
270
271
272# Per-Server Logging:
273
274# The home of a custom SSL log file. Use this when you want a
275
276# compact non-error SSL logfile on a virtual host basis.
277
278CustomLog /var/log/httpd/ssl_request_log \
279
280"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
281
282
283
284</virtualhost>
285</ifdefine>