0

Perl cgi スクリプトにポストするいくつかのビューを持つ Rails 4 アプリがあります。perl スクリプトには、「cgi-bin」というフォルダへのシンボリック リンクを介してアクセスします。シンボリック リンクを介して perl スクリプトに移動すると、実行されるのではなくテキストとしてレンダリングされます (例: localhost:3000/cgi-bin/test.cgi) が、直接アクセスすると問題なく実行されます (例: localhost/ path/to/cgi-bin/test.cgi)。

私はos xでapache2を使用しています。ディレクトリ localhost/path/to/ には、次を含む .htaccess ファイルがあります。

# General Apache options
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

.htaccess ファイルには、localhost:3000/ にあるのとまったく同じ行があります。

また、httpd.conf 内のすべての AllowOverride のコメントを外しました。

Apacheのエラーログにエラーはありません。test.cgi への直接リンクにアクセスすると、apache のアクセス ログに新しい行が追加されます。シンボリック リンクを介してスクリプトにアクセスすると (テキストとしてレンダリングされます)、アクセス ログに行が追加されません。

このエラーが発生する理由は何ですか? このセットアップは、OS X の以前のバージョンの Rails では問題なく機能していましたが、最近 Mavericks にアップグレードし、Rails アプリケーションも v4.0 に更新する必要があると考えました。

4

2 に答える 2

0

私は最近、Rails セットアップを Apache を使用する Passenger に切り替えることで、この問題を解決しました。現在、Perl スクリプトと Rails サイトの両方が apache を介して実行されています。これにより、.htaccess ファイルが受け入れられるようになり、perl スクリプトを問題なく実行できるようになりました。

他にも解決しなければならない権限の問題がいくつかありましたが、現在はすべて機能しています。次の2つの投稿で、この問題をどのように解決したかについて、詳細な指示を投稿しました。

Getting-rails-4-and-passenger-set-up-on-mavericks

Perl-scripts-now-work-in-rails-passenger

于 2013-11-10T14:05:32.907 に答える