-   topic   - トピックス

baserCMSとWordPressを同じ環境で共存インストールさせる方法

2017年07月18日 技術関係

baserCMSとWordPressを同じサーバーで動かす方法(同じドメイン内で共存させる方法)をメモしています。いくつかパターンが存在しますので、手順をご紹介したいと思います。

gattai.jpg

この記事の環境

  • baserCMS 4.0.5(これ以前のバージョンでは上手く動きません)
  • WordPress 4.8
  • さくらインターネット(スタンダード)

参考URL

WordPress用のフォルダを作って共存する(サイトのトップページはbaserCMS)

baserCMSをインストールしたフォルダ内にWordPress用のフォルダ「WP」を作って共存させます。この場合、各ページのURLは以下のようになります。

baserCMSのトップページ
http://example.com
WordPressのトップページ
http://example.com/WP/
WordPressの記事URL(パーマリンク[基本型])
http://example.com/WP/?p=xxx
WordPressの記事URL(パーマリンク[archive型])
http://example.com/WP/archives/xxx

手順1−1:baserCMSをインストールする

通常のインストールと同じく、http://example.com/ にbaserCMSをインストールします。

手順1−2:インストールしたフォルダ内に「WP」フォルダを用意する。

WordPressをインストールするためのフォルダを用意します。ここでは「WP」としていますが、実際にはどんなフォルダ名でもOKです。結果として下図のような構成になると思います。

app_WP.png

手順1−3:フォルダ「WP」にWrodPressのファイル群をアップロードする。

WordPressをインストールするためのフォルダ「WP」の中に、WordPressのファイル群を全てアップロードします。

in_WP.png

手順1−4:WordPressをインストールする

http://example.com/WP/ にアクセスします。するとWordPressのインストール画面が開きますので、そのままインストールを進めて下さい。これにてbaserCMSとWordPressの共存パターン1は終了です。

ちなみに、baserCMSのトップページなどで、WordPressの記事を新着順に表示したい時は、baserCMSの標準機能(プラグインとして実装)している「Feed」を使って、WordPressのRSSを読み込んで表示すればOKです。(「Feed」は外部ブログなどのRSSを読み込んで新着順に表示する機能で、baserCMS内部のブログ以外を使いたい時に使用する機能です。)

なお、このパターンであればWordPressのインストールフォルダ(今回は「WP」)を分けることで、複数のWordPressをインストールすることができます(そんな必要がある場合は稀だと思いますが・・・)。

同じフォルダ内で共存する(サイトのトップページはbaserCMS)

baserCMSとWordPressを同じフォルダ内で共存させます。トップページはbaserCMSに担当させます。この手法を用いると各ページは以下のようなURLになります。

baserCMSのトップページ
http://example.com/
WordPressのトップページ
(ありません)
WordPressの記事URL(パーマリンク[基本型])
(できません)
WordPressの記事URL(パーマリンク[archive型])
http://example.com/archives/xxx

(以下、公式Wikiに掲載されている手順と少し異なりますが、やっていることは同じです)

手順2−1:baserCMSをインストールした後、.htacseccをリネームして退避させる。

通常のインストールと同じく、http://example.com/ にbaserCMSをインストールします。その後、インストールフォルダ直下の.htaccessの名前をリネームします。(これは次以降の作業でWordPressが自動的に.htaccessを書き換える為で、一旦リネームして退避させておくことで問題発生時の復旧を容易にする意図があります)

htacces_rename.png

手順2−2:baserCMSのindex.phpをリネームする。

index.phpをリネームします。次以降の作業でWordPressをインストールしますが、同名のファイルがWordPressにもあるため、baserCMS側を変更して重複を避けます。 リネーム後はどのような名前でも構いません。ここでは、index_basercms.phpとします。

index_rename.png

手順2−3:WordPressのファイル群をアップロードする。

baserCMSのインストールフォルダにWordPressのファイル群をアップロードします。

app-wordpress.png

手順2−4:WordPressをインストールする。

http://example.com/ にアクセスするとWordPressのインストール画面が開きます。そのままインストールを完了させましょう。

手順2−5:パーマリンクの設定を確認する。

http://example.com/wp-login.php にアクセスしてWordPressにログインします。管理画面の[設定]-[パーマリンク設定]を開いて「数字ベース」を選択します。デフォルトの基本型(?p=xxxという形式)を使うのは出来ないか、難易度が高そうです。(また、その他の形式を使う場合も下記の.htaccessを上手に書き換えなくてはいけないと思います)

手順2−6:.htaccessの中身を編集する。

インストールフォルダにある.htaccessの中身を以下のように編集します。なお、下記の「index_basercms.php」とある箇所は前述手順2-2でリネームしたファイル名に読み替えてください。この記事通りに進めていれば、そのままで構いません。(参考文献:公式Wiki

  
RewriteEngine On
RewriteBase /

# トップページをbaserCMSにする。
RewriteRule ^$ index_basercms.php [L]

# WordPress(archivesフォルダ以下をWPに繋ぐ)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/archives/ [NC]
RewriteRule . /index.php [L]

# baserCMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index_basercms.php [QSA,L]
  

これにてWordPressの共存パターン2は終了です。トップページはbaserCMSのまま、/archives/xxx というURLでブログ部分をWordPressにできます。

同じフォルダ内で共存する(サイトのトップページはWordPress)

前述手法と同じく、baserCMSとWordPressを同じフォルダ内で共存させます。ただし今回はトップページをWordPressに担当させます。この手法を用いると各ページは以下のようなURLになります。

baserCMSのトップページ
(ありません)
WordPressのトップページ
http://example.com/
WordPressの記事URL(パーマリンク[基本型])
http://example.com/?p=xxx
WordPressの記事URL(パーマリンク[archive型])
http://example.com/archives/xxx

※手順3−1〜手順3−4 までは、手順2−1〜手順2−4までと同じです。(今回はパーマリンクの設定は不要です。)

手順3−5:.htaccessの中身を編集する。

インストールフォルダにある.htaccessの中身を以下のように編集します。

  
RewriteEngine On
RewriteBase /

# baserCMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index_basercms.php [QSA,L]

# WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
  

上の内容でWordPressのトップページを残して、自由なパーマリンクを使いつつ、他の下層ページはbaserCMSで管理できるようになります。

おわりに

いかがでしたでしょうか。baserCMS自身もブログの機能を持っていますので、あまり需要はないかも知れませんが、WordPressで作られたホームページをbaserCMSでリニューアルする時に、旧記事を維持したい場合などは使えるかも知れません。お試しください。