エックスサーバーに Bolt という CMS を設置する手順を紹介します。
Bolt 自体の紹介というよりは、エックスサーバーのような共用レンタルサーバーに、CMS を設置する一つの方法(手順)を紹介することが目的です。
1. 本ページのポイント
- ターミナル上での php バージョンを変える方法
- ドキュメントルートの制限を回避する方法
2. Bolt とは?
Bolt はオープンソースの CMS ツールです。シンプルで分かりやすいことを売りにしています。

技術的には、Silex というマイクロフレームワークを使用しています。これは、Symfony というフレームワークが持っているコンポーネントを使って開発された軽量フレームワークです。また、テンプレートエンジンとしては、Twig を採用しています。
3. Bolt をエックスサーバーに設置する
Bolt を導入する方法は、Installation | Bolt Documentation に載っています。ですが、特にレンタルサーバーを使う場合は、難しいと思いますので、以下で順番に説明します。この方法は、Bolt 以外の CMS でも役に立つと思います。
前提条件
- エックスサーバーのサブドメインとして、Bolt を使ったウェブサイトを公開します。
- 今回の方法では SSHでサーバーにログインして作業を行います。
導入手順
(1) まず、エックスサーバーのサーバーパネルで、[サブドメイン設定] を追加します。
ここの詳細は省略します。
![[サブドメイン設定] を追加](/wp-content/uploads/2018/10/2018-10-30_002a.min_.png)
例えば、こんなサブドメインを追加して、ウェブサイトを公開するとします。
この時点で、サーバー上の /home/ユーザー名/ドメイン名/public_html/
以下に サブドメイン名
のディレクトリが作成されます(この場合は、bolt
という名前のディレクトリが作成されます)。
設定を追加したら、ウェブブラウザでこのサブドメインにアクセスしますが、すぐにアクセスしても以下のように表示されるだけですのでしばらく待ちます。そのうち、エックスサーバーが用意したデフォルト画面の表示になるはずです。

(2) このサブドメインに対して、[独自SSL設定] を追加します。
HTTPS でもウェブサイトを公開するため、この設定が必要です。
![[独自SSL設定] を追加](/wp-content/uploads/2018/10/2018-10-30_005a.min_.png)
今回使うサブドメイン名と、エックスサーバーで借りているサーバーの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 のプロジェクトを作成するパスですが、今回のドキュメントルートは以下になっているはずです。
(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] ボタンをクリックします。

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

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

bolt の導入は以上です。
4. おわりに
共用レンタルサーバーであるエックスサーバーに、Bolt を導入する手順について説明しました。
共用レンタルサーバーは制約が多く、しかもサービスによって制約に違いがあります。更に CMS のようなツール側もツールによって制約が異なります。こうなると組み合わせの数は膨大で、導入時に起きる問題を事前に予想するのは困難です。そのため、実際にやってみて起きた問題を1つ1つ解決していくことになります。
今回の場合、php のバージョンやドキュメントルートが問題になりましたが、これはエックスサーバーと Bolt に限った問題ではないでしょう。他のレンタルサーバー、他のツールを導入する場合でもあっても、似たような問題が起きた際には役に立つのではないかと思います。