首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bitbucket Webhooks

Bitbucket Webhooks
EN

Stack Overflow用户
提问于 2015-06-29 11:12:17
回答 1查看 2.9K关注 0票数 2

我想自动将我的一个项目部署到我的服务器上。我正在通过bitbucket使用git来控制我的软件。我学习了这个不错的教程。不幸的是,我无法让它开始工作。

如果我从本地工作副本中推送更改,远程回购将得到更新,但是web钩子会给出404错误。因此,与我的服务器建立了通信,但没有找到脚本。

当我通过php bitbucket-hook.php手动启动脚本时,就会在回购上发出拉请求,一切都按预期进行。

我想URL有问题。我尝试了http://ip.ip.ip.ip/home/<username>/app/deploy/bitbucket-hook.php和域名。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-28 06:20:04

我自己已经实现了很多次网络钩子。

用于访问.php文件的路径不正确。这个路径应该相对于apache的DocumentRoot (例如/var/www/html)。

假设您的DocumentRoot是/var/www/html,然后将bitbucket-hook.php文件放在这个路径中(即/var/www/html/bitbucket-hook.php)并使用http://ip.ip.ip.ip/bitbucket-hook.php

或者,您可以创建一个指向/ (root)的虚拟主机并使用http://ip.ip.ip.ip/home/{username}/app/deploy/bitbucket-hook.php

注意:您还需要在/var/www中添加带有私钥的.ssh文件夹,因为当您触发web钩子时,apache将在其主文件夹(即/var/www )中找到密钥。

下面是我为自动部署而编写的bash的一部分

`

代码语言:javascript
复制
echo "implenting the web hook for auto deployment..."
if ! [[ -d /var/www/.ssh ]]; then
sudo cp -R ~/.ssh /var/www/
if [[ \$? == 0 ]];then
echo -e 'copied ~/.ssh to document root to apache [/var/www]\n'
else
echo -e 'something went wrong while copying ~/.ssh to /var/www\n'
fi
else
echo "Already a folder name .ssh in /var/www"
fi
sudo chown -R apache. /var/www/.ssh 2>&1
if [[ \$? == 0 ]];then
echo -e 'ownership of /var/www/.ssh has changed to apache \n'
else
echo -e 'something went wrong while changing ownership of /var/www/.ssh\n'
fi
pushd /var/www/html
touch auto_pull.php
sudo chown apache. auto_pull.php
echo -e "<?php content to write in php file ?>">>auto_pull.php  
popd

`

我希望这会有帮助:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31128021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档