はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

このスレッドはクローズされています。記事の閲覧のみとなります。

 CGIが動かない。
日時: 2007/12/01 22:29
名前: RYO

 Fedora8でサーバを立てました。通常のhtmlは正常に表示されるのですが、CGIがうまく動きません。このサイトのトラブルシュートを読んでその通りに設定しています。(perlのパスは合っています。Cぎの実行は許可されています。CGIの実行拡張子は.cgiと.plになっています)設置は、Apacheのデフォルトである/var/www/htmlの下にcgi-binフォルダを作ってその中にCGIを設置しています。この状態でWindowsマシンからhttp://<サーバのIPアドレス>/cgi-bin/test.cgiとして呼び出すと
Forbidden
You don't have permission to access /test2.cgi on this server.
というメッセージが表示されます。もちろんtest.cgiのパーミッションは755に設定しています。何か他にも設定があるんでしょうか?


?不明点・障害内容:CGIが実行できません。
?ログの有無   :
  (有:その内容):
?Distribution  :Fedora
      Version:8
?Service Name  :
      Version:
?ネットワーク構成:

■ コンテンツ関連情報

 Re: CGIが動かない。 ( No.1 )
日時: 2007/12/02 07:37
名前: Monta

SELinuxが有効になってるんじゃないかな?
 Re: CGIが動かない。 ( No.2 )
日時: 2007/12/02 10:01
名前: RYO

Montaさん

> SELinuxが有効になってるんじゃないかな?

SELinuxはDIsableになっています。
 Re: CGIが動かない。 ( No.3 )
日時: 2007/12/02 10:09
名前: 管理者

「mod_perl」「perl」はインストールされていますか?

# rpm -qa mod_perl
# rpm -qa perl

上記2つを実行してインストールされているか確認してみてください。
これ以外に、CGIアクセス時の「/var/log/httpd/error_log」内容も合わせて教えてください。
 Re: CGIが動かない。 ( No.4 )
日時: 2007/12/02 10:57
名前: RYO

管理者さま

# rpm -qa mod_perl
mod_perl-2.0.3-14
rpm -qa perl
perl-5.8.8-31.fc8

 このようにインストールされています。

[Sun Dec 02 10:52:52 2007] [error] [client 192.168.1.4]
script not found or unable to stat: /var/www/cgi-bin/test2.cgi

 その後少し設定変更などを試みたところ、エラーの種類が変わり、403から404に変わって「Webページがみつかりません」と
クライアント側で表示されるようになりました。test2.cgiはちゃんと所定のディレクトリに存在しています。
 Re: CGIが動かない。 ( No.5 )
日時: 2007/12/02 11:08
名前: 管理者

CGIの実行パスが同名「alias」になっているような気がします。
以下の様に、CGIパスのAliasを外して実行しようとしている「/var/www/html/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.
#
#<Directory "/var/www/cgi-bin">
#  AllowOverride None
#  Options None
#  Order allow,deny
#  Allow from all
#</Directory>
 Re: CGIが動かない。 ( No.6 )
日時: 2007/12/02 14:43
名前: RYO

管理者さま

 おっしゃるとおりにhttpd.congの該当行をコメントアウトし、httpdを再起動しました。
結果は最初と同じようにForbidden You don't have permission to access...
と表示されました。実行しようとしているCGIのパーミッションは755にしてあり、クライアントの
FTPからみてもそうなっています。あとのこったのはなんの設定が考えられるでしょう?





 Re: CGIが動かない。 ( No.7 )
日時: 2007/12/02 14:49
名前: RYO

追記

 /var.log/httpd/error_logにはこう記録されています。(実行テストのCGIはに変えています)

[Sun Dec 02 14:36:02 2007] [error] [client 192.168.1.4] Options ExecCGI is off in this directory: /var/www/html/cgi-bin/sample.cgi
 Re: CGIが動かない。 ( No.8 )
日時: 2007/12/02 17:54
名前: 管理者

> Options ExecCGI is off in this directory

CGIが実行できるように設定されていないのではないでしょうか?
「httpd.conf」のディレクティブ「Directory "/var/www/html"」内に「Options」がありますが以下のようになっていますか?

<Directory "/var/www/html">
    :
    :
  Options Includes ExecCGI FollowSymLinks
    :
    :
</Directory>
 Re: CGIが動かない。 ( No.9 )
日時: 2007/12/02 18:34
名前: RYO

何度も恐縮です。

<Directory "/var/www/html">内には(1)の記述がありましたので、(2)を追記しました。
  Options Indexes FollowSymLinks(1)
  Options includes ExecCGI FollowSymlinks(2)

 この状態でクライアントから呼び出すとエラーログに次の2行が出力されています。

[Sun Dec 02 18:27:07 2007] [error] [client 192.168.1.4]
(2)No such file or directory: exec of '/var/www/html/cgi-bin/test.cgi' failed
[Sun Dec 02 18:27:07 2007] [error]
[client 192.168.1.4] Premature end of script headers: test.cgi

 一行目は「ファイルがない」と言っているようなのですが、このCGIは確かに存在します。二行目はなんでしょうか? 
同じCGIを使用中のレンタルサーバに転送してみましたが正常に表示されます。

 
 Re: CGIが動かない。 ( No.10 )
日時: 2007/12/02 21:30
名前: 管理者

> <Directory "/var/www/html">内には(1)の記述がありましたので、(2)を追記しました。
>   Options Indexes FollowSymLinks(1)
>   Options includes ExecCGI FollowSymlinks(2)


追記って、2行にした訳ではありませんよね?「変更」ですよね?

「No such file or directory」このCGIスクリプトがないと言っている訳ではないかもしれません。
スクリプト内のヘッダ「#!/usr/local/bin/perl」が無いと言っているかも・・・

# ls -l /usr/local/bin/perl

上記でファイルがありますか?
なければシンボリックリンクを貼ってください。(参照:http://kajuhome.com/apache.shtml#n04)
 Re: CGIが動かない。 ( No.11 )
日時: 2007/12/02 21:54
名前: RYO

> 追記って、2行にした訳ではありませんよね?「変更」ですよね?

 2行書いてありましたので1行削除して「Options includes ExecCGI FollowSymlinks」だけにしました。

>「No such file or directory」このCGIスクリプトがないと言っている訳ではないかもしれません。
>スクリプト内のヘッダ「#!/usr/local/bin/perl」が無いと言っているかも・・・


 スクリプトのヘッダは「##!/usr/bib/perl」ですので、これでいいと判断しています。試しに
シンボリックリンクを貼って、スクリプトのヘッダを「#!/usr/local/bin/perl」に書き換えて
見ましたが、状況は変わらず

[error] [client 192.168.1.4] (2)No such file or directory: exec of '/var/www/html/cgi-bin/test.cgi' failed
[error] [client 192.168.1.4] Premature end of script headers: test.cgi

 という2行がエラーログに残っており、クライアント側には「500 Internal Server Error」が表示されています。
 Re: CGIが動かない。 ( No.12 )
日時: 2007/12/03 10:42
名前: 素ちゃんぽん麺

/var/www/html より下層において、たとえば別途ファイルなどで、CGI に関する記述をオーバライドしていませんか。
 Re: CGIが動かない。 ( No.13 )
日時: 2007/12/03 18:57
名前: RYO

素ちゃんぽん麺さん

 ディレクトリ構成は以下のとおりでtest.cgi以外のファイルはありません。

var
|
www
  |
 html
   |
  cgi-bin
   test.cgi
 Re: CGIが動かない。 ( No.14 )
日時: 2007/12/04 20:54
名前: Chibi

> スクリプトのヘッダは「##!/usr/bib/perl」ですので、これでいいと判断しています。
なんか、全然これじゃ動かないと思うんですけど、タッチミスですよね。

## >>> #
bib >>> bin

???

とりあえず、設定ファイルを出してみたらどうでしょう?
 Re: CGIが動かない。 ( No.15 )
日時: 2007/12/06 13:28
名前: RYO

> ## >>> #
> bib >>> bin


 単純な転記ミスです。申しわけありません、

> とりあえず、設定ファイルを出してみたらどうでしょう?

 httpd.confでしょうか? だとするとコメントを削除しても文字制限に引っかかってしまうのですが。

 Re: CGIが動かない。 ( No.16 )
日時: 2007/12/05 22:14
名前: Chibi

>httpd.confでしょうか? だとするとコメントを削除しても文字制限に引っかかってしまうのですが。

ご察しのとおりです。
ここの掲示板では1つのレスで3000文字らしいですが、分割して投稿されれば良いのでは?
過去ログでは複数に分割して投稿しているので問題なさそうです。

>>別にかまわないんですよね?管理人様。
 Re: CGIが動かない。httpd.conf(1) ( No.17 )
日時: 2007/12/05 22:32
名前: RYO

 それでは、直接動作に関係ないと思われるコメントを削除して書かせていただきます。

ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers    8
MinSpareServers  5
MaxSpareServers  20
ServerLimit   256
MaxClients    256
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers     2
MaxClients     150
MinSpareThreads   25
MaxSpareThreads   75
ThreadsPerChild   25
MaxRequestsPerChild 0
</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
#ExtendedStatus On
User apache
Group apache
ServerAdmin root@localhost
#ServerName www.example.com:80
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>
<Directory "/var/www/html">
  Options includes ExecCGI FollowSymlinks
  Order allow,deny
  Allow from all

</Directory>
<IfModule mod_userdir.c>
  #
  # UserDir is disabled by default since it can confirm the presence
  # of a username on the system (depending on home directory
  # permissions).
  #
  UserDir disable

  #
  # To enable requests to /~user/ to serve the user's public_html
  # directory, remove the "UserDir disable" line above, and uncomment
  # the following line instead:
  #
  #UserDir public_html
</IfModule>
 Re: CGIが動かない。httpdconf(2) ( No.18 )
日時: 2007/12/05 22:33
名前: RYO

DirectoryIndex index.html index.html.var
AccessFileName .htaccess
<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 Off
#EnableMMAP off
#EnableSendfile off
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 FollowSymLinks
  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/html/cgi-bin">
  AllowOverride None
  Options Includes ExecCGI FollowSymlinks
  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
AddDefaultCharset UTF-8
AddHandler cgi-script .cgi .pl
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
  <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

 以上、長々と済みません。よろしくご教示ください。
 Re: CGIが動かない。 ( No.19 )
日時: 2007/12/05 22:44
名前: Chibi

>#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
><Directory "/var/www/html/cgi-bin">
>  AllowOverride None
>  Options Includes ExecCGI FollowSymlinks
>  Order allow,deny
>  Allow from all
></Directory>



ここは、全部コメントにした方が良いんではないでしょうか?
あと、実行しようとしているパーミッションとオーナーを再度ご確認下さいませ。<m(__)m>
 Re: CGIが動かない。 ( No.20 )
日時: 2007/12/06 22:49
名前: RYO

>  ここは、全部コメントにした方が良いんではないでしょうか?

 やってみましたが、結果は同じでした。ログにはその直前にApacheを再起動したところから、以下のように
記述されています。

[Thu Dec 06 21:25:54 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Dec 06 21:25:55 2007] [notice] Digest: generating secret for digest authentication ...
[Thu Dec 06 21:25:55 2007] [notice] Digest: done
[Thu Dec 06 21:25:55 2007] [notice] Apache/2.2.6 (Unix) DAV/2 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations
[Thu Dec 06 21:25:59 2007] [error] [client 192.168.1.4] (2)No such file or directory: exec of '/var/www/html/cgi-bin/test.cgi' failed
[Thu Dec 06 21:25:59 2007] [error] [client 192.168.1.4] Premature end of script headers: test.cgi
~ 

>  あと、実行しようとしているパーミッションとオーナーを再度ご確認下さいませ。<m(__)m>

 test.cgiは以下のようにしてパーミッションを指定してあります。

# cd /var/www/html/cgi-bin
# chmod 755 cgi-bin

 クライアントから呼んだときのエラー表示は「500 Internal Server Error」です。

 Re: CGIが動かない。 ( No.21 )
日時: 2007/12/07 11:36
名前: ゆうか

スクリプト一行目の
「#!/usr/local/bin/perl」または「#!/usr/bin/perl」の行末に
CR(キャリッジリターン)が入ってるような気がします。
もしWindowsでソースを作ってバイナリーモードで転送すると行末が
CR + LF になってるのでエラーを起こしてるかも。
(Linux上でバイナリーダンプして確認してください)

FFFTPなどの気の利いたソフトではテキストモードで転送すれば
CR + LF を LF だけに変換してくれます。
 Re: CGIが動かない。 ( No.22 )
日時: 2007/12/07 19:01
名前: RYO

> もしWindowsでソースを作ってバイナリーモードで転送すると行末が
> CR + LF になってるのでエラーを起こしてるかも。


 クライアントはNextFTPを使用しています。これまでにWindows上でいくつもCGIを製作し、レンタルサーバでは
NextFTPで改行コードは自動で設置してうまく動かなかった前例はないのですが…
 念のためにオプションでホスト改行コードをLFにして送ってみましたが状況は変りません。
 それでodでダンプしてみると、行末にはCR+LFが入っています。ちょっと他の方法を試してみます。
 Re: CGIが動かない。 ( No.23 )
日時: 2007/12/07 22:09
名前: RYO

 他の方法ということで、サーバ上で直接viエディタを使ってCGIを書いてみました。
その結果ですが、前と変りありません。クライアント側で「Internal Server Error」になります。
試しにodでダンプしてみると、LINUX上で作ったにも関らず行末コードはCR+LFになっています。
これはどういうことなのでしょうか? 行き詰まりになってしまいました。
 Re: CGIが動かない。 ( No.24 )
日時: 2007/12/08 00:06
名前: 管理者

暫く、ご無沙汰となってしまいました。

> 試しにodでダンプしてみると、LINUX上で作ったにも関らず行末コードはCR+LFになっています。
> これはどういうことなのでしょうか? 行き詰まりになってしまいました。


Windows側で編集しているならば、「秀丸」等で保存形式をサーバの文字コードに合わせて保存し、FTPソフトで「バイナリ」形式でアップロードして確認してみてください。
 Re: CGIが動かない。 ( No.25 )
日時: 2007/12/08 00:56
名前: ゆうか

vi でCR+LFになるとは・・・

ここにあるように、trコマンドで \r を削除するのも一つの方法かも。
http://www.nurs.or.jp/~sugi/tr.htm

とにかくLFだけにして実行してみることですね。
 Re: CGIが動かない。 ( No.26 )
日時: 2007/12/09 01:11
名前: 来栖川来栖

Vi で CR + LF になることはないので、サーバのコンソールを直に叩いているのではなく、何らかの端末エミュレータを介しているのでしょう。それなら設定により、Enter 押下時にいろいろなコードを送ることができます。

コンソールを直接叩くのでなければ、管理人さんの言うとおり、LF に設定の上、バイナリ モード (= 変換なし) で転送してください。
 Re: CGIが動かない。 ( No.27 )
日時: 2007/12/09 22:48
名前: RYO

来栖川来栖さん

 viは、GINOMEメニューの「アプリケーション」−「システムツール」−「端末」で起動して試しました。
この使い方だと行末はCR+LFになるのですか?

ゆうかさん、管理者様

 CGIはWindows上の秀丸エディタで作成しています。なので、もう一度「改行=lf」で再保存し、サーバに
バイナリモードで転送しました。そしてGINOMEの端末でodしてみると今度は行末コードはLFだけになっていました。
これでうまくいくだろうと、Windowsから呼んでみるとやはり状況は変らず、500 Internal Server Errorと
表示されました。CGIお中身は

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>Fedora8 CGI TEST</TITLE></HEAD>\n";
print "<BODY>\n";
print "Fedora8 CGI TEST<BR>\n";
print "</BODY>\n";
print "</HTML>\n";

 で、同じCGIをレンタルしているサーバで試すと正常に表示されます。
 あとは何が考えられるのでしょうか? これ以上状況が変らなければ一度Webサーバをアンインストールして
再インストールし、もう一度最初からやり直してみようかとも思っています。
 Re: CGIが動かない。 ( No.28 )
日時: 2007/12/10 00:52
名前: ゆうか

RYOさん、いろいろ大変ですね。

>#!/usr/local/bin/perl
>print "Content-type: text/html\n\n";
>print "<HTML>\n";
>print "<HEAD><TITLE>Fedora8 CGI TEST</TITLE></HEAD>\n";
>print "<BODY>\n";
>print "Fedora8 CGI TEST<BR>\n";
>print "</BODY>\n";
>print "</HTML>\n";


上記のプログラムですが実際に使用されたものをコピーして張り付けたのでしょうか?
もしそうだとすると、print と ダブルクオテーションの間が全角のスペースになっていますので
実行すると当然エラーになります。
(ちなみに、私のエディタでは全角スペースを表示する設定があり、この手のエラーが無くなりました)

あと500 Internal Server Errorだけでは分からないので以前のように、
[Thu Dec 06 21:25:59 2007] [error] [client 192.168.1.4] (2)No such file or directory: exec of '/var/www/html/cgi-bin/test.cgi' failed
のようなエラーも教えてください。ちなみにこのエラーでCR+LFの原因を推察しましたので、
このエラーが無くなってるといいのですが……
 Re: CGIが動かない。 ( No.29 )
日時: 2007/12/10 18:27
名前: RYO

 やっと動きました。
 前回のコピーでは、全角スペースではなくて半角スペースが2個入っていました。私もエディタに
秀丸を使っているので、全角スペースがあればすぐに気付いたはずです。
これを直して完了と思ったのですが、まだエラーになります。ログの最期に「Premeture end of script headers」という
エラーが記述されていましたので、多分と思ってCGIの末尾にあった空行を削除したところ、無事に動いてくれました。
もう少し他のCGIも試した上で解決に持ち込もうと思っています。
 Re: CGIが動かない。 ( No.30 )
日時: 2007/12/10 22:24
名前: RYO

 その後、掲示板のCGIも正常に動いています。これで一安心というところでしょうか?
ここで私の環境をまとめて置きます。

サーバ
Dell Dimensin 900
CPU : Celeron 700MHz
メモリ:512MB
HDD:120GB
OS:Fedora 8

クライアント
(1)FTP端末
Gateway Performance 933改
Pentium III 933MHz
Internet Explorer 7
NextFTP
(2)閲覧のみ
自作機
Pentium III 933MHz
Internet Explorer 7

 みなさんのお蔭で動くようになりました。長々とお付き合いありがとうございました。
 しかし、謎は残る… レンタルサーバをBIGLOBEに置いているのですが。こちらは行末コードとか
空行とか全然意識せず、NextFTPにお任せで転送しても正常に動いているのは、サーバ側に何か
設定か仕掛けがあるんでしょうか? なんとなくすっきりしません。
 Re: CGIが動かない。 ( No.31 )
日時: 2007/12/13 22:07
名前: RYO

 さしあたり、めぼしいCGIはほぼ動くようになりました。ご教示いただいた皆さん、ありがとうございました。
最後にまとめとして、後から来る方のために今回のポイントを自分なりに整理してクローズします。

1.SELinuxは無効にする。
2.CGIの実行パスをhttpd.confでAlias指定する。
3.CGIの行末(改行コード)はLF(0A)のみにすること。
4.CGIソースの文末に余分な空行を置いてはいけない。(途中は大丈夫?)

 特に3と4は今回動かなかった大きな原因でした。意外と見落とす可能性が高いと思われます。

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.