直接在关联的后面加with('childrens') childrens是你的子关联函数
这是我的操作逻辑;
我在判断还有剩余红包后(cache_remain_size>0
),马上进行了cache_remain_size--
;操作,
会出现以下问题:
A用户获取cache_remain_size = 1,之后进行cache_remain_size--
;cache_remain_size就变为0;
B用户获取cache_remain_size = 0,就不可领去红包。但是如果A用户之后领取红包失败,cache_remain_size++
;cache_remain_size又变为1,说明红包还有剩余。。。这个就有些矛盾了。如何解决?或者有其他更好的解决方案吗?
卧槽我终于弄好了。第一次clone的时候我使用了sudo -Hu www git clone ...
项目根目录(your-project-folder)权限为 www:www
,
但是项目里的所有文件都是root:root
,
再执行一次chown -R www:root your-project-folder
这样就不会报:error: unable to unlink old 'routes/api.php' (Permission denied)
,
还有最开始的这个问题:error: cannot open .git/FETCH_HEAD: Permission denied
是由于php-fpm的执行用户没有设置对(刚开始为nobody:nobody)要设置为(www:www)
我使用了。。。
现在我遇到了新问题
就是我的hook.php执行git pull
命令(或者sudo -Hu www git pull
)的时候会报:
[root@iz8vbdljoourpgcn2o3ts9z ~]# tail /var/www/hooks/log.txt
From https://git.oschina.net/fnf_1993/morning_night
66284f2..8e305f9 dev -> origin/dev
error: unable to unlink old 'routes/api.php' (Permission denied)
我在ssh窗口执行git pull
时,是可以正常更新的,但是执行sudo -Hu www git pull
也报上面的问题。
当我把项目内所有文件所有者都改为www时就可以执行了,但是这个时候服务器端的程序就也修改了,hook.php就需要执行:
git add .
git commit -m "server"
git pull
导致本地文件提交前也需要更新(服务器端修改了所有项目文件的用户权限)
不知道你能理解我的意思吗。
。。。我真的不知道该咋办了
*28390 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 49.76.220.4, server: hook.fengningfei.com, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "hook.fengningfei.com", referrer: "http://hook.fengningfei.com/mn.php"
nginx的错误日志报这个。还需要看其他什么日志吗
码云端已配置完成,hook.php 程序为
系统为centos 7,php版本7.0.6
<?php
error_reporting(1);
date_default_timezone_set('PRC');
$target = '/var/www/mn'; // 生产环境web目录
$password = 'morning_night';
$json = json_decode(file_get_contents('php://input'), true);
//if($json['password'] !== $password){
// exit('error request!'.date('Y-m-d H:i:s'));
//}
$cmd = "sudo -Hu www cd $target && git pull";
shell_exec($cmd);
echo date('Y-m-d H:i:s')."success";
请求 URL 也已经有输出success,但是最后发现sudo -Hu www cd $target
并没有起作用(没有切换到对应目录),然后在ssh界面使用命令sudo -Hu www cd /var
,文件夹也并没有切换,这是为啥啊0 0
5.3 之后的 passport 好像不支持多表(就是多个用户系统同时使用 passport),那对于多用户前后端完全分离的系统有什么好的处理方式吗?
谢谢。之后就解决了,确实是这里~~