お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-01-23 21:06:28

touko
メンバ
登録日: 2009-06-14

apache2のCGIをrubyで動くように設定したい

apache2はインストール済みなのですが、RubyつかってCGIを動かそうとすると、スクリプトそのままの表示が出てしまいます。
RubyでCGIを使う場合、どこか設定変更するのでしょうか?よろしくお願いいたします。

オフライン

 

#2 2010-01-23 22:44:06

zagan
メンバ
登録日: 2008-08-12

Re: apache2のCGIをrubyで動くように設定したい

まず、Ubuntuのバージョンを明らかにしてください。

【1】Exec CGiの指定はされてますか?
【2】apache2のモジュールである cgi や suexec や cgid などのモジュールは組み込み済みですか?
  端末から

コード:

sudo a2enmod

として表示される物を、コピーして貼り付けてください。

また、"自宅サーバー apache2 CGI"とかでぐぐると、参考サイトは沢山出てきますよ。

オフライン

 

#3 2010-01-23 22:52:00

touko
メンバ
登録日: 2009-06-14

Re: apache2のCGIをrubyで動くように設定したい

Ubuntuは9.04です。

コード:sudo a2emodを打った結果は

Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter gnutls headers ident imagemap include info ldap log_forensic log_sql log_sql_mysql log_sql_ssl mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
Which module(s) do you want to enable (wildcards ok)?

です。

他に設定はしていません。よろしくお願いいたします。

オフライン

 

#4 2010-01-23 23:50:55

zagan
メンバ
登録日: 2008-08-12

Re: apache2のCGIをrubyで動くように設定したい

サーバー版ですか?デスクトップ版ですか?
a2enmodの結果を見ると。必要なモジュールは組み込まれているようですね。

## なお、以下はサーバーを公開する事を前提とはしていません。また、rubyはインストールされているものとします。

/etc/apache2/mods-enabled/mime.conf と言うファイルに

#AddHandler cgi-script .cgi

と言う記述がありますので、「#」を外して、

AddHandler cgi-script .cgi .rb .pl

と「.rb」を付け加えてください。

それから、設定の管理方法によって様々なんですが、他に設定ファイルを作成してないとして
/etc/apache2/sites-available/default と言うファイルの

変更前 による投稿:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>


変更後 による投稿:

<directory /var/www/>
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</directory>

とかしてみてください。.rbファイルやhtmlファイルは/var/www以下に配置することになります。
設定をいじったら、復活の呪文を唱えることを忘れずに。

コード:

sudo /etc/init.d/apache2 restart

また、ファイル管理上ログインユーザのディレクトリで公開したほうが楽だという場合、

<Directory /home/*/public_html>
    AllowOverride All
    Options IncludesNoExec ExecCGI FollowSymLinks
</Directory>

とかすると、最低限良いかもしれません。

# すみません。今朝から風邪っぽかったのが、いよいよいけません。発熱しだしました。
おやすみなさい。

オフライン

 

#5 2010-01-24 01:08:48

touko
メンバ
登録日: 2009-06-14

Re: apache2のCGIをrubyで動くように設定したい

ありがとうございました。早速試してみます。おやすみなさい。

オフライン

 

#6 2010-01-24 14:27:50

zagan
メンバ
登録日: 2008-08-12

Re: apache2のCGIをrubyで動くように設定したい

# 体調不良中。詳細に回答する気力がありません。ごめんなさい。

以下の内容に回答いただけると、識者からのアドバイスを受けられると思います。 -> と識者への丸投げ失礼。

1)サーバーをインターネットに公開するかしないか
2)アクセス時のURLをhttp://loocalhost/とかのドメイン直下に指定したいか、http://localhost/~touko/などのユーザーディレクトリ毎の公開にしたいのか。
3)サーバーサイドスクリプトはrubyだけで良いのか。
4)DBサーバの要不要。

よろしくお願いします。

オフライン

 

Board footer

Powered by FluxBB