繁体   English   中英

设置开发/生产PHP / MYSQL服务器

[英]Setting up development/production PHP/MYSQL server

我正在托管服务器上开发我的Web应用程序。 我使用IDE自动下载/上传我正在编辑的文件。 我想设置第二个服务器(即development.domain.com),我将用它来处理更新。 完成并测试更新后,如何将所有更改推送到发布服务器(数据库方案更改,文件更改/添加/删除,系统更改为cron等)? 是否有任何软件可以通过一个按钮为我执行此操作,或者是否必须跟踪我所做的所有更改,然后将文件复制并在生产服务器上逐个更改方案? 谢谢

这是一个很好的问题,许多早期的开发人员都面临着这个问题。 我们在StrollUp上使用tomcat和Elastic beanstalk,并在生产机器上进行部署。 所以我们很容易将war文件从我们的开发环境上传到prod。 您也可以尝试使用Elastic beanstalk 一些像Laravel这样的php框架提供了这些功能,比如RoR。 但是使用您自己的php代码和单实例prod服务器,您可以遵循以下准则:

  1. 将代码推送到Prod服务器

    1. 一旦你测试了你的开发代码,将/ var / www / html / YOUR_PROJECT的整个目录(压缩即YOUR_PROJECT.gz或YOUR_PROJECT.phar)上传到你的prod服务器(不要一个一个地上传,有机会一些文件上传成功,一些失败)
    2. 在prod服务器上解压缩压缩的上传文件
  2. 传输数据库更改

    1. Db更改可能包含DDL和DML。 在prod上传输它们的最佳方法(据我所知)是按顺序保存你在开发环境中运行的sql并在prod服务器上解压缩压缩项目之前运行它们。
    2. 另一种方式(不建议,但它适用于我)是将整个dev数据库(显然不是用户或日志表)转储到prod数据库。
  3. 转移Crons

    1. 我只是将所有的cron从dev复制到prod。 您可以在bash脚本中执行此操作。

      crontab -r #remove all current cron jobs
      crontab cron.txt#将所有cronjobs列在cron.txt中

关于上述步骤的最佳部分 :您可以将所有上述步骤放在bash脚本中并在一行中执行。 这就像你自己的软件,只需点击一下按钮;)我为自己制作了“一键式”脚本,但它们特定于tomcat和Elastic Beanstalk。 您可以看一下它可能会给您一些关于如何继续的想法: AWS Deploy

最重要的是 :在prod服务器上运行sql查询之前,先对两个数据库进行数据库备份。 使用VCS(git,bitbucket是一个不错的选择)来保证所有更改的安全。

我将研究使用源代码控制的持续集成或持续部署解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM