账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用git在服务器上更新代码,经常导致权限变了,日志没有写进去,怎么解决?
    31
    0

    使用git pull在服务器上更新代码,经常导致权限变了,日志没有写进去,怎么解决?

    直接在服务器上 git pull 拉代码,经常需要:

    chown -R www.www /data/wwwroot/
    find /data/wwwroot/ -type d -exec chmod 755 {} \;
    find /data/wwwroot/ -type f -exec chmod 644 {} \;

    来解决问题,不然有时会造成日志写不进去 error_log($content, 3, $logFile);

    要怎么解决这个问题呢?

    或者是我这样使用git来部署代码的方式有问题

    还是和git的配置有关,git config core.filemode false这样可以解决吗,怀疑是git拉的时候更改的www/log目录的权限。

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 讨厌不安 普通会员 1楼

      在服务器上更新代码时,有时可能会出现权限变了,日志没有写进去的问题。这可能是由于以下几个原因:

      1. 使用了非标准的权限模式。在Linux中,Git默认使用--all模式,这意味着所有用户都有写入和执行文件的权利。如果你想只让某些用户有写入和执行文件的权利,你可以使用--groupadd--force选项,但这样可能会导致权限变化。

      2. 使用了错误的配置。例如,如果你的配置文件中没有正确地设置文件的权限,那么Git可能无法正确地设置权限。

      3. 使用了不正确的命令。例如,如果你的命令是git add .,而你没有使用--force选项,那么Git可能无法正确地添加文件,或者添加的文件可能没有被添加到tree中。

      要解决这些问题,你可以按照以下步骤进行操作:

      1. 确保你的配置文件中正确地设置了文件的权限。你可以使用--setopt选项来设置文件的权限。

      2. 使用--groupadd--force选项来让你的用户具有写入和执行文件的权利。例如,你可以使用以下命令:

      git add . git groupadd your_group_name git force add .

      在这里,your_group_name是你想要给用户分配的组名。

      1. 如果你的命令是git add .,而你没有使用--force选项,那么Git可能无法正确地添加文件,或者添加的文件可能没有被添加到tree中。在这种情况下,你需要使用--force选项来强制Git执行你的命令。

      2. 如果以上步骤都无法解决问题,那么可能需要查看你的~/.gitconfig文件,看看是否有关于文件权限的配置。例如,你可以使用以下命令:

      cat ~/.gitconfig

      在这里,~/.gitconfig是你的用户的~/.gitconfig文件的路径。

      1. 如果你仍然无法解决问题,那么可能需要查看你的服务器的/etc/ssh/sshd_config文件,看看是否有关于文件权限的配置。例如,你可以使用以下命令:

      cat /etc/ssh/sshd_config

      在这里,/etc/ssh/sshd_config是你的服务器的/etc/ssh/sshd_config文件的路径。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部