![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。
apacheのhttpd.confの設定で
AccessFileName .htaccess
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
についてはコメントをはずして使えるようにして
Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り
AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .cgi/
パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。
OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?
No.3ベストアンサー
- 回答日時:
いちおやり方ですが、httpd.confの430行あたりの<Directory>の
ところを書き換えます。
#<Directory /home/*/public_html>から始まるコメントアウトされた
ひと固まりのところをコピーしてから作業すればよいでしょう。
以下はユーザディレクトリのSiteフォルダの中にcgi-binという
フォルダを作成し、そこでCGI,SSIを実行可能にさせる例です。
<Directory /Users/*/Sites/cgi-bin>
AllowOverride All
Options Includes
Options ExecCGI
</Directory>
<Directory>のオプションについてはリンク先を参考にしてください。
参考URL:http://www.zdnet.co.jp/help/tips/linux/l0340.html
この回答への補足
えぇっと、教えて頂いたHPを見ながら
<Directory /home/*/Sites/>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
として、元の設定にExecCGIとSSI許可に設定しなおしても同じエラーが出てしまいます。
422行目の
<Directory /home/*/Sites/>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
をjakartaさんの言うとおりに書き換えてapacheを再起動したのですが
相変わらずエラーログに
Options ExecCGI is off in this directory: /Users/*/Sites/cgi-bin/treebbs.cgi
とでます(-"-;
No.2
- 回答日時:
>Options ExecCGI is off in this directory:/Users/****/Sites/bbs/bbs.cgi
って、言う風に出てます(^^;
これは単にユーザーディレクトリでCGIが有効になってないということです。
つまりForBiddenが出るのはユーザーディレクトリでCGIの実行が
許されてないということではないでしょうか。
<Directory></Directory>部分にUserDirectoryの設定を追加し
ExecCGIと一文を足せばよいと思います。
Usersのディレクトリで動作を確認する前に
/Library/WebServer/CGI-Executables 以下においてCGIが動く設定に
なっているか確かめてみて下さい。
それとサンプルのCGIファイルはもちろん単なるテキストファイルなので
catしただけでTerminalが止まるようならこのこと自体がそもそも
おかしいと思われます。
cgi動きました!!
httpd.confにばっかり気を取られてて/etc/httpd/users/*.confを書き換える事を見落としてました(^^;;;
/etc/httpd/users/*.confを書き換えてやると今までの苦労が嘘のように快適にcgiが動いてます(^^;;;;
丁寧な説明ありがとうございました<(* _ _)>
No.1
- 回答日時:
AddHandler cgi-script .cgiはコメントを外し、単純に
#!/usr/bin/perl
print "hello";
というものをブラウザからチェックしてみましたがエラーがでますね。
%tail -f /var/log/httpd/error_log
malformed header from script. Bad header=hello: /Library/WebServer/CGI-Executables/test.cgi
サンプルをcatしてみたら
# CGI programs must print their own HTTP response headers
という記述があります。
そこで以下のように書き換えたらOKでした。
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "hello";
headerを返さずに出力するように変える事もできるは思うんですがちょっと
すぐにお答えできません。
この回答への補足
えぇっと、私の方ではエラーログには
Options ExecCGI is off in this directory:/Users/****/Sites/bbs/bbs.cgi
って、言う風に出てます(^^;
ついでに、
perl -cw bbs.cgi
での文法チェックもしてみたのですが何処もおかしくないと出ます。
後、catすると虹色の円盤がずっと出てTerminalが止まっちゃうのでやってません(^^;;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI 一番簡単なCGI,掲示板の設置教えてください 4 2023/08/22 10:47
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
shellscript内のコマンドを、su...
-
lsでディレクトリのサイズが409...
-
Ubuntu、ファイル移動によるエ...
-
Server error! Error 500
-
「E212:書込み用にファイルを開...
-
嫌ってるのに真似してきたりマ...
-
ファイルの単位
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
メモ帳での一括たて列選択
-
教えてください!困ってます。
-
ファイルの先頭行を全て削除したい
-
ごみ箱から元に戻したのに表示...
-
Windows10 フォルダ内の自動並...
-
macのdmgファイル(動画)をMP4...
-
拡張子.dどういう意味
-
Mac OS Xで、CD-Rにデータを焼...
-
ファイルソートができるMac用フ...
-
【文字コード】コピー&ペース...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
lsでディレクトリのサイズが409...
-
ファイルが移動できません。
-
shellscript内のコマンドを、su...
-
Index.html表示しない!!
-
「E212:書込み用にファイルを開...
-
Ubuntu、ファイル移動によるエ...
-
RPM のソースパッケージが展開...
-
シンボリックリンクでパミッシ...
-
Server error! Error 500
-
PHPでchmod()を使えるようにす...
-
書き込み権限がありません
-
あり得ない!アーカイブを展開...
-
Apacheのドキュメントルート配...
-
rootユーザのメールボックスへ...
-
(apache2)htaccessの認証が動か...
-
/var/run/sudo/root/unknown
-
chmod u-x .*の動作について教...
-
ファイル所有者を「apache」へ...
-
rootでも権限が無いようです
おすすめ情報