Apacheがgitリポジトリからプルされている.htaccessファイルへの書き込みアクセスを自動的に許可することに問題があります。
これが私のプロセスです:
新しく作成したユーザー "webadmin"としてログインし、グループ "Apache"に追加されました(私はCentOSを使用しているので、www-dataと同等です)そして空のディレクトリを作成しました:
/var/www/html/test
このディレクトリで、次のことを確認しました。
$ umask 002
$ chown -R Apache:apache /var/www/html/test
$ chmod -R g+rw /var/www/html/test
これは、ディレクトリがgroup "Apache"によって所有されていることを確認するためです。 myuser "webadmin"はそのグループの一部です。これで追加するものはすべて、ユーザーはApacheユーザー(phpスクリプト)でも書き込み可能になります。
まだwebadminユーザーを使用して、次に
git clone myrepo.git .
これは私のWordPressウェブサイトファイルをディレクトリにプルダウンします。これには.htaccessファイルが含まれています。このファイルは、ルールを変更できるように、WordPressで書き込み可能である必要があります。プルダウンされたすべてのファイルはwebadminが所有し、Apacheのグループがあります。
何らかの理由で、.htaccessファイルは、次のコマンドを再度実行するまで、デフォルトではApacheで書き込みできません。
$ chmod -R g+rw /var/www/html/test
このコマンドを再度実行する必要があるのはなぜですか? -R g+rw
コマンドを実行せずに、このファイルがプルダウンされたときにApacheによって自動的に書き込まれるようにする方法はありますか?
あなたの必要性は このstackoverflow post の正反対です。つまり、次のことを選択できます。
git
を実行する前に、umaskを適切に設定します(投稿によると、おそらく002に設定します)。通常、最初の選択の方が簡単です。