1

Redmine のインストールに問題があります。次のように webrick の下で問題なく動作するようです。

redmine@machine:~$ /usr/bin/ruby1.8 script/rails server webrick -e production

これは、ユーザー 'redmine' としてログインしているときであることに注意してください。

Passenger (v3.0.17) を既存の Apache2 インストールに対してインストールし、次のように /etc/apache2/mods-enabled/passenger.conf を使用します。

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17
PassengerRuby /usr/bin/ruby1.8

私の仮想ホスト conf も非常にシンプルです。

<VirtualHost *:80>
    ServerAdmin webmaster@machine.com
    ServerName redmine.machine.com

    RailsEnv production

    DocumentRoot /home/redmine/redmine-2.1/public

    <Directory /home/redmine/redmine-2.1/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>


    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    ErrorLog /var/log/apache2/redmine.error.log
    CustomLog /var/log/apache2/redmine.access.log combined
</VirtualHost>

これを実行すると、「no such file to load -- bundler」というエラーが表示されます。ただし、次のことに注意してください。

redmine@machine:~$ gem list

*** LOCAL GEMS ***

actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8)
activerecord (3.2.8)
activerecord-mysql2-adapter (0.0.3)
activeresource (3.2.8)
activesupport (3.2.8)
arel (3.0.2)
builder (3.0.0)
bundler (1.2.1)
coderay (1.0.8)
daemon_controller (1.0.0)
erubis (2.7.0)
fastercsv (1.5.5)
fastthread (1.0.7)
hike (1.2.1)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.0.3)
json (1.7.5)
mail (2.4.4)
mime-types (1.19)
multi_json (1.3.6)
mysql (2.8.1)
mysql2 (0.3.11)
net-ldap (0.3.1)
passenger (3.0.17)
pg (0.14.1)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-openid (1.3.1)
rack-ssl (1.3.2)
rack-test (0.6.2)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
rmagick (2.13.1)
ruby-openid (2.1.8)
rvm (1.11.3.5)
sprockets (2.1.3)
sqlite3 (1.3.6)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.11)
tzinfo (0.3.33)

のすべてのファイルは/home/redmine/redmine-2.1が所有していredmine:redmineます。すべてのディレクトリは0755で、すべてのファイルは0644です。

ここで、プロセスを表示したときに気付いた興味深い点:

redmine@machine:~$ ps -ef | grep "Passenger"
root     21764 21759  0 10:49 ?        00:00:00 PassengerWatchdog
root     21773 21764  0 10:49 ?        00:00:00 PassengerHelperAgent
root     21775 21773  0 10:49 ?        00:00:00 Passenger spawn server                                                                                                                                           
nobody   21778 21764  0 10:49 ?        00:00:00 PassengerLoggingAgent

私は確かにRuby/Rails/Passenger/Redmineの専門家ではありませんが、Passengerがnobody代わりに実行されているという事実redmineが問題である可能性があると思います. ここのドキュメントによると: http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching、Passenger はユーザーを /config/environment.ru を所有するユーザーに切り替えることになっています。ユーザーはログを読み書きできますがroot、そうではありませんか? 上記からわかるように、そのファイル (実際にはアプリ全体) は によって所有されており、所有者と≠redmineのログが含まれているため、Passenger を次のように実行するように切り替えるための要件に合格したと思います。.rwxredminerootredmine

3 つの直接的な質問:

  1. Redmine を Passenger で実行できないのはこれが原因ですか? と**
  2. Passenger がまだ として実行されているのはなぜnobodyですか?**
  3. これを修正しようとして、次の行を追加してみました。

    PassengerDefaultUser www-data

私の /etc/apache2/mods-enabled/passenger.conf に(上記のように)入れましたが、効果がないようです。すべての結果は、その行の有無にかかわらず同じです。問題が解決するとは思っていませんでしたが、プロセスを一覧表示するときに Passenger を実行するユーザーとして表示されることは期待していました。それはしませんでした。

その他の関連情報:

redmine@machine:~$ uname -a
Linux machine.****.com 2.6.18-028stab092.1 #1 SMP Wed Jul 20 19:47:12 MSD 2011 x86_64 GNU/Linux
Ubuntu 10.04.4 LTS

redmine@machine:~$ /usr/bin/ruby1.8 --version
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
4

1 に答える 1

0

バンドラーが問題です。Ruby 1.8.x を使用する特別な理由はありますか? Ruby 1.9.x、できれば 1.9.3 にアップグレードすることを強くお勧めします。それ以外の場合は、0.9.x などのより古いバージョンのバンドラーを試すことをお勧めします。さらに、Rubygems を1.3.7 などにダウングレードする必要があります。

理論的には、Rubygem は次のようにダウングレードできます。

sudo gem update --system 1.3.7

古いバンドラー バージョンをインストールするには:

sudo gem uninstall bundler
sudo gem install bundler --version=0.9.1

時代遅れの Ruby ソフトウェアに対処しなければならないことが何度かありましたが、最善の方法は、システムの Ruby をインストールするのではなく、ソースから自分でコンパイルすることです。(結局のところ、それほど難しくありません。Ruby は適切にパッケージ化されています。)次に、適切なバージョンの Rubygems をソースからインストールします。または、RVMを見てください。ただし、これは最初は苦痛になる可能性があります。

ところで: Apache の代わりに nginx を使用することもお勧めします。インストールは十分に文書化されていませんが、構成ファイルははるかに単純です。

于 2012-10-12T21:12:19.927 に答える