我正在尝试设置密码推送器这是我的第一个 ruby 应用程序。按照 README 中的说明构建和运行 webrick 服务器运行正常。
仅当我尝试添加 Apache ProxyPass 和 ProxyPassReverse 时,页面加载速度才会减慢到几分钟。
所以我尝试了 mod_passenger,但现在它无法找到密码表。这是我在 log/production.log 中得到的结果。
Started GET "/" for 10.10.2.13 at Sun Jun 10 08:07:19 +0200 2012
Processing by PasswordsController#new as HTML
Completed 500 Internal Server Error in 1ms
ActiveRecord::StatementInvalid (Could not find table 'passwords'):
app/controllers/passwords_controller.rb:77:in `new'
app/controllers/passwords_controller.rb:77:in `new'
在 log/private.log 中,我得到了更多输出,因此这里只是一个片段,但在我看来它正在与数据库一起工作。编辑:这实际上是旧的日志输出,可能来自 db:create。
Migrating to AddUserToPassword (20120220172426)
(0.3ms) ALTER TABLE "passwords" ADD "user_id" integer
(0.0ms) PRAGMA index_list("passwords")
(0.2ms) CREATE INDEX "index_passwords_on_user_id" ON "passwords" ("user_id")
(0.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20120220172426')
(0.1ms) select sqlite_version(*)
(0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
(0.0ms) PRAGMA index_list("passwords")
(0.0ms) PRAGMA index_info('index_passwords_on_user_id')
(4.6ms) PRAGMA index_list("rails_admin_histories")
(0.0ms) PRAGMA index_info('index_rails_admin_histories')
(0.0ms) PRAGMA index_list("users")
(4.8ms) PRAGMA index_info('index_users_on_unlock_token')
(0.0ms) PRAGMA index_info('index_users_on_reset_password_token')
(0.0ms) PRAGMA index_info('index_users_on_email')
(0.0ms) PRAGMA index_list("views")
在我的 vhost 中我将其设置为使用 RailsEnv private。
<VirtualHost *:80>
# ProxyPreserveHost on
#
# ProxyPass / http://10.220.100.209:180/
# ProxyPassReverse / http://10.220.100.209:180/
DocumentRoot /var/www/pwpusher/public
<Directory /var/www/pwpusher/public>
allow from all
Options -MultiViews
</Directory>
RailsEnv private
ServerName pwpush.intranet
ErrorLog /var/log/apache2/error.log
LogLevel debug
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
我的 mods-enabled 中的 Passenger.conf 是 Debian 的默认设置。
<IfModule mod_passenger.c>
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
</IfModule>
在 apache error.log 中我发现了一些对我来说更加神秘的东西。
[Sun Jun 10 06:25:07 2012] [notice] Apache/2.2.16 (Debian) Phusion_Passenger/2.2.11 PHP/5.3.3-7+squeeze9 with Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o configured -- resuming normal operations
/var/www/pwpusher/vendor/bundle/ruby/1.8/bundler/gems/modernizr-rails-09e9e6a92d67/lib/modernizr/rails/version.rb:3: warning: already initialized constant VERSION
cache: [GET /] miss
[Sun Jun 10 08:07:19 2012] [debug] mod_deflate.c(615): [client 10.10.2.13] Zlib: Compressed 728 to 423 : URL /
/var/www/pwpusher/vendor/bundle/ruby/1.8/bundler/gems/modernizr-rails-09e9e6a92d67/lib/modernizr/rails/version.rb:3: warning: already initialized constant VERSION
cache: [GET /] miss
[Sun Jun 10 10:17:16 2012] [debug] mod_deflate.c(615): [client 10.10.2.13] Zlib: Compressed 728 to 423 : URL /
也许这是例行公事。我可以看到 rake 命令在相对应用程序根目录 db/ 中创建文件。我有 private.sqlite3、production.sqlite3 等。这是我的 config/database.yml。
base: &base
adapter: sqlite3
timeout: 5000
development:
database: db/development.sqlite3
<<: *base
test:
database: db/test.sqlite3
<<: *base
private:
database: db/private.sqlite3
<<: *base
production:
database: db/production.sqlite3
<<: *base
我尝试在其中设置绝对路径,但没有帮助。
答案1
您的配置看起来有效,并且与我为 Passwordpusher @ pwpush.com 运行的配置类似。
确保在适当的环境下运行 db:create/db:migrate rake 任务:
RAILS_ENV=private bundle exec rake db:create db:migrate
不提供 RAILS_ENV 部分将导致 rake 使用默认值“development”。
为了验证,请确保 db/private.sqlite3 在操作系统中已创建且时间戳正确。
如果这仍然不起作用,请在此处提交问题,我会帮助您(我是 PasswordPusher 的作者):https://github.com/pglombardo/PasswordPusher/issues