Concrete5という、JimdoやWixに代表されるような「ドラッグ&ドロップ」で直感的な操作が可能なCMSがございます。(WYSIWIG)
JImdoやWix等と異なり、オープンソースのCMSであるため、ホスティングサーバーも自分のものを選択することができ、幅広い設定や運用が可能。
WordPressのような無機質なエディタ画面ではないため(最近はGutenberg対応されて変化しつつありますが)
クライアント様自身に楽しみながら触っていただけ、更新・運用していただける点に特徴があります。
ただしこのConcrete5、CMSのインストール時にエラーとなることが多く
特にあまりweb制作になじみのない方にとっては、インストール作業が大きな関門となっていることがあります。
そこで今回、Concrete5を「エラーなく」インストールする方法をご紹介いたします。
インストール先はエックスサーバーとしてご説明。
WordPressなら大抵のレンタルサーバーは対応していますが、concrete5となるとサーバーによっては作動しない可能性もあります。
concrete5に対応した国内レンタルサーバー一覧 | Cloud 9 Works
以下、コマンドラインが必要となる箇所もありますが、コマンドラインを使わずPHPスクリプトにて実行を行う方法の記載もあります。
Concrete5インストール作業のご参考にしていただきますと幸いです。
目次
Concrete5はファイル数が多く、解凍後にFTP経由でアップロードするとエラーが発生することが多い
本来は、concrete5 simple downloaderというPHPファイルアップロードプログラムがあり、このPHPファイルをサーバー上へアップロードしブラウザでファイルへアクセスすると、Concrete5ファイルが自動的にダウンロード・展開されるようになっています。
動作確認済みのレンタルホストサーバー
ロリポップ
heteml
CPI
さくらのレンタルサーバ スタンダード
Windows Azure Website
ファーストサーバー Zenlogic
Simple Downloader の紹介 :: concrete5 Japan 日本語公式サイト
上記のレンタルサーバーをご利用であれば、concrete5 simple downloaderを利用するのが1番の近道でしょう。
また、ConoHa VPSというVPSにおいては、ワンクリックでConcrete5のアプリケーションイメージをインストール可能です。
ただし、ConoHa VPSはセキュリティー対策を含めたサーバー設定が必要になるため、サーバー関連の知識がない方はご利用を控えた方が良いかと思います。
さて、今回のエックスサーバーではこのconcrete5 simple downloaderが動作しません。
その場合には、FTPクライアントを用いて、解凍後のConcrete5ファイル一式をサーバーへアップロードするという方法が取られるのですが
前述のとおり、Concrete5はファイル数が膨大なため、いくつかのファイルが正しくアップロードされずインストール時にエラーが発生する、という状況にしばしば陥ります。
なお、FTPで解凍後のConcrete5一式をアップロードしようと思うと、10~20分程度かかる印象。その作業を繰り返していたのです。
さらに、インストール実行時にインストール完了せずとも、データベースに内容が書き込まれてしまいます。
そのためデータベース自体も再作成するといった非効率なことを繰り返し、ようやく無事にアップロードが完了する…という流れでした。
そこで、このような非効率な作業を行わずに済むよう、今回は「Concrete5をzipファイルのままアップロードし、サーバー上で解凍する」という方法をご紹介したいと思います。
レンタルサーバー上でzipファイルを解凍する方法としては以下の3つの方法があります。
レンタルサーバー上でZipファイルを解凍するには、
1.SSHやtelnetを利用する
2.サーバーツールのファイルマネージャを利用する
3.解凍スクリプトを利用する
などの方法があります。但し、
・SSHやtelnetは、クライアントソフトを利用しますが、サーバーの設定やコマンド操作などが難しい。
・ファイルマネージャは、通常のブラウザーが利用可能ですが、扱えるファイル容量などに制限がある。
・解凍スクリプトは、通常のブラウザーが利用可能ですが、自分でプログラムを書くかネット上で検索する必要がある。
など、それぞれ難点を抱えています。
レンタルサーバー上でZipファイルを解凍する – ちょっとした忘備録
上記の説明のように、解凍スクリプトをweb上で探して実行してもいいのですが、エックスサーバーはSSH接続が可能なレンタルサーバー。
そこで今回はSSH接続を利用し、unzipコマンドでConcrete5のzipファイルをサーバー上で解凍する手段を試みました。
以下、エックスサーバー上でSSH接続にて、zipファイルを解凍、インストールしていく手順をご説明します。
エックスサーバー管理画面でSSH接続用の秘密鍵/公開鍵を作成する
エックスサーバーのサーバーパネルへログインし、SSH設定の画面へ移動します。
まず、SSH接続がONとなり、接続許可されているか確認をしてください。
SSH設定の流れ参考 : SSH設定 | レンタルサーバー【エックスサーバー】
次に「公開鍵認証用鍵ペアの生成」タブに移動し
パスフレーズを設定したあと、確認画面へ。
これでサーバー上に公開鍵が設置され、対応する秘密鍵のダウンロードが自動で始まります。
秘密鍵のDL先は任意の場所でもOKですが
~/.ssh/秘密鍵ファイル.key
というように、ユーザーホーム直下に「.ssh」の名前へ付けたディレクトリを作成し、保管しておくのが一般的です。
設定したパスフレーズはSSH接続する際に必要となるので、忘れないようにメモ。
エックスサーバーでは、XアクセラレータVer.2をONにして高速化を行う
Concrete5はファイル数も多く、膨大なプログラムが動きます。そのため、速度を保証し、ストレスなく更新していけるようにサーバー設定が大切になります。
そこで可能な限り、「XアクセラレータVer.2」の機能をONにしておきましょう。
これから新規ドメインを追加される方は、ドメイン追加時にXアクセラレータをONにするかの設定ができますので、その際にONにしてください。
同時にSSL設定: https化も行うことができます。
すでにドメインを追加していたり、ドメイン追加時に設定ができなかった方はこちらを参考。
【高速化】エックスサーバーの「Xアクセラレータ」でサックサクに! | デジタルマーケティング専門家/デジタルマーケッター松原潤一のブログ
秘密鍵のパーミッションを600に設定し、SSH接続
このままSSH接続してしまうと、パーミッション権限が広すぎる!とターミナルに怒られてしまいます。
そこで、
# chmod 600 秘密鍵ファイル.key
を行い、秘密鍵のパーミッションを600に設定しましょう。
次に、この秘密鍵を用いてエックスサーバーにSSH接続を行います。(公開鍵認証方式)
SSH接続コマンドは…
# ssh -i ~/.ssh/秘密鍵ファイル.key ユーザー名(=サーバーID)@サーバーID.xsrv.jp -p 10022
以下、SSHコマンドオプションの説明と補足。
-i | 秘密鍵を選択するオプション。秘密鍵ファイルの場所をパス指定してください。 |
-p | ポート番号指定のオプションです。エックスサーバーは一般的なSSH接続ポートとは異なり、10022番を指定して接続してください。 |
ユーザー名 | エックスサーバーの「サーバーID」。ホスト名(sv***.xserver.jp)の指定でもログインが可能です。 |
上記のコマンドを打つと
-bash: 警告: setlocale: LC_CTYPE: ロケールを変更できません (UTF-8): そのようなファイルやディレクトリはありません
と表示されますが、これは無視して大丈夫です。
ユーザー名の部分が[〇〇〇〇.@sv〇〇◯◯ ~]となっていたら、SSHによるログイン成功です。
最新版Concrete5をzipファイルのままサーバーへアップロード
一旦コマンドラインから離れ、ブラウザから、最新版のconcrete5ファイルをzip形式にてローカルPCへダウンロードします。
ダウンロード :: concrete5 Japan 日本語公式サイト
ダウンロードしたファイルをzip形式のまま、サーバーへアップロードします。
zipファイルはFTPでアップロードしてもOKですし
Curlコマンドやwgetコマンドでサーバーへ直接ダウンロードしてもOK。
(上記のように、一旦ローカルへ落とさなくても勿論OKです)
【エックスサーバー】SSHで圧縮ファイルをダウンロード&解凍する – ysklog
私はscpコマンドでアップロードしました。
$ scp [オプション] コピー元パス 保存先パス
でターミナルよりアップロード可能です。
オプションは -i で秘密鍵パスを指定、-Pでパスを10022に変更指定すれば良いでしょう。
SCPコマンドでローカルのファイルをサーバにアップ&サーバ上のファイルをDL – Qiita
アップロード先は、該当ドメイン名ディレクトリ直下内にあるpublic_htmlフォルダへzipファイルを置いてください。
SSH接続から、unzipコマンドでサーバー上で解凍する
再びターミナルより、SSH接続をしてエックスサーバーにログインしたあと
該当ドメイン名ディレクトリのpublic_htmlフォルダへcdコマンドにより移動します。
zipファイルがあることを確認したら
# unzip concrete5-◯◯.zip
のコマンドで、サーバー上でConcrete5-zipファイルの解凍を行ってください。
解凍後は、zipファイルはrmコマンドで削除。
concrete5フォルダ中身を該当ドメインのルートディレクトリへ
この状態では、「concrete5-◯◯」という、zipファイルの名前フォルダ内に、Concrete5の中身ファイルが格納されている状態です。
このままインストール作業を進めてしまうと、URLが
ドメイン.com/concrete5-◯◯/
という形になり、フォルダ名でサプディレクトリが生成されてしまいます。
元々このようなサブディレクトリ形式での運用を想定しており、サブディレクトリ内にConcrete5を置きたいという場合には、単にフォルダ名を希望のサブディレクトリ名へ変更するだけでOK。
そうではなく、ルートディレクトリにConcrete5を設置したい場合は
FTPもしくはmvコマンドを利用して、Concrete5の中身のみをフォルダ名「Concrete5-◯◯」と同じ階層に全て移動させてください。(1つ上の階層)
その後、「concrete5-◯◯」という名前のフォルダは、中身が空であることを確認して、削除してしまって大丈夫です。
以上で完了です!
Concrete5を設置した場所へブラウザからアクセスし、Concrete5のインストール作業を通常通り進めていけば、無事にインストール完了となります。
おつかれさまでした!
Leave a Reply