2015-06-29 63 views
2

我想自動將我的一個項目部署到我的服務器上。 我使用git通過bitbucket來版本控制我的軟件。 我來到這個this很好的教程。不幸的是我無法讓它工作。Bitbucket Webhooks

如果我從本地工作副本推送更改,遠程回購得到更新,但webhook給我404錯誤。因此與我的服務器通信已建立,但未找到腳本。

當我通過php bitbucket-hook.php手動啓動腳本時,會在回購庫上發出拉取請求,並且所有事情都按預期工作。

我猜這個網址有問題。我試過http://ip.ip.ip.ip/home/<username>/app/deploy/bitbucket-hook.php也是域名。

回答

3

我自己實現了webhook很多次。

您用於訪問.php文件的路徑不正確。這個路徑應該與你的Apache的DocumentRoot相關(如/ var/www/html)

說你的DocumentRoot是/ var/www/html, /www/html/bitbucket-hook.php),並使用URL作爲http://ip.ip.ip.ip/bitbucket-hook.php

或者,也可以使其指向/(根虛擬主機),並使用http://ip.ip.ip.ip/home/ {名} /應用/部署/到位桶鉤.php

注意:您還需要在/ var/www中添加帶私鑰的.ssh文件夾,因爲當您觸發webhook時,apache會在其主文件夾(即/ var/www)中找到該密鑰。

這是我希望這將有助於:)

+0

Ecellent :)運行完美,我已經寫信給自動部署

'

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 

'

我的bash的一部分..非常感謝!我也不知道這個路徑設置 – theDrifter