<?php
ubuntu + nginx + Coding 自动部署的详细步骤
网上参考了一大堆,自己试着写一下教程
1.生成公钥
公钥有两个:1. git用户公钥,2. 部署公钥:
chown -R www-data:www-data www/
git用户公钥
ssh-keygen -t rsa
执行一遍:
sudo -Hu www-data git config --global credential.helper store # 永久保存
sudo -Hu www-data git config --global "xxx"
sudo -Hu www-data git config --global user.email "xxx" # 邮箱请与conding上一致
# 注:如果报权限不足,执行一下 chown -R www-data:www-data /var/www/
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa
部署公钥
ftp
sudo apt-get install vsftpd
sudo -Hu www-data ssh-keygen -t rsa
2. 准备钩子文件
创建和修改目录权限:
# 创建目录
mkdir /var/www/webhook
# 修改目录权限
chown -R www-data:www-data webhook/
# 创建钩子文件
chown -R www-data:www-data touch index.php
# 写入钩子文件内容
<?php
error_reporting(1);
$target = $_GET['target']; // 生产环境web目录=如果只适用于一个项目地址可以直接固定,否则手动传入
if (!$target) {
exit('error target');
}
$token = 'ytt'; // 自定义,如果设置在coding中记得传入
$wwwUser = 'www-data'; // 用户组=ubuntu是www-data, centos是www
$wwwGroup = 'www-data';
// coding post请求会测试这个接口是否有效
$json = json_decode(file_get_contents('php://input'), true);
// 如果没有token 这个判断就没有必要
if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}
// 2>&1 译: 标准错误输出重定向到标准输出(无论标准出错在哪里,都将标准出错重定向到标准输出中)
$cmd = "cd $target && git pull 2>&1 && chown -R $wwwUser:$wwwGroup $target/";
echo shell_exec($cmd);
为钩子准备一个域名,要保证能访问到 /var/www/webhook/index.php
nginx配置,说实话:不想写...
想了想还是写一下(有始有终):cd /etc/nginx/sites-available/
vim (名字自己起)
server {
listen 80;
root /var/www/webhook;
index index.html index.php;
server_name xxx(域名);
client_max_body_size 100m;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
给这个配置搞一个软连接: cd /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/ xxx.
记得重启一下nginx: nginx -s reload
在网页上输入这个域名看看能不能访问,不行就自己检查下
配置Coding的webhook
1.添加用户公钥
复制 vim .ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可 (https://coding.net/user/account/setting/keys)
2.添加部署公钥
复制 vim /var/www/.ssh/id_rsa.pub 的内容并添加到部署公钥:
3.添加hook
选择项目 > 设置 > WebHook > 新建hook > 对应要求设置值;
URL: 为钩子配置的域名地址,如果是手动传入项目地址记得在后面拼上项目地址
令牌: 钩子文件中如果设置的有,建议加上
保存记得ping一下,状态如果是绿色的钩,代表接口是正常的
服务器项目初始化
1.我们需要先在服务器上clone一次,以后都可以实现自动部署了:
sudo -Hu www-data git clone xxx -项目地址 -- 初始化clone必须要用www-data用户
2、exit();ubuntu nginx 修改端口
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:封装好的request请求怎么设置不拼接baseUrl
下一篇:Huber回归分析
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Ubuntu之修改时区/时间
查看当前时间及时区状态sudo timedatectl status# 显示当前时区为Asia/Shanghai查看当前系统时间sudo date查看当前系统时间及时区sudo date -R# 显示当前时间及对应时区,时区为“+0800”北京时区修改硬件时间修改日期格式:MM月/DD日/YYYY年sudo date -s MM/DD/YYYY修改时间:hh时:mm分:ss秒 sudo date
ubuntu修改时区 ubuntu修改时间 ubuntu修改时间及时区 ubuntu修改时区和时间 ubuntu修改系统时间 -
VJC编程|怎么让仿真机器人走出正六边形和五角星?
然后,右键单击多次循环,在弹出的对话框中,将
机器人 时间设置 右键 保存文件
















