Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4.2 capistrano 3部署_Ruby On Rails_Git_Deployment_Capistrano_Vps - Fatal编程技术网

Ruby on rails Rails 4.2 capistrano 3部署

Ruby on rails Rails 4.2 capistrano 3部署,ruby-on-rails,git,deployment,capistrano,vps,Ruby On Rails,Git,Deployment,Capistrano,Vps,我对rails部署完全陌生。在谷歌搜索之后,我仍然很难理解如何部署rails应用程序 因此,我的问题是: 在使用所有rails依赖项设置VPS之后,我将代码库存储在哪里?VPS的根目录或某些特定位置,例如www/或public/ 我应该上传整个rails应用程序文件夹还是只是其中的一部分?我的rails应用程序中有回形针,回形针在public/文件夹中创建了一个system/目录,所以我应该上传system/ 在Capistrano 3中,有一个repo_url字段,我知道它们支持文件://、h

我对rails部署完全陌生。在谷歌搜索之后,我仍然很难理解如何部署rails应用程序

因此,我的问题是:

  • 在使用所有rails依赖项设置VPS之后,我将代码库存储在哪里?VPS的根目录或某些特定位置,例如
    www/
    public/

  • 我应该上传整个rails应用程序文件夹还是只是其中的一部分?我的rails应用程序中有回形针,回形针在
    public/
    文件夹中创建了一个
    system/
    目录,所以我应该上传
    system/

  • 在Capistrano 3中,有一个repo_url字段,我知道它们支持
    文件://、https://、ssh://,或svn+ssh://
    ,但大多数关于Capistrano的文章都将github存储库放在了其中。但是,我没有这样的github回购协议。那么我应该输入什么


  • 感谢您的关注。

    对提出的具体问题的回答:

    在使用所有rails依赖项设置VPS之后,我将存储在哪里 我的代码库?VPS的根目录或某些特定位置 e、 g.www/或public/

    它将被部署到
    :deploy_to
    参数所指向的文件夹中。如果未指定,
    :deploy_to
    默认为
    /var/www/#{fetch(:application)
    请参阅:

    我应该上传整个rails应用程序文件夹还是只是其中的一部分 我的rails应用程序中的回形针,回形针创建一个系统/目录 在public/文件夹中,我是否应该上载system/

    回形针
    system
    文件夹是特定于环境的;每个环境(开发、生产等)都有自己的
    system
    文件夹,用于存储在特定环境中上载的文件。此文件夹不应是部署的代码的一部分

    处理此类文件夹的建议方法是将其保存在服务器上的共享文件夹中,并在当前版本的代码中创建符号链接,以便使用同一文件夹存储/检索附件。有关详细信息,请参阅第3节。更新中的自定义链接

    如上所述,这同样适用于
    config/database.yml
    文件以及包含特定于环境的配置的任何其他文件

    在Capistrano3中,有一个repo_url字段,我知道它们支持 文件://、https://、ssh://,或svn+ssh://,但大多数文章 关于capistrano,我将github存储库放入其中。但是,我没有 有这样一个github回购。那么我应该输入什么

    取决于要部署的代码的存储位置。如果它位于本地文件夹中,请使用
    文件:://
    格式指定文件的位置。

    您可以,然后在deploy.rb中可以放置

    set:repo\u url,'ssh://user@服务器ip/path/to/your\u git\u repo.git'

    当您将更改提交到git repo时,您不必将应用程序上载到服务器。Capistrano将在您部署时为您上载应用程序

    我应该将代码库放在哪里?这取决于您在部署.rb中放置的内容,例如

    set:deploy\u to,'/path/to/my\u codebase'

    是否上载
    /system
    目录将取决于您是否希望版本控制上的回形针图像。如果不希望,您可以将目录添加到
    gitignore
    。下面是一个关于如何在ubuntu 14.04 passenger和NGINX上部署的示例。如果您不使用passenger和NGINX,可以跳到如何配置capistrano和NGINX根据您的设置进行调整

    编辑

    您需要在开发机器上安装git,并在VPS上设置git服务器,如上面链接中所述,使用将远程服务器添加到本地机器

    git远程添加源站

    其中“server”是指向VPS中git回购的url,例如

    ssh://VPS_user@VPS_ip/path/to/your_git_repo.git

    现在,当您提交更改并将其推送到服务器时,capistrano将在您的git服务器上部署最新版本


    关于#3,如果您不使用github,您会使用什么来管理源代码?这是否意味着我必须拥有远程git repo才能通过capistrano进行部署?我对git很敏感,因为我很少使用git…远程git repo可以位于您部署应用程序的同一VPS中。唯一的条件是部署应用程序的用户必须ld对repo所在的目录具有读写权限。在本例中,您将其放入deploy.rb
    set:repo\u url,'ssh://your_vps_username@您的\u vps\u ip/path/to/git\u repo.git'
    。我将很快编辑答案,并提供一个关于如何使用git的简单入门链接。感谢您的回复。我需要先用git推送我的答案吗本地代码库到远程git repo,然后运行cap deploy命令?或者我只需要cap deploy,Capistrano将推送我的最新代码库,从而部署应用程序?如果我使用
    repo\u url,'ssh://your_vps_username@您的ip/path/to/git\u repo.git'
    。这是否意味着任何可以猜到我的git路径的人都有权克隆我的代码库?这里有安全措施吗??