質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

2回答

579閲覧

WordpressをGitデプロイする際のサーバー上の.gitの取り扱いについて

mikeross

総合スコア18

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

1クリップ

投稿2019/07/12 01:05

お世話になっております。

表題についてご質問があるのですが、DjangoやLaravelなどはサーバー上のアクセス不可の場所に.gitと一緒にプロジェクト群を配置し、シンボリックリンクを貼ることでシステムのビューをブラウザで表示できるようにしていると思うのですが、
wordpressの場合はgitでデプロイする場合はどのように管理されていますか?

具体的には、

bash

1# laravelの場合 2laravel $ tree 3. 4├── projects(ブラウザからはアクセス不可) 5│   ├── .git 6│   └── ここにLaravel等の実態 78└── public(ブラウザからはアクセス可/シンボリックリンクでproject内の適当なファイルを参照)

上記のように、アクセス不可の部分とアクセス可能の部分が明確に分けられており、
アクセス不可の部分に.gitを配置し、cloneなりpullなりをしていると思います。

対してWordpressの場合は、

bash

1# wordpressの場合 2wordpress $ tree 3. 4└── public_html(ブラウザからはアクセス可) 5   ├── .git 6   ├── index.php 7   ├── wp-admin 8   ├── wp-content 9 // 略 10   └── その他wordpressのファイル群 11

このようになるか、またはテーマファイルだけを追跡されている方もいるかと思います。
(自分の場合はwordpress丸ごとやってしまっているので)

そこで改めてご質問ですが、
1. 基本的にwordpressの場合はGitデプロイをしない(FTPで十分)
2. LaravelやDjangoと同じようにサーバー上で権限のない人がアクセスできない場所を作り、そこにwordpress本体を配置&シンボリックリンク
3. wp-config.jpなどDBの接続する内容を追跡していなければ.gitをとられてもOK
4. その他

どれがセキュリティ的にベストな方法なのでしょうか?

どうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

そもそもLaravel等でもシンボリックリンクとか使わず
projects/publicをドキュメントルートにするだけ。

WPでも同じ。WPのディレクトリ構成は変更できると知らない人は多いけど。
https://github.com/roots/bedrock
これの場合はwebがドキュメントルート。
Laravelを参考にしてるのでgit,composer,.envでLaravelと同じ感覚で使える。

投稿2019/07/12 02:10

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

うちでは、WordPress 全体を git 管理している例はないのですが、テーマやプラグインを git でデプロイしているケースはあります。

git にオプションを指定して、.git ディレクトリ(ローカルリポジトリ)とチェックアウト先のワークツリーの配置を変更することが多いですね。 (質問に書かれた内容だと 「4.その他」の方法になるのでしょうか。)

具体的には、WordPress を通常通りセットアップしてから、テーマやプラグインのディレクトリに git のワークエリアを配置しています。

大まかなコマンド例としては、初回は、手作業でコマンドを実行してセットアップ。

  1. mkdir /home/USER/example.com_theme
  2. /var/www/example.com/ に WordPress をインストールして、設定・動作確認。
  3. git --git-dir=/home/USER/example.com_theme/.git --work-tree=/var/www/example.com/wp-content/themes/ clone https://github.com/ExapleUSER/example.com_theme.git で、リモートリポジトリからクローンして、設置。

更新時は、自動デプロイ処理の中で

  1. git --git-dir=/home/USER/example.com_theme/.git fetch で、ローカルリポジトリを更新して
  2. git --git-dir=/home/USER/example.com_theme/.git --work-tree=/var/www/example.com/wp-content/themes/ checkout -f で、チェックアウト

の用な感じで、git コマンドの実行時に --git-dir (ローカルリポジトリディレクトリを指定)と --work-tree (ワークツリーディレクトリを指定) オプションを使って、ファイルの配置ディレクトリを明示しています。

参考:
マニュアル git - the stupid content tracker

--git-dir=<path>
Set the path to the repository. This can also be controlled by setting the GIT_DIR environment variable. It can be an absolute path or relative path to current working directory.

--work-tree=<path>
Set the path to the working tree. It can be an absolute path or a path relative to the current working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable and the core.worktree configuration variable (see core.worktree in git-config[1] for a more detailed discussion).

新しいバージョンの git (2.5 以降だったかな)では git worktree コマンドで、ワークツリーを複数作れるので、git worktree コマンドで同様なことも可能と思います。

git-worktree 参照。

投稿2019/07/12 01:48

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問