我有一个基于 git 的 wiki 系统,它有一个使用本地 Apache2 Web 服务器的 PHP Web 前端。在 PHP 中,我运行git commit ...
应该允许提交对 wiki 文件所做的更改的命令。但是,由于用户身份(我的私有 SSH 密钥文件),我必须使用我的默认用户进行拉取和推送。我应该对文件.git
夹及其内容使用哪些权限?如果我使用默认权限,apache 将无法锁定索引,因此无法提交更改。
答案1
我建议不要从 PHP 应用程序中运行 shell 命令,而是开始编写 Web 应用程序,使用 PHP-Git 绑定库以编程方式使用 Git。例如php-git。
这样做有很多优点,例如不必解析命令行输出,因为这可能会在 Git 的未来版本中发生变化。
关于文件系统权限,只需登录运行 PHP 应用程序服务器的服务器(即su -l www-data -s /bin/bash
基于 Debian 的系统)并为该用户创建公钥/私钥对。将存储库克隆的所有文件所有权保留给 Web 用户。