• 締切済み

RailsをApacheで動かす

Rails初心者です。 WindowsXP環境でRailsの勉強をしているのですが、 WEBrickからApacheにサーバを乗り換えようとしたのですが うまくいきません。 ApacheのConfigファイルには最後に <VirtualHost *:80> ServerName rails DocumentRoot /work/depot/public/ ErrorLog /work/depot/log/server.log <Directory /work/depot/public/> Options ExecCGI FollowSymLinks AllowOverride all Allow from all Order allow,deny </Directory> </VirtualHost> を追加して、(「RailsによるアジャイルWebアプリケーション開発」を参考にしました) Apacheを起動してlocalhost経由でアクセス(ブラウザでhttp://localhost/store/へ)したのに、 500エラーが出ました。(Apacheのエラー) /work/depot/log/server.logを見たところきちんとエラーログが出ていて、 /work/depot/public/.htaccess: Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration とのことです。このエラーにどうしたら対処できるかわかりません。 FastCGIにしようかとも思ったのですがWindows環境でのインストール法もわからず途方にくれてます。 とりあえずCGIで動かす方法をどうかご伝授ください。

みんなの回答

  • process9
  • ベストアンサー率29% (81/272)
回答No.1

質問の内容とは、違う回答かもしれませんが・・・ >/work/depot/public/.htaccess: Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration のエラーはエラー文言のとおり、バーチャルホストを作成時の .htaccessの中のRewriteEngine項に指定できないコマンドが 存在していることが原因だと思われます。 参考までにバーチャルホスト設定のサンプルサイトを紹介します。 http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html また、Railsみたいな特殊(?)な環境を作成する場合は、 ここに質問するより、各コミュニティのメーリングリストなど に参加されるとより具体的な回答やノウハウを得ることができますので そちらに参加されることをお勧めしますよ。 とりあえず、RailsのコミュニティWikiを紹介しときますね。 http://wiki.fdiary.net/rails/

関連するQ&A

  • apache2.2でのバーチャルホストでの設定

    質問させて頂きます。 apache2.2.21にてweb鯖を立てて、ドメインを取得しDDNSにてテストしています。 test.comというドメインにバーチャルホストにて web1.test.comとweb2.test.comを設定 した場合に、 なぜかtest.comとweb1.test.comが同じ内容が表示されてしまいます。 web2は通常通り表示されます。 詳しい方が居ましたら間違い点を教えて下さい。 httpd-vhostsの内容 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:80> DocumentRoot "C:/web/web1" ServerName web1.babayasu.info ErrorLog "logs/web1.localhost-error.log" CustomLog "logs/web1.localhost-access.log" common <Directory "C:/web/web1"> order deny,allow allow from ALL Options Indexes FollowSymLinks ExecCGI IncludesNoExec </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/web/web2" ServerName web2.babayasu.info ErrorLog "logs/web1.localhost-error.log" CustomLog "logs/web1.localhost-access.log" common <Directory "C:/web/web2"> order deny,allow allow from ALL </Directory> </VirtualHost>

  • Apache2.2が再起動できない問題についてです

    --- 前提・実現したいこと バーチャルホスト2つ目から3つ目を追加して、Apacheを再起動させたところ[FAILED]と出力されます。 不思議なのが、設定したバーチャルホストを3つから2つに減らしてApacheサーバを再起動したら動きます。 また、構文に誤りがないか確認しましたが「Syntax OK」と出力されました。 ご教授のほどよろしくお願いします。 ------------------------------------------------------------------------------------------------------------------------- --- 発生している問題・エラーメッセージ エラー・ログはございません。 Apache サーバを再起動した際し、[FAILED] ------------------------------------------------------------------------------------------------------------------------- --- vhostで設定した構文です。 NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/domain-name ServerName domain-name ServerAlias domain-name ErrorLog /var/log/httpd/domain-name/error_log CustomLog /var/log/httpd/domain-name/access_log combined <Directory "/var/www/html/domain-name"> </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/html/domain-name ServerName domain-name ServerAlias domain-name ErrorLog /var/log/httpd/domain-name/error_log CustomLog /var/log/httpd/domain-name/access_log combined <Directory "/var/www/html/domain-name"> </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/html/domain-name ServerName domain-name ServerAlias domain-name ErrorLog /var/log/httpd/domain-name/error_log CustomLog /var/log/httpd/domain-name/access_log combined <Directory "/var/www/html/domain-name"> </Directory> </VirtualHost>

  • Apache2でのバーチャルホストの設定について

    現在、メインのサーバhoge.ddo.jpにてApache2によるWebサーバを構築しています。 今回要望があり、ユーザのHPを別のドメインabc.dip.jpにバーチャルホストを利用して運営することになりました。 そこで質問なのですが、 http://abc.dip.jp/ にアクセスすることでユーザのHPにアクセスできます。しかし、 http://hoge.ddo.jp/~misa/ (misaはabc.dip.jpのHPを利用するユーザ) にアクセスしても同じ結果が得られてしまいます。 これを、 http://hoge.ddo.jp/~misa/ でアクセスした場合には、HPを表示できなくしたいのですが、このように設定することはできるのでしょうか? よろしくお願いします。 設定( /usr/local/etc/apache2/httpd.conf ) DocumentRoot "/usr/local/www/data" ServerName hoge.ddo.jp:80 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 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> NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /usr/local/www/data ServerName hoge.ddo.jp </VirtualHost> <VirtualHost *:80> DocumentRoot /home/misa/public_html ServerName abc.dip.jp </VirtualHost> 環境 FreeBSD 5.4-Release-p2 Apache 2.0.54

  • apache:wwwでアクセスしたユーザをwwwなしに転送したい

    rh9 apache2で鯖を立ててます。 www.???.co.jpでアクセスがあったユーザを ???.co.jpへと転送させたいと思っています。 下のようにRedirect を設定しても効きませんでした。 トヨタのホームページみたいにしたいと思っています。 www.toyota.jp → toyota.jp <VirtualHost 192.168.1.1:80> ServerName ???.co.jp Redirect / http://???.co.jp DocumentRoot /home/ipets/public_html/ ServerAdmin root@SIDE3.localhost ErrorLog /home/ipets/logs/error_log CustomLog /home/ipets/logs/access_log combined </VirtualHost>

  • apacheのVirtualHostでの振り分けについて(SSL)

    VirtualHostを使って同一サーバーでのSSLの対応または非対応の振り分けをしています。 WinXP Apache 2.0.55 C:\Apache3 Tomcat 4.1 C:\Program Files\Apache Group\Tomcat 4.1 OpenSSL C:\OpenSSL apacheとtomcatは連携させています。 apache httpd.confの最後に以下を追加するとApacheが起動しません。 <VirtualHost localhost:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "C:/Apache3/htdocs"   SSLDisable # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> SSLDisableを削除すると、問題なく起動しますがhttp,httpsと両方でアクセス出来てしまいます。 何がいけないんでしょうか? 最終的には、デフォルトでSSL不可にしておいてVirtualHostで 指定したディレクトリにSSLを施したいです。

  • Apacheで特定のファイルのみアクセス許可したい

    httpd.confの末尾に次の記述をしてapacheをリスタートしtop.htmlにアクセスしても 403エラーとなりアクセスできません。原因が分かる方よろしくお願いします。 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa"> Order deny,allow Deny from all SetEnvIf REFERER localhost referer_ok Allow from env=referer_ok </Directory> <Files "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/aaa/top.html"> Order allow,deny Allow from all </Files>

    • ベストアンサー
    • HTML
  • apacheのバーチャルホスト設定について

    apacheのバーチャルホストを次のように2つ設定しました。 <VirtualHost *:80> ServerAdmin admin@hogehoge.co.jp DocumentRoot /www/hogehoge ServerName hogehoge.co.jp </VirtualHost> <VirtualHost *:80> ServerAdmin admin@umauma.co.jp DocumentRoot /www/umauma ServerName hogehoge.co.jp </VirtualHost> 上記でそれぞれ http://hogehoge.co.jp/ http://umauma.co.jp/ にアクセスできるようになりました。 そこで、それぞれにサブディレクトリ http://hogehoge.co.jp/web1/ http://umauma.co.jp/web2/ を持たせたいのですが次のようにaliasはどのように設定したらいいのでしょうか? ・hogehoge.co.jpに対する設定 (ttp://hogehoge.co.jp/web1/にアクセスできました) Alias /web1 "/www/hogehoge/web1" <Directory "/www/hogehoge/web1"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> ・umauma.co.jpに対する設定?(これはダメでした) Alias umauma/web2 "/www/umauma/web2" <Directory "/www/umauma/web2"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> このケースはどのように設定するべきでしょうか。

  • Apacheの.htaccessにおけるルート

    apacheの学習中です。 Apacheで、ユーザーディレクトリを有効にしました。 ユーザーディレクトリ内で、 <a href="/">トップページへ</a> とすると、きちんと各ユーザーディレクトリのトップページへいくことを確認しました。 しかし、.htaccess内で ErrorDocument 404 /error/file_not_found.html とし、エラードキュメントを変更しようとすると、エラーページが正しく表示されませんでした。ログを見ると、以下のようになっていました。 File does not exist: /var/www/error/file_not_found.html どうやら、htaccessにおいてのルートディレクトリ指定が、各ユーザー個別のルートディレクトリになっていないようです。htaccessの/を各ユーザーのルートディレクトリに指定するには、どのように設定すればよいでしょうか? 現在、ユーザーディレクトリは以下のように設定しています。すいません。学習中なので、設定におかしなところがあるかもしれません。 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Indexes Limit Options MultiViews FollowSymLinks IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 原因が分かる方がいらっしゃれば、ご指摘くださると嬉しいです。 よろしくお願いいたします。

  • apache,ssl,virtualhost

    VPS上にいくつかのサブドメインでバーチャルホスト(名前ベース)を運用しています。 実現したいのは以下の設定です。  ブラウザに入力されたURL => リダイレクト先 (1)http://hoge.net => https://hoge.net (2)http://www.hoge.net => https://hoge.net (3)https://www.hoge.net => https://hoge.net SSL証明書が有効なのは、『hoge.net』と『hige.hoge.net』です。『www.hoge.net』は有効ではありません。 wwwについては、あっても無くてもアクセス可能とし、あった場合はリダイレクト(いわゆる無しで統一)したいので、設定してあります。 (1)と(2)は問題ないのですが、ブラウザに(3)を入力するとセキュリティの警告エラーが出てしまいます。 その警告を無視して進むとリダイレクトされて、正常に表示されます。 SSL証明書の追加取得以外で、この警告を回避してリダイレクトする方法を教えていただきたいです。 環境:apache2.2 設定内容:httpd.confではなくvhost.confファイルに下記を記述。(見易いように、先頭空白を全角に変更してあります。) <Directory /var/www/html/*/public_html>   Options FollowSymLinks   AllowOverride All   Order allow,deny   Allow from all </Directory> <VirtualHost *:80>   ServerName hoge.net   Redirect permanent / https://hoge.net </VirtualHost> <VirtualHost *:443>   ServerName hoge.net   DocumentRoot /var/www/html/hoge/public_html   SSLEngine on   SSLCertificateFile ++++++++++++++++   SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> <VirtualHost *:80 *:443>   ServerName hige.hoge.net   DocumentRoot /var/www/html/hige/public_html   RewriteEngine on   RewriteCond %{HTTPS} off   RewriteRule . https://hige.hoge.net%{REQUEST_URI} [R=301,L]   SSLEngine on   SSLCertificateFile ++++++++++++++++   SSLCertificateKeyFile ++++++++++++++++ </VirtualHost> よろしくお願いいたします。

  • apacheのユーザーディレクトリの設定

    Fedora Core6のapacheのユーザーディレクトリの設定で悩んでいます。 設定ファイル(httpd.conf)には以下のように記述しています。 #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> ユーザー登録をして/home/ユーザ名/にpublic_htmlフォルダを作成して、index.htmlページを作り、http://localhost/~ユーザー名/index.htmlにアクセスしましたが、「403 Forbidden」となってしまいます。 http://127.0.0.1/~ユーザー名/でアクセスしても「403 Forbidden」になります。 フォルダやファイルのパーミッションをいろいろと変えてみましたが表示されません。 こちらはLinux勉強中の初心者です。 よろしくお願いします。

専門家に質問してみよう