Я думаю, что это последний вопрос, который у меня возникает с настройкой Git на этом выделенном сервере (с cpanel).
Я создал голый репо на своем ПК, разместил его на сервере: /home/cpaneluser/git-repos/
Отредактировано /home/cpaneluser/git-repos/myproject.git/hooks/post-receive
и это содержимое:
#!/bin/sh
GIT_WORK_TREE=/home/cpaneluser/public_html GIT_DIR=/home/cpaneluser/git-repos/myproject.git git checkout -f
Я дал ему разрешение 0764, чтобы владелец мог его выполнить. Кажется, что он выполнен отлично, потому что он фактически помещает файлы моего репо в мою директорию public_html, как и ожидалось.
Затем я перехожу к домену в своем браузере и получаю внутреннюю ошибку сервера с его общим, бесполезным сообщением об ошибке The server encountered an internal error or misconfiguration and was unable to complete your request.
Что действительно странно, если я вручную отредактирую файл index.php, расположенный в webroot 'public_html', он, похоже, волшебным образом исправит все. Однако, сделав это редактирование, вы перестанете синхронизировать репо с моим локальным концом.
Кто-нибудь знает, почему я получаю ошибку интернет-сервера после запуска "post-receive" hook, который выполняет checkout -f
. И как я могу это исправить?
Спасибо.
Добавление umask 0022
разрешило мои проблемы с разрешением.
#!/bin/sh
umask 0022
GIT_WORK_TREE=/home/cpaneluser/public_html GIT_DIR=/home/cpaneluser/git-repos/myproject.git git checkout -f
[Fri Jan 16 17:27:08 2015] [warn] File "/home/cpaneluser/public_html/index.php" is writeable by group
. Файлы создаются с 0664, когда они должны быть 0644. Так что теперь я думаю, почему файлы создаются с неправильными разрешениями и как это исправить?umask 0022
и он создал файлы с разрешениями 0644, и теперь внутренняя ошибка сервера исчезла. Работает отлично сейчас! - @PaulCrovella, если вы хотите отправить его как ответ, я приму это для вас;)