草庐IT

PHP MySQL 和适当的开发/暂存发送到生产服务器之前

coder 2023-10-10 原文

我刚刚启动并运行了我的生产站点。我还有很多工作要做,我意识到现在需要一个开发服务器,然后才能将更改实时推送到生产站点(与用户一起)- 显然......

这个线程(以及 Stack 上的更多内容)描述了我: Best/Better/Optimal way to setup a Staging/Development server

无论如何...阅读这些线程有时会完全混淆,所有的术语都是乱七八糟的,而且我对 CentOS/Apache 的了解还很少。

我的目标是:

  1. 根据需要对文件进行一些更改。
  2. 在同一台服务器上测试更改,以确保设置相同
  3. 如果一切正常,我现在可以在某个地方保存一个版本,也许现在本地就足够了(Bazaar 似乎有可能?)
  4. 最后,通过 SSH 或 SFTP 或其他方式替换所有更改的文件...

我担心的是:

  • 在用户在系统中时上传更改。
  • 如何只上传发生变化的文件。

我希望有人可以链接到一个很好的指南来说明我的想法(我希望这不会留下任何想像力) - 或者某种建议/等等...我在兜圈子尝试不同的 SVN 和程序来管理它们,等等...

我是唯一一个正在开发的人,我只想要一个可重复的、值得信赖的解决方案,它可以为我工作,而不会让我的生活在尝试设置它(并保持它的设置)时太痛苦。

非常感谢。

最佳答案

如果您有能力在生产服务器上创建暂存子域,那么我将(并且正在)处理它:

在您的开发机器上进行开发,将您的代码存储在 VCS 中。我使用颠覆,但你可能会找到你喜欢的另一个。进行更改后,您 checkin 代码。

在您的生产服务器上,您在 Apache VirtualHost 中创建一个子域,该子域与您的生产 VirtualHost 相同,但相互隔离。将您的代码从 VCS check out 到暂存子域区域。进行更改后,您可以从 VCS 运行更新,这只会拉下更改的文件。登台和生产共享相同的数据集,或者您可以为每个都有一个单独的数据库。

使用子域而不是仅仅使用不同目录的原因是它使您能够将相同的 DocumentRoot 用于暂存和生产。如果您使用 staging.example.com 之类的网站,也很容易确定您所在的位置。

当您确定一切正常时,您可以在生产端运行 VCS 更新以使代码保持最新。

请务必确保您已指示 Apache 禁止访问 VCS 元数据目录(.svn、.git 等)。

附录

要禁止访问 .svn 目录,请使用如下重写规则:

RewriteEngine on
RewriteRule .*\.svn/.* - [F]

这将向他们发送 403。您还可以将他们重定向到主页,以减少他们甚至出现时的明显程度。

关于PHP MySQL 和适当的开发/暂存发送到生产服务器之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687292/

有关PHP MySQL 和适当的开发/暂存发送到生产服务器之前的更多相关文章

  1. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  4. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  5. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  6. ruby - 如何在 Rails 4 中使用表单对象之前的验证回调? - 2

    我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser

  7. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  8. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  9. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  10. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

随机推荐