Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Php 从github自动提取服务器中的代码_Php_Laravel_Continuous Delivery - Fatal编程技术网

Php 从github自动提取服务器中的代码

Php 从github自动提取服务器中的代码,php,laravel,continuous-delivery,Php,Laravel,Continuous Delivery,我正在开发一个laravel应用程序,并有一个测试服务器设置来向客户端显示演示。如何在服务器中获取代码是我将代码推送到github并登录到服务器,然后将代码拉到那里并运行。 有没有一种自动化的方法?我研究了持续集成/交付,它似乎在测试代码?在服务器中创建一个SSH密钥,并将该公钥添加到github。一旦你做到了这一点,你不需要登录推或拉 创建公钥和私钥 向github添加密钥 在服务器中创建SSH密钥,并将该公钥添加到github。一旦你做到了这一点,你不需要登录推或拉 创建公钥和私钥 向g

我正在开发一个laravel应用程序,并有一个测试服务器设置来向客户端显示演示。如何在服务器中获取代码是我将代码推送到github并登录到服务器,然后将代码拉到那里并运行。
有没有一种自动化的方法?我研究了持续集成/交付,它似乎在测试代码?

在服务器中创建一个SSH密钥,并将该公钥添加到github。一旦你做到了这一点,你不需要登录推或拉

创建公钥和私钥

向github添加密钥

在服务器中创建SSH密钥,并将该公钥添加到github。一旦你做到了这一点,你不需要登录推或拉

创建公钥和私钥

向github添加密钥

使用rsync 1) 您可以
rsync
将代码直接从实例发送到客户服务器:/path/

例如:

rsync -avz yourwebfolder/ user@customerserverip:/var/www/
使用CI/CD 2) 您还可以推送到Github或Gitlab,并拥有一个可以运行测试的CI/CD,如果测试通过,则可以直接推送到客户的服务器(为此,您需要在git构建和客户的服务器之间设置ssh密钥)

代码测试总是可选的,但也总是可取的。因此,您可以在不进行任何测试的情况下制作CI/CD

如何使用CI/CD 如果您的存储库位于Github上,请转到该存储库,然后单击
操作
,您可以在那里设置工作流。。网上有关于如何设置的教程,这里有一个

Gitlab也有类似的CI/CD部分,您可以在项目根目录中创建一个
.Gitlab CI.yml
文件,并使用rsync在其中添加说明。

1) 您可以
rsync
将代码直接从实例发送到客户服务器:/path/

例如:

rsync -avz yourwebfolder/ user@customerserverip:/var/www/
使用CI/CD 2) 您还可以推送到Github或Gitlab,并拥有一个可以运行测试的CI/CD,如果测试通过,则可以直接推送到客户的服务器(为此,您需要在git构建和客户的服务器之间设置ssh密钥)

代码测试总是可选的,但也总是可取的。因此,您可以在不进行任何测试的情况下制作CI/CD

如何使用CI/CD 如果您的存储库位于Github上,请转到该存储库,然后单击
操作
,您可以在那里设置工作流。。网上有关于如何设置的教程,这里有一个


Gitlab也有类似的CI/CD部分,您可以在项目根目录中创建一个
.Gitlab CI.yml
文件,并在其中添加说明。

您可以使用webhook进行创建 要让git pull在每次提交时都在服务器上运行,可以使用Webhooks实现

在GitLab上,转到设置->集成

输入服务器的url和处理webhook的文件。在本教程中,我将创建一个名为gitlab.php的文件,该url将

http://example.com/gitlab.php
输入您的url,确保推送事件是票证,然后单击添加Webook

现在转到服务器并在服务器上创建一个php文件

触摸gitlab.php(您可以将其命名为任何名称,但它与gitlab上的webhook非常匹配) 由于创建的文件没有正确的权限,请使用chmod对其进行更改

chmod 644 gitlab.php
现在用vim编辑文件:

vi gitlab.php 按i键进入编辑模式

类型:

吉特拉力 然后按escape进入读取模式,然后按保存并退出:然后键入wq并输入

通过在文件中使用反勾号,服务器将该文件视为bash脚本

或者,您可以使用system_exec('git pull')


现在在GitLab上进行更改,更改将自动推送到您的服务器。

您可以使用webhook进行更改 要让git pull在每次提交时都在服务器上运行,可以使用Webhooks实现

在GitLab上,转到设置->集成

输入服务器的url和处理webhook的文件。在本教程中,我将创建一个名为gitlab.php的文件,该url将

http://example.com/gitlab.php
输入您的url,确保推送事件是票证,然后单击添加Webook

现在转到服务器并在服务器上创建一个php文件

触摸gitlab.php(您可以将其命名为任何名称,但它与gitlab上的webhook非常匹配) 由于创建的文件没有正确的权限,请使用chmod对其进行更改

chmod 644 gitlab.php
现在用vim编辑文件:

vi gitlab.php 按i键进入编辑模式

类型:

吉特拉力 然后按escape进入读取模式,然后按保存并退出:然后键入wq并输入

通过在文件中使用反勾号,服务器将该文件视为bash脚本

或者,您可以使用system_exec('git pull')


现在在GitLab上进行更改,更改将自动推送到您的服务器。

使用CircleCI,或者GitHub上也有开源解决方案。但是CircleCI应该是一条路,使用CircleCI或者GitHub上也有开源解决方案。但CircleCI应该是去的路。谢谢。我应该使用哪种CI/CD工具进行此操作?谢谢。我应该使用哪种CI/CD工具进行此操作?您需要避免使用此方法进行强制推送。否则,
git pull
命令将失败。此外,web服务器需要具有更改源代码所在的文件和文件夹的完全权限。您需要避免使用此方法强制推送。否则,
git pull
命令将失败。此外,web服务器需要具有更改源代码所在的文件和文件夹的完全权限。