Local で管理する WordPress のインストールディレクトリ名を変更したいとき(ただし Mac)

サーバーで WordPress のインストールディレクトリよりも上位のディレクトリから Git 管理しているような、例えば以下のようなとき。

┣ .git/
┃
┗ public_html/ (WordPress インストールディレクトリかつ公開ディレクトリ)

ローカル環境でも当然 Git の連携をしたいのだけど、Local だと WordPress のインストールディレクトリ名は「public」になってしまう。

この場合 .gitignore にローカル環境用の記述を書き加えてもいいけど、管理が煩雑になる…( .gitignore に書き忘れ、とか)。
自分だけならまぁ気にしないけど、クライアントワークとかだったらあまり余計なことはしたくない。

ということでひと工夫。

1.まずは Local で素の WordPress 環境を作る

いつもどおりぽちぽちしていくだけ。

┗ (プロジェクトのディレクトリ)
        ┃
        ┣ app/
        ┃    ┣ public/ (WordPress インストールディレクトリかつローカルの公開ディレクトリ)
 ┗ wp-config.php
 ┗ sql/
        ┣ conf/
        ┗ logs/

普通にインストールするとこんなディレクトリ構造になるはず。
いったんこの状態でサイトが表示できることも確認しておこう。

2.公開環境のファイル群をごっそり移動する

┗ (プロジェクトのディレクトリ)
        ┃
        ┣ app/
        ┃    ┣ .git/
        ┃    ┃
        ┃    ┣ public_html/ (公開環境のWordPress がインストールされたディレクトリ)
        ┃    ┃
        ┃    ┣ public/ (WordPress インストールディレクトリかつローカルの公開ディレクトリ)
 ┗ wp-config.php
 ┗ sql/
         ┣ conf/
        ┗ logs/

この状態でもまだ素の WordPress のサイトが見えているはず。

このとき移植してくる公開環境の中にデフォルトのテーマ(いまなら Twenty Twenty-one)をコピペしておくことをお忘れなく。

3.wp-config.php を移動する

┗ (プロジェクトのディレクトリ)
        ┃
        ┣ app/
        ┃    ┣ .git/
        ┃    ┃
        ┃    ┣ public_html/ (公開環境のWordPress がインストールされたディレクトリ)
        ┃    ┃        ┗ wp-config.php
        ┃    ┃
        ┃    ┣ public/ (WordPress インストールディレクトリかつローカルの公開ディレクトリ)
 ┗ sql/
         ┣ conf/
        ┗ logs/

ここで WordPress を見ようとすると「Internal Server Error」かな?
public ディレクトリと接続できなくなる。

4.public ディレクトリを削除する

┗ (プロジェクトのディレクトリ)
        ┃
        ┣ app/
        ┃    ┣ .git/
        ┃    ┃
        ┃    ┣ public_html/ (公開環境のWordPress がインストールされたディレクトリ)
        ┃    ┃        ┗ wp-config.php
 ┗ sql/
         ┣ conf/
        ┗ logs/

Local 立ち上げで利用した public 以下のディレクトリは不要なので削除。

5.【ここがキモ】シンボリックリンクを作る

$ ln -s /path/to/public_html /path/to/public

解説

  • ln :リンクを作るコマンド
  • -s :作成するリンクをシンボリックリンクに指定
  • /path/to/public_html :リンクを作りたい元フォルダ(この場合 public_html
  • /path/to/public :シンボリックリンクを作るパス(この場合 public というリンクを作る)

これをすることで /path/to/public にアクセスしたら /path/to/public_html の中身にアクセスすることになる。

6.確認

┗ (プロジェクトのディレクトリ)
        ┃
        ┣ app/
        ┃    ┣ .git/
        ┃    ┃
        ┃    ┣ public_html/ (公開環境のWordPress がインストールされたディレクトリ)
        ┃    ┃        ┗ wp-config.php
        ┃    ┃
        ┃    ┣ public/ ( `public_html`へのシンボリックリンク )
 ┗ sql/
         ┣ conf/
        ┗ logs/

このようになったら再度ローカル環境の WordPress にアクセスしてみる。これでまた素の WordPress が表示できたらOK。

あとはいつものように(?)WP-CLI を使って公開環境のデータベースをインポートして search-replace すればちゃんと Git と連携した状態でローカルに環境が作れる。

Git 管理している場合、(シンボリックリンクだけど)新たに public ディレクトリができるので .gitignore に追記するのをお忘れなく。