View Full Version : CGI scripts don't work. Help me please!
a4411
23rd July 2008, 01:56
I use CentOs 5.2, installed like "perfect server how-to". Yesterday I decided to use cgi script and found that they wan't run.
In terminal i run simple script "hello world"
./perl.pl
and it shows me "hello"
But when I try to run it from web browser, I receive 500 error.
In logfile is message "Premature end of script Headers".
I make that perl.pl by VI in terminal, did't upload or copy it.
Please, help me.
topdog
23rd July 2008, 13:23
Am guessing that your script is not sending the corrent content type headers.
a4411
23rd July 2008, 14:52
Here is script:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print <<END_HTML;
<html>
<head></head>
<body>Hello, World!</body>
</html>
END_HTML
topdog
23rd July 2008, 15:11
okay i thought u were not printing the content header, take a look at your httpd and audit logs, i suspect selinux could be blocking the action.
a4411
23rd July 2008, 15:23
Here is httpd.cong:
ServerTokens Major
/mod/mpm_common.html#lockfile>);
ServerRoot "/etc/httpd"
TraceEnable off
PidFile run/httpd.pid
TimeOut 120
KeepAlive on
MaxKeepAliveRequests 2500
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 10
MinSpareServers 20
MaxSpareServers 30
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 2500
</IfModule>
Listen *:80
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_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 proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.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 cgi_module modules/mod_cgi.so
Include conf.d/*.conf
User apache
Group apache
UseCanonicalName off
DocumentRoot /var/www/html/megafolder
<Directory />
Options Includes FollowSymLinks
AllowOverride None
</Directory>
<IfModule mod_userdir.c>
</IfModule>
DirectoryIndex index.html index.html.var index.php
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
# MIMEMagicFile /usr/share/magic.mime
MIMEMagicFile conf/magic
</IfModule>
HostNameLookups on
ErrorLog logs/error_log
LogLevel warn
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 logs/access_log "combined"
ServerSignature On
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
order allow,deny
allow from all
</Directory>
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
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 /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ru ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
AddDefaultCharset windows-1251
AddType application/x-httpd-php .php .htm .html .phtml
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler cgi-script .cgi .pl
AddHandler server-parsed .html .htm
AddHandler type-map var
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
ErrorDocument 404 /404.php
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
AddOutputFilter Includes .html
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
Options ExecCGI FollowSymLinks +Includes
NameVirtualHost x.x.x.x:80
<VirtualHost x.x.x.x:80>
DocumentRoot "/var/www/html/domain.com"
ServerName domain.com
ServerAlias www.domain.com
AddHandler cgi-script .cgi
<Directory "/var/www/html/domain.com">
AllowOverride all
allow from all
Options +Indexes +FollowSymlinks
</Directory>
ScriptAlias /cgi-bin/ "/var/www/html/domain.com/cgi-bin/"
#ScriptAlias /cgi/ "/var/www/cgi-bin/"
<Directory "/var/www/html/domain.com/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog logs/domain.com-error_log
XBitHack on
</VirtualHost>
RLimitCPU 80 90
RLimitMEM 3800 4800
RLimitNPROC 80 90
ScriptLog /var/log/cgiscript.log
Here is error in domain.com-error_log
Premature end of script headers: perl4.pl
Suexec.log is empty
topdog
23rd July 2008, 15:26
For selinux check the file /var/log/audit/audit.log
topdog
23rd July 2008, 15:29
Did you set executable permissions on the script ?
chmod +x script_name
a4411
23rd July 2008, 15:37
For selinux check the file /var/log/audit/audit.log
There is nothing interesting here. Only cron and login info.
chmod +x script_name
it did't help, for scripts i tryed 755, 777 750 and other chmods. Owner of script - apache apache
a4411
23rd July 2008, 21:11
24 hours later, problem WAS SOLVED!!!
The reason was next strings in apache config:
RLimitCPU 80 90
RLimitMEM 3800 4800
RLimitNPROC 80 90
As I commented it, all begin to works fine.
Can anyone explain me, why?
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.