• 締切済み

symlinkがうまくいってない?

サーバーをcentos5からcentos6に変更しました それまでは動いていたCGIの一部が使えなくなりました symlinkを使用するCGIを使用した時に 途中で終わるようなのです どうもsymlinkにかかわるところでエラーがでるみたいです 簡単なCGIを作って実行しましたところ test.cgi ============================ #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html;\">\n"; print "<title>test</title>\n"; print "</head>\n"; print "<body>\n"; print "テスト開始</br>\n"; $lockfile= "./test.lock"; $retry = 5; while (!symlink(".", $lockfile)) { if (--$retry <= 0) { &error("BUSY"); } sleep(1); print "リトライ$retry回目</br>\n"; } unlink($lockfile); print "テスト終了</br>\n"; print "</body>\n"; print "</html>\n"; exit; ============================ 結果 <html> <head> <meta http-equiv="Content-Type" content="text/html;"> <title>test</title> </head> <body> テスト開始</br> リトライ4回目</br> リトライ3回目</br> リトライ2回目</br> リトライ1回目</br> と途中で止まっています 希望の結果は テスト開始 テスト終了 の文字がHTMLに表示されたいのですが どこを確認すればよいのかわかりません Perl文法チェッカーにて Perlのパスや実行権ありやsyntax OKは確認していますが このエラーへの対処がわかりません httpdのエラーログでは [日付] [error] [client xxx.xxx.xxx.xxx] Undefined subroutine &main::error called at /home/web/public_html/cgi/test.cgi line 13. と出ていますのでperlがおかしいとは思うのですが。。。 確認すべき場所がわかりません 確認すべきことを教えてください お願いします バージョン Server version: Apache/2.2.15 (Unix) Server built: Aug 13 2013 17:27:11 perlのバージョン This is perl, v5.10.1 (*) built for i386-linux-thread-multi

みんなの回答

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

指定しているシンボリックリンクファイルが残っていませんか?

poohtaka
質問者

お礼

回答ありがとうございます test.cgiのあるディレクトリで find -name test.lock で検索しました見つかりませんでした

poohtaka
質問者

補足

自己解決しました cgiのディレクトリの実行権を755→777に変更した所 無事動きました cgiディレクトリが755が一般的だと思い込んでおりました セキュリティ上の問題があるので使用について考えます

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

CGIは一緒だ。Perlのバージョン違いだって普通影響しない範囲だ。Apacheのバージョン違いだって問題ないはずだ。パーミッションだって完璧だ。なのに動かない。こういう時に限ってSELinuxが原因だったりする。SELinuxを無効にして動いたらそれが悪さをしている。 違うかったらごめんなさい。当方Perlはほとんど分からない・・・・。

poohtaka
質問者

お礼

回答ありがとうございます SElinuxを確認(/etc/selinux/config)しましたが SELINUX=disabled にしているので無効なんです。。。

poohtaka
質問者

補足

自己解決しました cgiのディレクトリの実行権を755→777に変更した所 無事動きました cgiディレクトリが755が一般的だと思い込んでおりました セキュリティ上の問題があるので使用について考えます

関連するQ&A