[baserCMS] テーマのインストール方法

baserマーケット(http://market.basercms.net/) などでダウンロードしたテーマをbaserCMSにインストールする方法です。

インストールする方法は２種類あります。
管理画面よりアップロードする方法と、FTPソフトなどでアップロードする方法です。

例として nada-icons のテーマをインストールするとします。
baserマーケットにて
theme_nadaicon-3.0.0.zip
をダウンロードしておいてください。

## インストール方法１

管理画面よりアップロードします。

右上のメニューより「テーマ管理」→「新規追加」をクリックしてください。

![テーマ管理](https://qiita-image-store.s3.amazonaws.com/0/17632/beb349d7-dcf5-b2cd-67ed-e43573578297.png)

![テーマアップロード](https://qiita-image-store.s3.amazonaws.com/0/17632/7af8e402-b279-6ac5-deb1-c1b455e0fa6e.png)

テーマアップロードよりテーマのzipファイルを選択して、「適用」ボタンでアップロードしてください。

### 「アップロードしたZIPファイルの展開に失敗しました」と表示されてアップロード出来ない場合

![テーマアップロード失敗](https://qiita-image-store.s3.amazonaws.com/0/17632/be250a5e-eae3-26d8-4759-74f36033ccdb.png)

この場合、いくつか原因が考えられます。
サーバの設定変更などが必要になる場合もあるので、詳しくない方はインストール方法２のFTPによるアップロードを試してみてください。

これまで自分があったよくあるエラーのパターンを記載してみます。

* (baserCMSインストールフォルダ)/app/webroot/theme/ フォルダに書き込み権限がない
* PHPで設定されているアップロードできるサイズの上限を超えている
* zipファイルが破損している
* nada-icons/nada-icons/xxx みたいな テーマファイル内のフォルダが二重になっている 

もちろん他にも原因があるかもしれません。


### PHPで設定されているアップロードできるサイズの上限を超えている

管理画面の システム設定 > 環境情報  の PHP環境や phpinfoにて PHPの設定を確認してみて、サイズが小さい場合は php.ini や .htaccess 、レンタルサーバの管理画面などで設定を変更してください。
memory_limit、post_max_size、upload_max_filesizeなどの数値の変更が必要と思われます。

例えば
memory_limit = 32M
post_max_size = 2M
upload_max_filesize = 2M

とかになっていると、2MBまでしかアップロードできなかったりします。

* nada-iconsは画像が沢山入っていることもあり、11MB程のサイズです…。

* レンタルサーバによってはPHPの設定が変更不可のサーバもあります。
その場合はあきらめてFTPでテーマをアップロードしてください。


#### 参考（PHP設定）

* http://www.favorite-labo.org/view/347
* http://www.php-factory.net/trivia/05.php
* http://lolipop.jp/manual/user/php-setting/#p-php-ini
* http://nozawashinichi.sakura.ne.jp/usingmt/2009/05/php.html




## インストール方法２

テーマファイルを直接FTPソフトなどでアップロードする方法です。

圧縮ファイルzip形式の解凍ソフトなどで theme_nadaicon-3.0.0.zip を解凍すると

nada-icons

というフォルダが出来ると思います。


nada-iconsフォルダの中身は
![nada-iconsフォルダの中身](https://qiita-image-store.s3.amazonaws.com/0/17632/5b304c42-c78e-3d63-dcc6-372f680943c2.png)
という感じになっていると思います。


このフォルダ(nada-icons)をFTPソフトにて下記のテーマフォルダにアップロードします。

(baserCMSインストールフォルダ)/app/webroot/theme/

* FileZillaによるアップロードの例

![FileZillaによるアップロードの例](https://qiita-image-store.s3.amazonaws.com/0/17632/3a4f3a28-6069-3700-5452-65eb37203e85.png)

アップロードが完了すると
(baserCMSインストールフォルダ)/app/webroot/theme/nada-icons/
が作成されます。

そして、管理画面の「テーマ管理」の一覧に表示されます。

![テーマ一覧](https://qiita-image-store.s3.amazonaws.com/0/17632/61e9db2f-2071-c6f6-4446-85bac653775f.png)

## テーマを有効にするには？

有効にしたいテーマのチェックボックスのようなアイコン、「適用」ボタンを押してください。

![テーマ有効化](https://qiita-image-store.s3.amazonaws.com/0/17632/d35a402f-a6d2-b737-5ab2-0ceb35b20814.png)

テーマを適用した時に、

> このテーマは初期データを保有しています。
> Webサイトにテーマに合ったデータを適用するには、初期データ読込を実行してください。

とメッセージが表示される場合は、利用しているテーマには初期データがあるので、初期データ読み込みボタンを押してください。

※ 読み込まない場合は、テーマによってはサイトが崩れて表示されたり、エラーが表示されたりして正しく表示されない場合もありますのでご注意を。


![テーマ初期データ](https://qiita-image-store.s3.amazonaws.com/0/17632/8f8b42f5-3c4a-b5da-0ca8-360acf2973f6.png)

これで完成です。

ご自身のサイトのTOPページヘアクセスしてみてください！


## 「「Pages」フォルダに書き込み権限を与えてください。」の表示について

![テーマのPagesフォルダの警告](https://qiita-image-store.s3.amazonaws.com/0/17632/8422e43a-14cc-1f36-594c-cdb158246cf9.png)


テーマ内のPagesフォルダにWebサーバが書き込みできる権限（755や775,777など）を与えてください。

例
(baserCMSインストールフォルダ)/app/webroot/theme/nada-icons/Pages

書き込み可能な権限については、サーバによって異なると思いますので、ご利用のサーバのマニュアルを参考にしてください。

公式フォーラムの情報を見てみますと
http://forum.basercms.net/modules/newbb/viewtopic.php?topic_id=1459&forum=2&post_id=5525#forumpost5525

ロリポップの場合は下記の両方のフォルダを705にする必要がありそうです。
(baserCMSインストールフォルダ)/app/webroot/theme/nada-icons/
(baserCMSインストールフォルダ)/app/webroot/theme/nada-icons/Pages

他のサーバでもにたような設定で大丈夫かと思います。


## 参考サイト

### FTPについて

* ファイル転送ソフトの設定｜さくらのレンタルサーバ｜さくらインターネット公式サポートサイト
http://support.sakura.ad.jp/manual/rs/web/ftp.html

* 各種FTPソフトの設定方法 / ホームページ / マニュアル - レンタルサーバーならロリポップ！
http://lolipop.jp/manual/hp/ftp-set/

### パーミッション、書き込み権限について

* パーミッションについて / ホームページ / マニュアル - レンタルサーバーならロリポップ！ 
http://lolipop.jp/manual/hp/permission/

* CGI・PHP・SSI について｜さくらのレンタルサーバ｜さくらインターネット公式サポートサイト
http://support.sakura.ad.jp/manual/rs/tech_cgi.html#ac02


## 備考

* 公式サイトにドキュメントが見当たらなかったので書いてみました。
* 公式フォーラムにもテーマのインストールについての質問なんかは時々あるみたいだけど、情報が古いようだったのでbaserCMS3系を対象に記載してみました。
* http://forum.basercms.net/modules/newbb/viewtopic.php?topic_id=507&forum=2