1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用Bitbucket托管网站源码项目 同时通过git部署到阿里云网站服务器 可随时发布网站更新

使用Bitbucket托管网站源码项目 同时通过git部署到阿里云网站服务器 可随时发布网站更新

时间:2024-01-10 16:21:42

相关推荐

使用Bitbucket托管网站源码项目 同时通过git部署到阿里云网站服务器 可随时发布网站更新

使用Bitbucket托管网站源码项目,同时通过git部署到阿里云网站服务器

一、注册Bitbucket账号,对比国内的源码托管企业(/enterprises),Bitbucket相当大方,无限制源码项目数目,文件大小,项目总文件大小。

二、在Bitbucket上创建一个项目,用来托管网站源码,比如。

三、通过Bitbucket提供的SourceTree工具(登录账号密码或者ssh),Git拉取一份到本地,这样本地电脑可以上传/下载源码了。

以上都是源码托管项目创建过程,已有的可以跳过,没有的可以百度搜索Bitbucket使用方法,本文的重点是如何通过git部署到阿里云网站服务器。

四、如何通过git部署到阿里云网站服务器?

部署前准备:阿里云Linux服务器已经安装了git服务,请百度自行安装。

1. 进入项目的设置页面,找到access keys设置,去绑定一个公钥ssh key.

阿里云Linux或者其他系统,可参考Bitbucket提供方法来生成私有密钥,公钥,并绑定到设备账号.

/bitbucket-cloud/docs/add-access-keys/

Bitbucket ssh deployment key

2. 绑定成功后,在阿里云SSH终端上,通过这个命令来测试阿里云是否能够正常访问Bitbucket。

$ ssh -T git@authenticated via a deploy key.You can use git to connect to Bitbucket. Shell access is disabled.This deploy key has read access to the following repositories:

3. 之后你就可以在阿里云SSH终端上通过git clone命令,下载拉取托管在Bitbucket的源码了。

本地电脑 <======(上传/下载)==========>Bitbucket云源码托管 =========(发布更新)=========> 某个网站(阿里云服务器)

如果使用

特别注意的是:

Bitbucket ssh account key 就是有开发者账户下面所有托管项目的可写可读权限,一般用在开发者的电脑某个git软件上面,目的是替代输入账号密码,来实现上传/下载管理远程源码功能;

Bitbucket ssh deployment key 只能读取绑定的几个托管项目,一般用在网站发布,比如阿里云服务器上面的几个网站项目,都可以通过ssh git pull方式拉取直接远程下载到服务器上面,替代了传统ftp上传网站源码文件。

在阿里云SSH终端上生成了密钥,公钥后,看你是想将公钥绑定到哪里:

如果绑定到Bitbucket账号下,终端的Git权限就是所有项目可写可读;如果绑定到一个或者多个源码项目下,终端的Git权限只能读取;同一个ssh pub key可以绑定多个Bitbucket项目,但是只能绑定一个Bitbucket账号。

Bitbucket ssh account key

注意事项:

1.阿里云SSH终端上面按照提示生成的密钥对一般是root用户或者system级别的密钥,并不能给其他用户使用,无访问权限,通过chown、chmod修改权限是无效的。

[root@iZ2ze4xswj2tx7u75dxcbsZ .ssh]# cd ~/.ssh/[root@iZ2ze4xswj2tx7u75dxcbsZ .ssh]# lltotal 16-rw-------. 1 root root 0 Dec 25 15:04 authorized_keys-rw-r--r-- 1 root root 57 May 12 17:46 config-rw-r--r-- 1 root root 1679 May 12 17:13 id_rsa-rw-r--r-- 1 root root 410 May 12 17:13 id_rsa.pub-rw-r--r-- 1 root root 409 Dec 29 14:52 known_hosts

2. root用户的公钥添加到了bitbucket,但是我的网站源码里面有PHP通过sh命令调用git pull拉取更新,这里httpd的用户是apache,需要给apache用户也新建一个密钥对,可添加到Bitbucket多个网站项目,这样php才有权限能调用到ssh密钥。

[Echo]Start git pull origin master...cd /[Echo][git status]...# On branch master# Your branch is ahead of 'origin/master' by 355 commits.# (use "git push" to publish your local commits)## Untracked files:# (use "git add <file>..." to include in what will be committed)## init/nothing added to commit but untracked files present (use "git add" to track)[Echo][git pull origin master]...Permission denied (publickey).fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.[Echo]Finished Updating.

[Echo]Start git pull origin master...cd /[Echo][git status]...# On branch master# Your branch is ahead of 'origin/master' by 355 commits.# (use "git push" to publish your local commits)## Untracked files:# (use "git add <file>..." to include in what will be committed)## init/nothing added to commit but untracked files present (use "git add" to track)[Echo][git pull origin master]...Unauthorizedfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.[Echo]Finished Updating.

上面是git访问权限不通过,下面是生成PHP/apache可用执行的用户ssh密钥对,并需要再次手动添加到Bitbucket.

[root@iZ2ze4xswj2tx7u75dxcbsZ www]# cd /usr/share/httpd/.ssh/[root@iZ2ze4xswj2tx7u75dxcbsZ .ssh]# lsauthorized_keys id_rsa id_rsa.pub known_hosts[root@iZ2ze4xswj2tx7u75dxcbsZ .ssh]# cat id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC45licBh8dO3sRmPBQiivLg4NzzU/3TdaYtlneY1iLIgkrm/ZBbws+TwfiAsGhEjRroul9d//TkeFIYgExF28np3Zlf5i2fWNiJbPEoE3TPVxWJ4lTM+3njPSOGX7Ug91u1MVPbfZU68ltP+DWZ6/A3VVLYu63gD45qTdUVpXGNlsqE4OevFLzLVGZssYZmdLimRk4pmHGkrn+y3IhaI6C5ZTry3vYffYNfT2sfsKhli7ZGZTK9iHhGSKdoIf7SgJjoOHHPeMFdZye8ShOf8+1Q9QDs3GDIZH9nWGRs2MY0bJi9sYXpE0PLE0D4OCFTiDxmhymPp2cO79Jt2q6hLSX root@iZ2ze4xswj2tx7u75dxcbsZ[root@iZ2ze4xswj2tx7u75dxcbsZ .ssh]# lltotal 12-rw------- 1 apache root 0 Dec 30 16:34 authorized_keys-rw------- 1 apache root 1675 Dec 30 16:33 id_rsa-rw-r--r-- 1 apache root 410 Dec 30 16:33 id_rsa.pub-rw-r--r-- 1 apache root 409 Dec 30 16:34 known_hosts

以上是再次完成添加apache用户,下面是我们网站的系统手动Git更新:

总结

上面我创建了两份ssh key,都是用来发布网站更新,

一个是阿里云ssh终端root用户,可以通过在ssh终端界面输入git命令手动更新,

另外一个是apache/www用户,可以通过编写网站源码调用sh命令,从而执行git命令来手动共享,我觉得网站命令更方便直接一些。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。