A deployment tool for PHP

后端 未结 2 1864
既然无缘
既然无缘 2021-01-23 08:23

Hi guys I have a PHP project and I need a tool for make deployment and I foud Deployer, a deployment tool for PHP, which is your opinion and experience about it?

Regards

相关标签:
2条回答
  • 2021-01-23 08:51

    Deployer is good choose: it's has simple api, a lot of recipes for popular frameworks and apps, and can run parallel deploy. Also it requires only for PHP.

    • deployer.org
    • github.com/deployphp/deployer

    Here is an example of little task:

    task('my_task', function () {
        // Your tasks code...
    });
    

    Deployer has a good quality code:

    Deployer

    0 讨论(0)
  • 2021-01-23 08:57

    I use deployer. It works as advertised, or better. That is my experience and opinion, to answer your question. Let me give some more information:

    You get parallel deployment on remote servers and going forward/back is very simple. Your release and rollback procedures become documented in code and repeatable by anyone on your team with permissions.

    Your directory structure looks like this:

    ./releases/yyyymmddhhmmss/
    ./current -> ./releases/currentrelease/
    ./shared/
    

    The releases folder contains each release that has been made. You should tag these on git yourself too because deployer will clean them up for you when they get old (you configure that.) current is a symlink that points at a current, ready to go, release. You can move it forward and back to release and roll-back. Deployer manages it all for you.

    You setup and configure deployer by creating your Deployerfile (deploy.php) in your project root. Use composer to install deployer.

    Then to deploy on all staging servers simply run:

    vendor/bin/dep deploy stage
    

    And when happy you can send to all production servers in parallel with:

    vendor/bin/dep deploy production
    

    The only really "difficult" task was figuring out how to integrate with our database migrations, deployer gives you many tools but migrations are of course left up to your database layer. I would also love to see some more resources from deployer about suggestions for permissions and thoughts on using a deploy user on the remote hosts.

    It will be worth your time to automate your release and rollback procedures so that anyone on your team can handle them. Deployer is a great tool set for doing that.

    0 讨论(0)
提交回复
热议问题