我正在尝试将新的 Rails 应用程序部署到 Bitnami/Ubuntu/Virtual Server。我是远程并使用 SSH 终端。
我已经成功地使用 Capistrano 来限制部署:更新。我的来源是 github,然后 Capistrano 将它放在服务器上。
所以,我在服务器上有这个目录:
/opt/bitnami/projects/ndeavor/releases/20130306180756
该服务器还运行了一个 PostgreSQL 堆栈。我已经创建了我的 Postgresql 用户和空数据库。我相信我的下一步是使用 SSH 控制台运行此命令:
bitnami@linux:/opt/bitnami/projects/ndeavor/releases/20130306180756$ rake RAILS_ENV=production db:schema:load
问题 1 = 这是正确的下一步吗?
当我运行该命令时,我得到了这个:
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
问题 2 = 如何让 Rake 找到 PostgreSQL 套接字?
我可以在 database.yml 文件中添加这样的内容:
socket: /var/pgsql_socket
但是,我不知道正确的条目应该是什么
谢谢你的帮助!!
更新1
我也尝试过这样的 database.yml 文件:
production:
adapter: postgresql
encoding: unicode
database: ndeavor_production
pool: 5
username: (user name)
password: (password)
socket: /var/run/postgresql
但是,我得到同样的错误:
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
为什么至少不向我询问 Unix 域套接字“/var/run/postgresql”?
更新2
我找到了这个:
“我通过将 postgresql.conf 文件中的 unix_socket_directory 声明为 /var/run/postgresql 解决了我的问题。对于标准构建,它们似乎应该有一个共同的位置?
如果您从未修改的 PG 源构建,则默认套接字位置确实是 /tmp。但是,Debian 和相关发行版认为这违反了某些发行版标准或其他,因此他们修改了源代码以将默认位置设为 /var/run/postgresql。所以这取决于你使用谁的版本。”
但是,我不确定是否应该更改 postgresql.conf 文件或 Rails database.yml 文件
更新3
我查看了 /var/run/postgresql 目录,它是空的。
我找不到 .s.PGSQL.5432 的位置