Tips

エックスサーバーに Bolt (CMSツール)を設置する

投稿日:

エックスサーバーに Bolt という CMS を設置する手順を紹介します。

Bolt 自体の紹介というよりは、エックスサーバーのような共用レンタルサーバーに、CMS を設置する一つの方法(手順)を紹介することが目的です。

1. 本ページのポイント

  • ターミナル上での php バージョンを変える方法
  • ドキュメントルートの制限を回避する方法

2. Bolt とは?

Bolt はオープンソースの CMS ツールです。シンプルで分かりやすいことを売りにしています。

公式サイト:Bolt CMS

技術的には、Silex というマイクロフレームワークを使用しています。これは、Symfony というフレームワークが持っているコンポーネントを使って開発された軽量フレームワークです。また、テンプレートエンジンとしては、Twig を採用しています。

3. Bolt をエックスサーバーに設置する

Bolt を導入する方法は、Installation | Bolt Documentation に載っています。ですが、特にレンタルサーバーを使う場合は、難しいと思いますので、以下で順番に説明します。この方法は、Bolt 以外の CMS でも役に立つと思います。

前提条件

  • エックスサーバーのサブドメインとして、Bolt を使ったウェブサイトを公開します。
  • 今回の方法では SSHでサーバーにログインして作業を行います。

導入手順


(1) まず、エックスサーバーのサーバーパネルで、[サブドメイン設定] を追加します。

ここの詳細は省略します。

[サブドメイン設定] を追加
[サブドメイン設定] を追加

例えば、こんなサブドメインを追加して、ウェブサイトを公開するとします。

bolt.fitallright.com

この時点で、サーバー上の /home/ユーザー名/ドメイン名/public_html/ 以下に サブドメイン名 のディレクトリが作成されます(この場合は、bolt という名前のディレクトリが作成されます)。

設定を追加したら、ウェブブラウザでこのサブドメインにアクセスしますが、すぐにアクセスしても以下のように表示されるだけですのでしばらく待ちます。そのうち、エックスサーバーが用意したデフォルト画面の表示になるはずです。

変更が反映されていない場合の表示
変更が反映されていない場合の表示


(2) このサブドメインに対して、[独自SSL設定] を追加します。

HTTPS でもウェブサイトを公開するため、この設定が必要です。

[独自SSL設定] を追加
[独自SSL設定] を追加

今回使うサブドメイン名と、エックスサーバーで借りているサーバーのIPアドレスが紐づくように設定しておかないとエラーになりますので気を付けて下さい。DNSレコードを変更する場合は、その反映に時間が掛かります。


(3) ターミナルエミュレータを使い、エックスサーバーに SSH でログインします


(4) composer コマンドを使って、Bolt のプロジェクトを作成します

Bolt のプロジェクトを作るにはいろいろな方法があるのですが、今回は composer コマンドを使います。

composer というのは、PHP製のパッケージ管理ツールなのですが、このコマンドの内部では php コマンドを利用しており、ここで php のバージョンが問題になってきます。今回の環境では、php コマンドのバージョンが 5.4.16 だったのですが、Bolt はこのバージョンに対応していないのです。

幸い、/usr/bin/php7.2 として PHP 7.2 の php コマンドが用意されていましたので、これを phpという名前で使えるようにシンボリックリンクを作り、パスを通しておきます。

$ mkdir -p ~/local/bin
$ ln -s /usr/bin/php7.2 ~/local/bin/php

~/.bash_profile に以下を追記します。

export PATH=$HOME/local/bin:$PATH

すぐにパスを反映するため、手動でも1度このコマンドを実行します。

export PATH=$HOME/local/bin:$PATH

次に、Bolt のプロジェクトを作成するパスですが、今回のドキュメントルートは以下になっているはずです。

/home/ユーザー名/fitallright.com/public_html/bolt/

(1) の手順でこの bolt ディレクトリは作成されているのですが、このディレクトリを Bolt のプロジェクトディレクトリと入れ替えます。そのため、現時点での bolt ディレクトリをどこかに退避した後、新たに bolt という名前で Bolt のプロジェクトディレクトリを作成します。

$ cd ~/fitallright.com/public_html/
$ mv bolt ~/tmp    # どこかに退避させる

以下のコマンドで、Bolt のプロジェクトとなるディレクトリを bolt という名前で作成します。

$ composer create-project bolt/composer-install:3.6.x bolt --prefer-dist

※ 引数でディレクトリ名 bolt を指定しています。

途中、いくつか質問されますが、基本的にはデフォルトのままでよいでしょう。

このディレクトリ以下のパーミッションを変更しておきます。

$ chmod -R a-x,go-wx,ug+w,a+rX bolt


(5) ドキュメントルートを publiディレクトリに変更する設定を追加します

Bolt では、今作成したディレクトリ内の public をドキュメントルートとして使用します。そのため、プロジェクトディレクトリ直下の .htaccess に設定を追記します。

$ cd bolt
$ vi .htaccess

以下を追記します。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^bolt.fitallright.com$ [NC]
RewriteCond %{REQUEST_URI} !^/?public/
RewriteRule (.*) /public/$1 [L]

これは、mod_rewrite という、URLを書き換えてくれるモジュールを利用した記述を行っています。


(6) ウェブブラウザでサブドメインのURLにアクセスします

Bolt でのアカウント作成を行う画面が表示されますので、必要な情報を入力して[Create the first user] ボタンをクリックするのですが、その前にデータベースの設定もあります。

この時点では、データベースに SQLite が使用されています。MySQL か PostgreSQL を使いたい場合は、app/config/config.yml ファイルを編集し、この画面をリロードして下さい。

以上を終えたら、[Create the first user] ボタンをクリックします。

Bolt でのアカウント作成
Bolt でのアカウント作成

※ 画面上部では、short_open_tag というPHPの設定を変更することが推奨されています。もしこれに従うのであれば、サーバーパネルの [php.ini 設定] から Off にすることができます。

問題がなければ、Bolt の管理ページに移動します。

管理ページ
管理ページ

一般に公開される側のページは、こんな感じです。

トップページ
トップページ

bolt の導入は以上です。

4. おわりに

共用レンタルサーバーであるエックスサーバーに、Bolt を導入する手順について説明しました。

共用レンタルサーバーは制約が多く、しかもサービスによって制約に違いがあります。更に CMS のようなツール側もツールによって制約が異なります。こうなると組み合わせの数は膨大で、導入時に起きる問題を事前に予想するのは困難です。そのため、実際にやってみて起きた問題を1つ1つ解決していくことになります。

今回の場合、php のバージョンやドキュメントルートが問題になりましたが、これはエックスサーバーと Bolt に限った問題ではないでしょう。他のレンタルサーバー、他のツールを導入する場合でもあっても、似たような問題が起きた際には役に立つのではないかと思います。

-Tips

執筆者:fitallright

関連記事

Wayback Machine にサイトを保存させない

robots.txt ファイルとは? にも書いたのですが、Wayback Machine というサイトがあります。 Wayback Machine Wayback Machine は、世界中のウェブサ …

【VPS, クラウドサーバー】MySQL (MariaDB) が突然停止する場合は、innodb_buffer_pool_size が大きすぎるかもしれません

VPS や クラウドサーバー(OS は Linux)を借りて、MySQL (MariaDB) を使っている場合のお話しです。 目次現象調査my.cnf で innodb_buffer_pool_siz …

エックスサーバーのWAF機能について

エックスサーバーの WAF (Web Application Firewall) 機能について書きます。 目次1. WAF機能(エックスサーバー)の良いところ2. WAF機能(エックスサーバー)の残念 …

CGI と PHP(モジュール版) の違い

レンタルサーバーにおける「CGI」と「PHP(モジュール版)」の違いについて書きます。 目次1. 「CGI」と「PHP(モジュール版)」の共通点2. 両者の違いと「PHP(モジュール版)」の手軽さ1. …

【エックスサーバー】サイトを編集する時は、mod_pagespeed をオフにしましょう

2019年3月27日:「mod_pagespeed設定」機能の新規設定の受付が終了しました。 「mod_pagespeed設定」機能の新規設定の受付終了について – 2019/03/27 …

ロリポップ!「スタンダードプラン」
さくらのレンタルサーバ「スタンダードプラン」