1
1

More than 1 year has passed since last update.

bitnami wordpress でサブディレクトリタイプのマルチサイトを構築するとき

Posted at

AWSでbitnamiのwordpress イメージを使って構築するプラン

マルチサイトには2種類ある

Wordpressのマルチサイトにはサブドメイン方式と、サブディレクトリ方式の2つがある。
日本語サイトと英語サイトをひとつのwordpressで管理するようにした場合に以下のような違いになる。

サブドメイン方式では

Webサイトへのアクセスが
https://example.comhttps://eng.example.com のようになるのに対して

サブディレクトリ方式だと

https://example.comhttps://example.com/eng のような感じになる。

メリット、デメリットについてはよくわからないが、最近ではサブドメイン方式でもサブディレクトリ方式でもSEO的にはあまり変わらないようで、どちらかというと、体面的なことで、企業や商品のランディングページで日本語版と英語版を設置するならサブディレクトリ、ひとつの企業の中の事業単位でサイトを建てるならサブドメイン方式とかなのかなぁと思うくらい...

AMIの選択

インスタンスを作成するときにAWSマーケットプレイスで wordpress bitnami で検索すると、現時点(2022/11) で4つほど該当するAMIが表示される。

マルチサイトのwordpressを建てたいときはMultisite用のものを最初から使う。
シングルサイトのものを使って建てたWordpressを後からマルチサイトに変更してみたのだが、私にはうまく構築することができなかった。

image.png

★3つというのは、ちょっとうなづけるところがある。
というのは、普通のシングルサイト用のbitnamiのWordpressは本当に簡単で起動までほぼ何もすることが無いのだが、マルチサイトの場合起動までにひと手間かかるのと、マルチサイトのwordpressの管理の方法が直感的には把握しづらいところがあるからではないかと思う。まあ、そこはbitnamiが悪いわけではないのだが...

Bitnami Multisite のAMIを使ってもそのままではマルチサイトにならない

以下のURLにbitnamiのマルチサイトでの設定方法が書かれている。
https://docs.bitnami.com/installer/apps/wordpress-multisite/administration/use-directories/
アプローチ方法にAとBがあるのだが、どちらを選ぶかはAWSのAMI埜ようなシステパッケージを使用している場合はA、そうでない場合はBということになるようだ。

テスト方法としては 下記のコマンドでわかるようだ

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

実際に実行してみると以下の様な感じになる。この場合は、アプローチAの方法で行けということ。

bitnami$ test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Approach A: Using system packages.

後からこれを読んだときにはBitnamiやWordpressのアップデートが行われている可能性があるので、実際の対応方法はURLから確認するべきだが、今回の対応とてしては、以下のファイルの変更と、apacheの再起動だった。

installdir/wordpress/wp-config.php から下記の部分を変更
define( 'SUBDOMAIN_INSTALL', true ); ⇒ define('SUBDOMAIN_INSTALL', false);

installdir は、 bitnami インストールフォルダでAWSのAMIの場合は、 /opt/bitnami だった。

installdir/apache2/conf/vhosts/wordpress-vhost.conf
のファイルの下記の部分を

  # BEGIN WordPress Multisite
  # Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite
  RewriteEngine On
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  # add a trailing slash to /wp-admin
  RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]
  RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
  RewriteRule ^(.*\.php)$ $1 [L]
  RewriteRule . index.php [L]
  # END WordPress Multisite

下記の内容で置換

  # BEGIN WordPress Multisite
  # Using subfolder network type: https://wordpress.org/support/article/htaccess/#multisite
  RewriteEngine On
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  # add a trailing slash to /wp-admin
  RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]
  RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
  RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
  RewriteRule . index.php [L]
  # END WordPress Multisite

installdir/apache2/conf/vhosts/wordpress-https-vhost.conf についても上記と同様の変更を行う。

最後にapacheの再起動
sudo installdir/ctlscript.sh restart apache

これであっさりとマルチサイトのWordpressになった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1