Passenger を使用して Ruby on Rails アプリケーションを実行する際に問題があります。私のアプリケーションは /Users/Glutexo/Práce/Bytek/Bytek ディレクトリにあり、(á) 内に非 ASCII 文字が含まれていることがわかります。すべての文字が US-ASCII の /Library/WebServer/Documents/Bytek など、別のディレクトリにシンボリック リンクしても、問題は解決しません。
しかし、/Users/Glutexo/rails/pokus のように、すべての US-ASCII パスに別の Rails アプリケーションを物理的に作成すると、アプリケーションは起動し、Passenger を介して正常に実行されます。
非 ASCII パスに存在する Rails アプリケーションを実行しようとしたときに表示されるエラー ページには、次のように表示されます。
エラーメッセージ:
US-ASCII の無効なバイト シーケンス
例外クラス:
ArgumentError
バックトレース:
0 | /Users/Glutexo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/パス名.rb | 45 | `=~' で
上記の pathname.rb の行は、次の関数にあります。
# chop_basename(path) -> [pre-basename, basename] or nil
def chop_basename(path)
base = File.basename(path)
if /\A#{SEPARATOR_PAT}?\z/o =~ base # This is the line no. 45
return nil
else
return path[0, path.rindex(base)], base
end
end
private :chop_basename
非ASCII文字を含むパスからでもRuby on Railsアプリケーションを実行できるようにPassengerを納得させる方法はありますか?
Rails はバージョン 3.2.2、Ruby はバージョン 1.9.3-p125、Apache はバージョン 2.2.21、Passenger はバージョン 3.0.12 です。
助けてくれてありがとう!