https://wiki.basercms.net/api.php?action=feedcontributions&user=183.76.75.203&feedformat=atom
baserCMS公式ガイド - 利用者の投稿記録
[ja]
2024-03-28T20:52:32Z
利用者の投稿記録
MediaWiki 1.23.5
https://wiki.basercms.net/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E3%81%97%E3%81%9F%E3%81%84
バージョンアップをしたい
2023-04-27T03:21:38Z
<p>183.76.75.203: </p>
<hr />
<div>baserCMS はコアファイルが分離されていますので、比較的簡単にアップデートを行う事ができます。<br />
<br />
<span style="color:red;"><br />
baserCMSのアップデートは必ず自己責任にて行ってください。データの破損について当サイトでは一切の責任を負いません。<br />
</span><br />
<br />
## アップデート方法<br />
<br />
* <span style="color:red;">管理画面のシステム設定→データメンテナンスより必ずデータベースのバックアップを保存します。</span><br />
* システム設定より、「制作・開発モード」を「ノーマルモード」に切り替えます。<br />
* ダウンロードページからパッケージをダウンロードします。<br />
* ダウンロードしたパッケージを解凍します。<br />
* 解凍して出来上がったフォルダの {baserCMSの設置フォルダ}/lib/Baser フォルダーを、既存サイトの {baserCMSの設置フォルダ}/lib/Baser フォルダーに上書きします。<br />
* ブラウザより、アップデート用のURLにアクセスします。<br />
<pre><br />
http://{baserCMS設置URL}/update<br />
</pre><br />
* アップデート実行ボタンをクリックします。<br />
* 基本的にこれでアップデート作業は完了です。<br />
* ただし、各バージョンごとの追加作業が必要な場合もありますので、各バージョンごとの「[アップデート方法][1]」ページを必ず確認してください。<br />
<br />
## 複数のバージョンをまたがるアップデートについて<br />
<br />
baserCMSは、もちろん複数のバージョン間のアップデートも対応しているのですが、アップデーターだけでは対応できないような内容のアップデートを含む事があります。<br />
<br />
古いバージョンからのアップデートの際は、「[コアパッケージダウンロード一覧][2]」より、現在のバージョン以降のバージョンで「追加作業」が必要かどうかを確認してください。<br /> 追加作業が「必要」と記載されているバージョンがある場合には、まずそのバージョンまでアップデートを行います。まずは、そのバージョンの「[アップデート方法][3]」を確認し、追加作業を行った上で、アップデートを実行します。<br /> 次は、そのバージョンから最新バージョンまでの間に追加作業の必要なバージョンがないか確認し、ある場合には同様の作業を繰り返します。<br />
<br />
[1]: http://basercms.net/howtoupdate/<br />
[2]: https://basercms.net/download/index.html<br />
[3]: http://basercms.net/howtoupdate/</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2018-08-07T08:18:34Z
<p>183.76.75.203: /* SSLへリダイレクト出来ない場合(2018/02/22時点) */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
<br />
=== basic認証が2回表示される ===<br />
htaccessファイルに以下を記載して回避できる。<br />
<br />
<pre><br />
<If "%{HTTP:X-SAKURA-FORWARDED-FOR} != ''"><br />
AuthType Basic<br />
AuthName "Input your ID and Password." <br />
AuthUserFile /your/password/path/.htpasswd<br />
require valid-user<br />
</If><br />
</pre><br />
<br />
- 参考: http://kayakuguri.github.io/blog/2017/10/10/sakura-ssl/<br />
<br />
<br />
<br />
=== SSLへリダイレクト出来ない場合(2018/02/22時点) ===<br />
<br />
X-Sakura-Forwarded-For変数で判別できないサーバはで.htaccessファイルに以下を記載することで対応可能です。<br />
<br />
<pre><br />
Allow from all<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1<br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
<br />
- 参考: https://help.sakura.ad.jp/hc/ja/articles/115000051662<br />
- 参考: https://help.sakura.ad.jp/hc/ja/articles/360000027581-%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E4%BB%95%E6%A7%98%E5%A4%89%E6%9B%B4%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-2018%E5%B9%B43%E6%9C%88-<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
=== メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える ===<br />
<br />
HTMLのラジオボタン生成時にIDの0が消えてしまって、JSの動作が正しく動いていない。<br />
保存される値には影響がないが見た目がおかしい。<br />
<br />
本来は<br />
<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender10" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
のようなHTMLが生成されるが、このサーバの場合は<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
と表示されてしまう(理由は不明)<br />
<br />
id="MailContentSender10" → id="MailContentSender1" のように0が消えてしまう。<br />
<br />
その為、テキストエリアのid="MailContentSender1" とかぶってしまうのが原因。<br />
<br />
==== 対応方法 ====<br />
<br />
・見た目だけなので、放置する<br />
<br />
・ソースを書き換え、ID重複がしないように変更する<br />
<br />
lib/Baser/Plugin/Mail/View/MailContents/admin/form.php を<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php へコピーする。(フォルダも作成)<br />
<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php を変更する<br />
<br />
22行目<br />
<pre><br />
$('input[name="data[MailContent][sender_1_]"]').click(mailContentSender1ClickHandler);<br />
<br />
↓<br />
<br />
$('input[name="data[MailContent][sender_1a]"]').click(mailContentSender1ClickHandler);<br />
</pre><br />
<br />
27行目<br />
<pre><br />
$("#MailContentSender1_1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1_0").attr('checked',true);<br />
<br />
↓<br />
<br />
$("#MailContentSender1a1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1a").attr('checked',true);<br />
</pre><br />
<br />
60行目<br />
<pre><br />
if($('input[name="data[MailContent][sender_1_]"]:checked').val() == '1'){<br />
<br />
↓<br />
<br />
if($('input[name="data[MailContent][sender_1a]"]:checked').val() == '1'){<br />
</pre><br />
<br />
135行目<br />
<pre><br />
echo $this->BcForm->input('MailContent.sender_1_', array(<br />
<br />
↓<br />
<br />
echo $this->BcForm->input('MailContent.sender_1a', array(<br />
</pre><br />
<br />
<br />
※ baserCMS 3.0.15で確認、baserCMS4系はこちらのサーバで動作しないので未確認。<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2018-02-22T05:56:56Z
<p>183.76.75.203: /* さくらインターネット */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
<br />
=== basic認証が2回表示される ===<br />
htaccessファイルに以下を記載して回避できる。<br />
<br />
<pre><br />
<If "%{HTTP:X-SAKURA-FORWARDED-FOR} != ''"><br />
AuthType Basic<br />
AuthName "Input your ID and Password." <br />
AuthUserFile /your/password/path/.htpasswd<br />
require valid-user<br />
</If><br />
</pre><br />
<br />
- 参考: http://kayakuguri.github.io/blog/2017/10/10/sakura-ssl/<br />
<br />
<br />
<br />
=== SSLへリダイレクト出来ない場合(2018/02/22時点) ===<br />
<br />
X-Sakura-Forwarded-For変数で判別できないサーバはで.htaccessファイルに以下を記載することで対応可能です。<br />
<br />
<pre><br />
Allow from all<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1<br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
<br />
- 参考: https://help.sakura.ad.jp/hc/ja/articles/115000051662<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
=== メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える ===<br />
<br />
HTMLのラジオボタン生成時にIDの0が消えてしまって、JSの動作が正しく動いていない。<br />
保存される値には影響がないが見た目がおかしい。<br />
<br />
本来は<br />
<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender10" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
のようなHTMLが生成されるが、このサーバの場合は<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
と表示されてしまう(理由は不明)<br />
<br />
id="MailContentSender10" → id="MailContentSender1" のように0が消えてしまう。<br />
<br />
その為、テキストエリアのid="MailContentSender1" とかぶってしまうのが原因。<br />
<br />
==== 対応方法 ====<br />
<br />
・見た目だけなので、放置する<br />
<br />
・ソースを書き換え、ID重複がしないように変更する<br />
<br />
lib/Baser/Plugin/Mail/View/MailContents/admin/form.php を<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php へコピーする。(フォルダも作成)<br />
<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php を変更する<br />
<br />
22行目<br />
<pre><br />
$('input[name="data[MailContent][sender_1_]"]').click(mailContentSender1ClickHandler);<br />
<br />
↓<br />
<br />
$('input[name="data[MailContent][sender_1a]"]').click(mailContentSender1ClickHandler);<br />
</pre><br />
<br />
27行目<br />
<pre><br />
$("#MailContentSender1_1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1_0").attr('checked',true);<br />
<br />
↓<br />
<br />
$("#MailContentSender1a1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1a").attr('checked',true);<br />
</pre><br />
<br />
60行目<br />
<pre><br />
if($('input[name="data[MailContent][sender_1_]"]:checked').val() == '1'){<br />
<br />
↓<br />
<br />
if($('input[name="data[MailContent][sender_1a]"]:checked').val() == '1'){<br />
</pre><br />
<br />
135行目<br />
<pre><br />
echo $this->BcForm->input('MailContent.sender_1_', array(<br />
<br />
↓<br />
<br />
echo $this->BcForm->input('MailContent.sender_1a', array(<br />
</pre><br />
<br />
<br />
※ baserCMS 3.0.15で確認、baserCMS4系はこちらのサーバで動作しないので未確認。<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E8%A8%AD%E7%BD%AE%E3%81%97%E3%81%9F%E3%81%84
サブディレクトリに設置したい
2017-11-13T07:18:43Z
<p>183.76.75.203: 例のドメインが存在するドメインだったのでexample.comへ変更</p>
<hr />
<div>baserCMSを[サブディレクトリ](http://e-words.jp/w/E382B5E38396E38387E382A3E383ACE382AFE38388E383AA.html)にインストールできます。ただし、お使いのサーバー環境に依存する部分もあるため、下記の方法では上手くいかない場合もあります。<br />
<br />
##サブフォルダに必要ファイルをアップロードする<br />
公式サイトよりbaserCMSをダウンロードします。zipファイルになっていますので解凍してください。出てきたファイル群を、FTP等でインストールしたいサブディレクトリに設置します。今回は以下の場所に設置したものとします。<br />
http://example.com/sub_directory/<br />
<br />
<br />
##インストール画面を開く<br />
設置したURLにアクセスすると、本来ならインストール画面が表示されます。ただし、サブディレクトリへのインストールの場合、この段階で表示が崩れたりすることがあります。表示が崩れてしまうのは、必要なCSSファイルやJSファイルの場所を上手く特定できず、読み込めないからです。<br />
<br />
この場合、CSSやJSファイルを読み込めるようにする方法の1つとして、.htaccess等を編集するものがあります。ただし、編集内容は環境によって異なる場合があります(下記情報は、さくらインターネットのレンタルサーバーで動作の確認を行いました)。<br />
<br />
<br />
##「.htaccess」を編集する<br />
編集が必要な.htaccessファイルは以下の2つです。<br />
(baserCMSの設置フォルダ)/.htaccess<br />
(baserCMSの設置フォルダ)/app/webroot/.htaccess<br />
<br />
###(baserCMSの設置フォルダ)/.htaccess<br />
テキストエディタで中身を開き、以下の2行を追加します。<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /sub_directory<br />
</pre><br />
<br />
###(baserCMSの設置フォルダ)/app/webroot/.htaccess<br />
テキストエディタで中身を開き、元々ある記述のしたに追記を行います。最終的に以下のような感じになるはずです。<br />
<pre><br />
Allow from all<br />
<br />
RewriteEngine on<br />
RewriteBase /sub_directory/app/webroot<br />
</pre><br />
<br />
これで、もう一度インストール画面を表示してみます。うまく画面が表示されていれば、そのままインストールを進める事ができるはずです。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/isBlogSingle
ver4/関数リファレンス/isBlogSingle
2017-10-30T13:18:43Z
<p>183.76.75.203: </p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
## 説明<br />
個別ページ判定<br />
<br />
<br />
## 使い方<br />
<syntaxhighlight lang="php"><br />
$this->BcBaser->isBlogSingle();<br />
</syntaxhighlight><br />
<br />
## パラメータ<br />
<br />
<br />
## 戻り値<br />
(boolean) 現在のページが個別ページであれば true を返す<br />
<br />
## 用例<br />
### 基本<br />
####コード<br />
<syntaxhighlight lang="php"><br />
<br />
</syntaxhighlight><br />
<br />
####出力<br />
<br />
<br />
### 応用<br />
####コード<br />
<br />
<br />
####出力<br />
<br />
<br />
## 注<br />
<br />
## 変更履歴<br />
<br />
## ソースファイル<br />
<br />
## 関連資料<br />
<br />
##類似の関数<br />
<br />
<br />
[[Category:関数リファレンスver4]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-10-27T04:43:49Z
<p>183.76.75.203: /* 対応方法 */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
=== メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える ===<br />
<br />
HTMLのラジオボタン生成時にIDの0が消えてしまって、JSの動作が正しく動いていない。<br />
保存される値には影響がないが見た目がおかしい。<br />
<br />
本来は<br />
<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender10" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
のようなHTMLが生成されるが、このサーバの場合は<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
と表示されてしまう(理由は不明)<br />
<br />
id="MailContentSender10" → id="MailContentSender1" のように0が消えてしまう。<br />
<br />
その為、テキストエリアのid="MailContentSender1" とかぶってしまうのが原因。<br />
<br />
==== 対応方法 ====<br />
<br />
・見た目だけなので、放置する<br />
<br />
・ソースを書き換え、ID重複がしないように変更する<br />
<br />
lib/Baser/Plugin/Mail/View/MailContents/admin/form.php を<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php へコピーする。(フォルダも作成)<br />
<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php を変更する<br />
<br />
22行目<br />
<pre><br />
$('input[name="data[MailContent][sender_1_]"]').click(mailContentSender1ClickHandler);<br />
<br />
↓<br />
<br />
$('input[name="data[MailContent][sender_1a]"]').click(mailContentSender1ClickHandler);<br />
</pre><br />
<br />
27行目<br />
<pre><br />
$("#MailContentSender1_1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1_0").attr('checked',true);<br />
<br />
↓<br />
<br />
$("#MailContentSender1a1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1a").attr('checked',true);<br />
</pre><br />
<br />
60行目<br />
<pre><br />
if($('input[name="data[MailContent][sender_1_]"]:checked').val() == '1'){<br />
<br />
↓<br />
<br />
if($('input[name="data[MailContent][sender_1a]"]:checked').val() == '1'){<br />
</pre><br />
<br />
135行目<br />
<pre><br />
echo $this->BcForm->input('MailContent.sender_1_', array(<br />
<br />
↓<br />
<br />
echo $this->BcForm->input('MailContent.sender_1a', array(<br />
</pre><br />
<br />
<br />
※ baserCMS 3.0.15で確認、baserCMS4系はこちらのサーバで動作しないので未確認。<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-10-27T04:41:00Z
<p>183.76.75.203: /* メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
=== メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える ===<br />
<br />
HTMLのラジオボタン生成時にIDの0が消えてしまって、JSの動作が正しく動いていない。<br />
保存される値には影響がないが見た目がおかしい。<br />
<br />
本来は<br />
<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender10" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
のようなHTMLが生成されるが、このサーバの場合は<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
と表示されてしまう(理由は不明)<br />
<br />
id="MailContentSender10" → id="MailContentSender1" のように0が消えてしまう。<br />
<br />
その為、テキストエリアのid="MailContentSender1" とかぶってしまうのが原因。<br />
<br />
==== 対応方法 ====<br />
<br />
・見た目だけなので、放置する<br />
<br />
・ソースを書き換え、ID重複がしないように変更する<br />
<br />
lib/Baser/Plugin/Mail/View/MailContents/admin/form.php を<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php へコピーする。(フォルダも作成)<br />
<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php を変更する<br />
<br />
22行目<br />
<pre><br />
$('input[name="data[MailContent][sender_1_]"]').click(mailContentSender1ClickHandler);<br />
<br />
↓<br />
<br />
$('input[name="data[MailContent][sender_1a]"]').click(mailContentSender1ClickHandler);<br />
</pre><br />
<br />
27行目<br />
<pre><br />
$("#MailContentSender1_1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1_0").attr('checked',true);<br />
<br />
↓<br />
<br />
$("#MailContentSender1a1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1a").attr('checked',true);<br />
</pre><br />
<br />
60行目<br />
<pre><br />
if($('input[name="data[MailContent][sender_1_]"]:checked').val() == '1'){<br />
<br />
↓<br />
<br />
if($('input[name="data[MailContent][sender_1a]"]:checked').val() == '1'){<br />
</pre><br />
<br />
135行目<br />
<pre><br />
echo $this->BcForm->input('MailContent.sender_1_', array(<br />
<br />
↓<br />
<br />
echo $this->BcForm->input('MailContent.sender_1a', array(<br />
<pre><br />
<br />
<br />
※ baserCMS 3.0.15で確認、baserCMS4系はこちらのサーバで動作しないので未確認。<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-10-27T04:40:18Z
<p>183.76.75.203: </p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
=== メールフォーム設定画面 送信先メールアドレス のラジオボタンが消える ===<br />
<br />
HTMLのラジオボタン生成時にIDの0が消えてしまって、JSの動作が正しく動いていない。<br />
保存される値には影響がないが見た目がおかしい。<br />
<br />
本来は<br />
<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender10" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
のようなHTMLが生成されるが、このサーバの場合は<br />
<pre><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1_" value="" class="firstChild empty" type="hidden"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender1" value="0" class="firstChild lastChild empty" checked="checked" type="radio"><br />
<input name="data[MailContent][sender_1_]" id="MailContentSender11" value="1" class="firstChild lastChild empty" type="radio"><br />
<br />
<input name="data[MailContent][sender_1]" size="40" maxlength="255" value="" id="MailContentSender1" class="lastChild empty" style="display: inline;" type="text"><br />
</pre><br />
<br />
と表示されてしまう(理由は不明)<br />
id="MailContentSender10" → id="MailContentSender1" のように0が消えてしまう。<br />
その為、テキストエリアのid="MailContentSender1" とかぶってしまうのが原因。<br />
<br />
==== 対応方法 ====<br />
<br />
・見た目だけなので、放置する<br />
<br />
・ソースを書き換え、ID重複がしないように変更する<br />
<br />
lib/Baser/Plugin/Mail/View/MailContents/admin/form.php を<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php へコピーする。(フォルダも作成)<br />
<br />
app/webroot/theme/(テーマ名)/MailContents/admin/form.php を変更する<br />
<br />
22行目<br />
<pre><br />
$('input[name="data[MailContent][sender_1_]"]').click(mailContentSender1ClickHandler);<br />
<br />
↓<br />
<br />
$('input[name="data[MailContent][sender_1a]"]').click(mailContentSender1ClickHandler);<br />
</pre><br />
<br />
27行目<br />
<pre><br />
$("#MailContentSender1_1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1_0").attr('checked',true);<br />
<br />
↓<br />
<br />
$("#MailContentSender1a1").attr('checked',true);<br />
}else{<br />
$("#MailContentSender1a").attr('checked',true);<br />
</pre><br />
<br />
60行目<br />
<pre><br />
if($('input[name="data[MailContent][sender_1_]"]:checked').val() == '1'){<br />
<br />
↓<br />
<br />
if($('input[name="data[MailContent][sender_1a]"]:checked').val() == '1'){<br />
</pre><br />
<br />
135行目<br />
<pre><br />
echo $this->BcForm->input('MailContent.sender_1_', array(<br />
<br />
↓<br />
<br />
echo $this->BcForm->input('MailContent.sender_1a', array(<br />
<pre><br />
<br />
<br />
※ baserCMS 3.0.15で確認、baserCMS4系はこちらのサーバで動作しないので未確認。<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0
ver4/データベースチューニング
2017-08-08T10:23:07Z
<p>183.76.75.203: </p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
データベースチューニングについて。<br />
<br />
## インデックス<br />
[http://flagsystem.co.jp/news/archives/32 参考]<br><br />
table prefixは適宜読み替える事<br />
<br />
### PostgreSQL<br />
CREATE INDEX blog_category_id_idx ON mysite_blog_posts(blog_category_id) ; <br /><br />
CREATE INDEX blog_content_id_idx ON mysite_blog_posts(blog_content_id) ;<br /><br />
CREATE INDEX user_id_idx ON mysite_blog_posts(user_id) ;<br /><br />
CREATE INDEX blog_posts_no_idx ON mysite_blog_posts(no) ;<br /><br />
<br />
<br />
それからブログとタグをひもづけてるmysite_blog_posts_blog_tags 。<br /><br />
タグを使う場合こいつは臭い。この辺、INDEX貼ればかなり変わりそう。<br /><br />
<br />
CREATE INDEX blog_post_id_idx ON mysite_blog_posts_blog_tags(blog_post_id) ;<br /><br />
CREATE INDEX blog_tag_id ON mysite_blog_posts_blog_tags(blog_tag_id) ;<br /><br />
<br />
<br />
<br />
<br />
あとはコメントのテーブル。mysite_blog_comments <br /><br />
もしサイトが炎上してコメント1000も2000も行った場合はここも負荷になるのでINDEX貼っときましょう。<br /><br />
<br />
CREATE INDEX blog_comments_content_id_idx ON mysite_blog_comments(blog_content_id) ;<br /><br />
CREATE INDEX blog_comments_post_id_idx ON mysite_blog_comments(blog_post_id) ;<br /><br />
CREATE INDEX blog_comments_no_idx ON mysite_blog_comments(no) ;<br /><br />
<br />
<br />
### MySQL<br />
<br />
ALTER TABLE mysite_blog_posts ADD INDEX blog_category_id_idx(blog_category_id) ;<br /><br />
ALTER TABLE mysite_blog_posts ADD INDEX blog_content_id_idx(blog_content_id) ;<br /><br />
ALTER TABLE mysite_blog_posts ADD INDEX user_id_idx(user_id) ;<br /><br />
ALTER TABLE mysite_blog_posts ADD INDEX blog_posts_no_idx(no) ;<br /><br />
<br />
ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_post_id_idx(blog_post_id) ;<br /><br />
ALTER TABLE mysite_blog_posts_blog_tags ADD INDEX blog_tag_id(blog_tag_id) ;<br /><br />
<br />
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_content_id_idx(blog_content_id) ;<br /><br />
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_post_id_idx(blog_post_id) ;<br /><br />
ALTER TABLE mysite_blog_comments ADD INDEX blog_comments_no_idx(no) ;<br /></div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-04-14T03:10:12Z
<p>183.76.75.203: /* スマートURL ON にならない */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-04-14T03:09:49Z
<p>183.76.75.203: /* スマートURL ON にならない */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
</pre><br />
<br />
<br />
参考: http://acesr.document.secure.ne.jp/other/tips-htaccess/<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-04-07T06:38:43Z
<p>183.76.75.203: /* 管理側SSLを有効化するとリダイレクトループが起きる */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。<br />
<br />
https://www.example.com/ の場合、 HTTP_HOST example.com となる。<br />
<br />
通常だったら HTTP_HOST www.example.com になるはず。<br />
<br />
そこで、対応方法としては<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
<br />
* baserCMS3系の場合<br />
<br />
上記の対応のみでOK<br />
<br />
* baserCMS4系の場合<br />
<br />
コアの処理で管理画面の場合にadminSslの値と関係なく<br />
リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。<br />
<br />
lib/Baser/Controller/BcAppController.php 260行あたり<br />
<br />
<br />
<pre><br />
<br />
public function beforeFilter() {<br />
parent::beforeFilter();<br />
<br />
$isRequestView = $this->request->is('requestview');<br />
$isUpdate = $this->request->is('update');<br />
$isAdmin = $this->request->is('admin');<br />
$isInstall = $this->request->is('install');<br />
$isMaintenance = $this->request->is('maintenance');<br />
<br />
// CUSTOMIZE DELETE 2017/04/07<br />
// ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)<br />
// さくらの共有サーバーでSNIを使ってSSLを導入の場合、<br />
// https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。<br />
// 通常のサーバではHTTP_HOST = www.example.com がセットされている。<br />
// >>><br />
// // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト<br />
// if($isAdmin) {<br />
// if($this->request->is('ssl')) {<br />
// $siteUrl = Configure::read('BcEnv.sslUrl');<br />
// } else {<br />
// $siteUrl = Configure::read('BcEnv.siteUrl'); <br />
// }<br />
// if($siteUrl && siteUrl() != $siteUrl) {<br />
// $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));<br />
// }<br />
// }<br />
// <<<<br />
<br />
// メンテナンス<br />
if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {<br />
if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {<br />
return;<br />
} else {<br />
$redirectUrl = '/maintenance';<br />
if ($this->request->params['Site']['alias']) {<br />
$redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;<br />
}<br />
$this->redirect($redirectUrl);<br />
}<br />
}<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-03-07T06:51:50Z
<p>183.76.75.203: /* 管理側SSLを有効化するとリダイレクトループが起きる */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
SNI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%AF%8E%E3%81%AE%E8%A8%AD%E5%AE%9A
レンタルサーバー毎の設定
2017-03-07T06:51:10Z
<p>183.76.75.203: /* さくらインターネット */</p>
<hr />
<div><metadesc>baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。</metadesc><br />
<br />
baserCMSをインストールしたサーバーによっては、いくつかの作業を行なっておいたほうが、安定して運用できる場合があります。<br />
<br />
== ロリポップ! ==<br />
=== WAFの無効化 ===<br />
ロリポップが持っている機能で、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はロリポップ!の公式マニュアル「[http://lolipop.jp/manual/user/waf-set/ WAFの設定・解除]」をご覧ください。<br />
<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ロリポップの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://lolipop.jp/manual/user/php-setting/#p-php-ini PHPの設定]」をご覧ください。<br />
<br />
<br />
<br />
== ヘテムル ==<br />
<br />
=== WAFの一部除外 ===<br />
<br />
ブログ記事保存時にWAFが影響して保存できない場合は、一部除外で対応できます。(baserCMS 3.0.8にて確認)<br />
<br />
参考:http://heteml.jp/support/manual/waf/#htaccess<br />
<br />
.htaccess へ以下を追記してください。<br />
<br />
<pre><br />
# and/or,</><br />
SiteGuard_User_ExcludeSig sqlinj-22<br />
# select...from...<br />
SiteGuard_User_ExcludeSig sqlinj-1<br />
# or...=, and...=<br />
SiteGuard_User_ExcludeSig sqlinj-9<br />
# or...--, and...--<br />
SiteGuard_User_ExcludeSig sqlinj-10<br />
# in<br />
SiteGuard_User_ExcludeSig sqlinj-21<br />
# group by ... having 1=1<br />
SiteGuard_User_ExcludeSig sqlinj-103<br />
# order by <br />
SiteGuard_User_ExcludeSig sqlinj-8<br />
# '--<br />
SiteGuard_User_ExcludeSig sqlinj-13<br />
</pre><br />
<br />
<br />
BurgerEditorの場合、ブログのプレビューなどが該当する(baserCMS3.0.9)<br />
<pre><br />
# イベントハンドラ追加43(onchange=...)<br />
SiteGuard_User_ExcludeSig xss-onX-43<br />
</pre><br />
<br />
=== WAFの無効化 ===<br />
ヘテムルもロリポップと同様に、WAF(ウェブ・アプリケーション・ファイアーウォール)を無効化します。標準では有効になっていますが、baserCMSではルーティング等に影響があるようです。実際の作業の仕方はヘテムルの公式マニュアル「[http://heteml.jp/support/manual/waf/ WAFの設定方法]」をご覧ください。<br />
=== mbstring.internal_encodingの設定 ===<br />
ページ管理、ブログ管理等で使用するWYSIWYGエディタが正常に表示されない場合、ヘテムルの管理画面から「php.ini」の設定を行います。<br />
<br />
設定画面に入ると、沢山の設定項目が出てきますが、その中で「mbstring.internal_encoding」の項目を、「未設定」から「UTF-8」に変更してください。この設定を行うことで、サーバーが内部処理につかう文字コードが、baserCMSが使用する文字コード「UTF-8」になり、不具合が解消されます。<br />
<br />
具体的な作業方法は、公式サイト「[http://heteml.jp/support/manual/phpini/ php.iniのご利用方法]」をご覧ください。<br />
<br />
<br />
<br />
== さくらインターネット ==<br />
<br />
===ドキュメントルート直下にインストールする場合 ===<br />
<br />
インストール画面がエラーになる場合、<br />
<br />
.htaccess<br /><br />
/app/webroot/.htaccess<br /><br />
<br />
に<br />
<br />
RewriteEngine On<br /><br />
RewriteBase / ← この行<br /><br />
<br />
を追加する必要があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
<br />
=== 管理側SSLを有効化するとリダイレクトループが起きる ===<br />
<br />
- htaccess で調整する。<br />
- install.php の adminSsl は false のままで利用する。<br />
<br />
<pre><br />
Configure::write('BcApp.adminSsl', false);<br />
</pre><br />
<br />
<pre><br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$<br />
RewriteRule ^(.*)$ https://YOUR_DOMAIN/$1 [R=301,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
NSI利用の場合は下記でうまくいきました。<br />
<pre><br />
RewriteCond %{ENV:HTTPS} !^on$<br />
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br />
</pre><br />
<br />
=== メールアドレスでエラー ===<br />
指定したメールアドレスが送信できない場合、STEP4でエラーになる。<br />
<br />
さくらレンタルサーバから送信可能なアドレスを指定してインストールしてください。<br />
<br />
== CPIサーバ ==<br />
<br />
http://qiita.com/materializing/items/4aefd8f024bb1b2bb5af も参考になります。<br />
<br />
<br />
=== 管理側だけWAF無効化する ===<br />
<br />
WAFの影響で記事更新できないときには以下で対策取ることができる。<br />
<br />
- 管理側URLと同じ配置でディレクトリ作る: http://example.com/admin の場合、/admin/ でディレクトリ作る<br />
- 中に index.php と .htaccess 置く<br />
<br />
■ /admin/index.php<br />
<br />
<pre><br />
<?php<br />
header('Location: /admin/dashboard/index');<br />
exit;<br />
</pre><br />
<br />
■ /admin/.htaccess<br />
<br />
<pre><br />
<IfModule siteguard_module><br />
SiteGuard_User_ExcludeSig all<br />
</IfModule><br />
</pre><br />
<br />
<br />
=== スマートURL ON にならない ===<br />
<br />
CPIサーバでRewriteを有効にするには .htaccess に Options +FollowSymLinks を追記する必要がある。<br />
(Options +FollowSymLinks の記載がないと Internal server error)<br />
<br />
参考: http://ameblo.jp/huangke/entry-10429548096.html<br />
<br />
<br />
CPIサーバ(マネージドプラン、CHMシリーズ)などは記述する内容が変更になったようです。<br />
FollowSymLinksの記述だとInternal server errorになりました。<br />
<br />
参考: http://chmz.document.secure.jp/other/Tips-htaccess/<br />
<br />
<pre><br />
Options +FollowSymLinks<br />
↓<br />
Options +SymLinksIfOwnerMatch<br />
</pre><br />
<br />
例2)<br />
<pre><br />
Options +SymLinksIfOwnerMatch -MultiViews<br />
</pre><br />
<br />
==== 追記 ====<br />
<br />
セキュリティ強化のためか、<br />
(baserCMS設置フォルダ)/index.phpファイルのパーミッションが<br />
書き込み許可( -wr-wr-wr- / chmod 666)になったまま、<br />
.htaccessへ Options +SymLinksIfOwnerMatchを記述して<br />
RewriteEngine on にすると、Internal server error になるようでした。<br />
<br />
FileZilla や SSHでログインして chmod 644 など、<br />
ファイル所有者以外書き込みできないようにしておいてください。<br />
<br />
<pre><br />
×: -wr-wr-wr- 666<br />
○: -wr-r--r-- 644<br />
</pre><br />
<br />
=== POST時に文字化けする ===<br />
<br />
CPIサーバは mbstring.encoding_translation = On のようで、ブログ記事保存時に文字化けする。<br />
(何故か固定ページは化けないようですが…) 対応方法としては php.ini で各設定して対応します。<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5103<br />
<br />
<pre><br />
テキストエディタで「php.ini」としたファイルを作成し、<Ctrl+V>でペースト。<br />
次に、以下の設定を変更します。<br />
<br />
mbstring.internal_encoding = EUC-JP<br />
を<br />
mbstring.internal_encoding = utf-8<br />
と変更<br />
<br />
mbstring.encoding_translation = On<br />
とあるので、これを<br />
mbstring.encoding_translation = Off<br />
に変更<br />
<br />
作成したら、/usr/home/ユーザー名/ にFTPで設置。<br />
階層的に、「html」と同列に来るようにします。この位置は、ブラウザからは参照できない位置となります。<br />
<br />
.htaccess作成、設置<br />
<br />
次に、CPIでPHPを使うには、.htaccess ファイルが必要なので作成します。<br />
以下内容を記述。<br />
<br />
AddHandler x-httpd-php559 .php #←★php5.5.9を使う宣言<br />
suPHP_ConfigPath /usr/home/ユーザー名 #←★php.iniのパスを記述<br />
<br />
1行目の内容は、コントロールパネル、「サポート」タブ → オンラインヘルプ →「PHPについて」を参照の事。<br />
2行目には、先ほどFTPアップロードした php.ini までのパスを記述します。<br />
</pre><br />
<br />
http://raining.bear-life.com/cpi/cpi%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7post%E3%81%AE%E5%80%A4%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95<br />
<br />
=== .htaccess でのSSL対応が有効にならない ===<br />
<br />
CPIサーバでは RewriteCond %{HTTPS} なんとか が有効にならないため、ポート番号で判別する<br />
<br />
RewriteCond %{SERVER_PORT} ^80$<br />
<br />
参考: http://wataame.sumomo.ne.jp/archives/5121<br />
<br />
サンプル<br />
<pre><br />
Options +FollowSymLinks<br />
suPHP_ConfigPath /usr/home/XXXXXX/conf/<br />
<br />
RewriteEngine on<br />
RewriteBase /<br />
<br />
#RewriteCond %{HTTPS} off<br />
RewriteCond %{SERVER_PORT} ^80$<br />
RewriteCond %{REQUEST_URI} ^(/inquiry|/admin).*$<br />
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^(.*)$ index.php [QSA,L]<br />
</pre><br />
<br />
<br />
=== PHPバージョン切り替え (CPI オンラインヘルプより) ===<br />
<br />
参考: http://chmz.document.secure.jp/tools/php/<br />
<br />
<pre><br />
PHP 5.4.39 の場合 AddHandler x-httpd-php5439 .php<br />
PHP 5.5.23 の場合 AddHandler x-httpd-php5523 .php<br />
PHP 5.6.7 の場合 AddHandler x-httpd-php567 .php<br />
</pre><br />
<br />
<br />
== ラピッドサイトVPS ==<br />
<br />
=== ControlPanelヘアクセス出来ない時の対応 ===<br />
<br />
ラピッドサイトのVPS( http://www.rapidsite.jp/ )にて<br />
メインドメインのドキュメントルートへbaserCMSやWordpressなど<br />
リライトを使ったサイトを設置すると、ラピッドサイトの<br />
ControlPanel( http://ドメイン名/ControlPanel/ )へアクセスできなくなってしまいます。<br />
<br />
http://www.rapidsite.jp/support/guide_migration/userguide/start_up/e_11326.html<br />
<br />
==== 原因 ====<br />
<br />
.htaccessへ記載されたリライトの内容の方が有効になってしまい、not foundになってしまうようです。<br />
<br />
==== 対応方法 ====<br />
<br />
1. ドキュメントルート直下に ControlPanel という名前の空のフォルダを設置<br />
2. ControlPanelフォルダ内に .htaccessファイルを作成、RewriteEngine Off を記述<br />
<br />
これで、 http://ドメイン名/ControlPanel/ で元通りアクセスできるようになります。<br />
<br />
※ 参考サイト<br />
<br />
http://tetch1987.com/shittakabull/web/rapidsite-vps-install-wordpress-and-eccube#title8<br />
<br />
<pre><br />
6.ControlPanelへログインできるようにする<br />
<br />
「http://ドメイン名/ControlPanel」にアクセスしてもWordpressのテーマが表示されてしまうので修正する<br />
<br />
「http://ドメイン名/」に「ControlPanel」のフォルダをアップロード<br />
「http://ドメイン名/ControlPanel/」に「.htaccess」を作成し下記を記入。<br />
<br />
RewriteEngine Off<br />
</pre><br />
<br />
== WebArena ==<br />
<br />
=== BurgerEditor内のCKEditorが動作しない場合の対応 ===<br />
<br />
下記の実ファイルがないと、BurgerEditor内のCKEditorが動作しなかった。<br />
実ファイルを設置すると動作するようになりました。<br />
<br />
(BurgerEditor自体は正常に動作していました)<br />
<br />
/home/burger_editor/js/ckeditor/adapters/jquery.js<br />
<br />
<br />
== アルファメールプレミア ==<br />
<br />
=== インストール後にテーマのCSS、JSが有効にならない場合の対応 ===<br />
<br />
==== 原因 ====<br />
<br />
<pre><br />
app/.htaccess<br />
app/webroot/.htaccess<br />
</pre><br />
<br />
の2つのファイルに、アクセス制限の記述(Order allow,deny等)が初期状態で記載していますが、<br />
このアクセス制限の記述が許可されていないサーバだった為、<br />
CSSやJS,imgへアクセスすると500 internal server error となっていました。<br />
<br />
※インストール画面では、インストールプログラムにて直接CSS,JS,imgを読み込んでいるので、<br />
正常表示されるが、インストール完了直前からはテーマ内のcss,js,imgを読み込む為、<br />
インストール画面では正常に表示されていたが、インストール完了前後で表示が崩れていました。<br />
<br />
==== 対応方法 ====<br />
<br />
apacheの設定を変更するか、変更できない場合は、<br />
下記のファイル内のアクセス制限の記述をコメントして対応します。<br />
<br />
app/.htaccess<br />
<br />
<pre><br />
#Order allow,deny<br />
#Deny from all<br />
</pre><br />
<br />
app/webroot/.htaccess<br />
<br />
<pre><br />
#Allow from all<br />
</pre><br />
<br />
以上です<br />
<br />
=== メールのバリデーションがおかしい時の対応 ===<br />
<br />
追記: http://qiita.com/materializing/items/4f95585166f983f11042 も参考になります。<br />
<br />
PCREのバージョンが低く、Emailのチェック(正規表現)がうまく動作しない状態の時がある。<br />
<br />
※ 具体的には、大塚商会アルファメールプレミアで起きました。<br />
<br />
その為、フォームのメールのチェックやメール送信で、正しいメールアドレスでもエラー扱いになる。<br />
また、インストール時のユーザー作成時に正しいメールでもエラー扱いになってしまい、管理者ユーザーが生成されていない状態になる。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions)<br />
PCRE Library Version 6.6 06-Feb-2006<br />
</pre><br />
<br />
※ baserCMSで使用しているCakePHPのバージョンアップによりbaserCMS 3.0.1 以降で上記症状が起きる状態です。<br />
<br />
上記バージョンの場合、正規表現で\p{L}などが使えない状態。<br />
<br />
<pre><br />
PCRE (Perl Compatible Regular Expressions) Support enabled<br />
PCRE Library Version 8.32 2012-11-30<br />
</pre><br />
<br />
とかだと、問題ないようです。<br />
<br />
==== 対応方法 ====<br />
<br />
lib/Cake/Utility/Validation.php を app/Utility/Validation.php へコピーして<br />
<br />
app/Utility/Validation.php の 45行目〜46行目辺りを<br />
<br />
<pre><br />
//'hostname' => '(?:[_\p{L}0-9][-_\p{L}0-9]*\.)*(?:[\p{L}0-9][-\p{L}0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
↓<br />
'hostname' => '(?:[_a-z0-9][-_a-z0-9]*\.)*(?:[a-z0-9][-a-z0-9]{0,62})\.(?:(?:[a-z]{2}\.)?[a-z]{2,})'<br />
</pre><br />
<br />
<br />
のように変更、<br />
462行目〜463行目辺りを<br />
<br />
<pre><br />
//$regex = '/^[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/ui';<br />
↓<br />
$regex = '/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@' . self::$_pattern['hostname'] . '$/i';<br />
</pre><br />
<br />
のように変更します。<br />
<br />
※ baserCMS 3.0.5 以降ではCakePHPのバージョンアップにより、上記対応に加えて、以下の対応も必要です。<br />
<br />
lib/Cake/Network/Email/CakeEmail.php を app/Network/Email/CakeEmail.php へコピーして<br />
<br />
app/Network/Email/CakeEmail.php を下記のように変更します。<br />
<br />
<pre><br />
protected $_emailPattern = '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui';<br />
↓<br />
protected $_emailPattern = null;<br />
</pre><br />
<br />
と変更してください。<br />
<br />
参考: http://php.net/manual/ja/reference.pcre.pattern.syntax.php#75339<br />
<br />
参考: http://phpexcel.codeplex.com/discussions/238547<br />
<br />
<br />
## お名前.com<br />
<br />
### 共有SDサーバーでhtaccessを置いてbaserCMSが動かないとき<br />
<br />
<pre><br />
RewriteBase /<br />
</pre><br />
<br />
を追加すると良い。<br />
<br />
※追記:最近契約されたさくらサーバ(プラン不明)も同様の現象がありました。<br />
<br />
<br />
### 共有SDサーバーでアップロードできないファイル名<br />
<br />
* アンダースコア( _ ) : 2つまでならアップロード可能<br />
* ドット ( . ) : 1つまで。 2つ以上連続するとアップロードできない。<br />
* カンマ ( , ) : 8つ連続でカンマを付けてもアップロード可能でした。<br />
* ハイフン ( - ) : 8つ連続でハイフンを付けてもアップロード可能でした。<br />
* イコール ( = ) : ファイル名に付いているとアップロード不可。<br />
<br />
<br />
### 共有SDサーバーで固定ページの保存ができない<br />
<br />
固定ページの作成・編集を行おうとすると、タイムアウトが発生して保存できない現象が起きることがあります。ページ管理のバリデーション(PHP構文チェック)で足踏みしていることが原因のようです。ページ管理のModelファイル(/lib/Baser/Model/Page.php)をappフォルダの同階層にコピーし、問題のバリデーション箇所をコメントアウトすれば動作します。以下は同ファイルのバリデーション設定部分です。後半でコメントアウトを入れています。<br />
<pre><br />
public $validate = array(<br />
'name' => array(<br />
array('rule' => array('notEmpty'),<br />
'message' => 'ページ名を入力してください。',<br />
'required' => true),<br />
array('rule' => array('maxLength', 50),<br />
'message' => 'ページ名は50文字以内で入力してください。'),<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'page_category_id' => array(<br />
array('rule' => array('pageExists'),<br />
'message' => '指定したページは既に存在します。ファイル名、またはカテゴリを変更してください。')<br />
),<br />
'title' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => 'ページタイトルは255文字以内で入力してください。')<br />
),<br />
'description' => array(<br />
array('rule' => array('maxLength', 255),<br />
'message' => '説明文は255文字以内で入力してください。')<br />
),<br />
<br />
'contents' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '本稿欄に保存できるデータ量を超えています。')<br />
),<br />
'draft' => array(<br />
/* ここから<br />
array('rule' => array('phpValidSyntax'),<br />
'message' => 'PHPの構文エラーが発生しました。'),<br />
ここまで */<br />
array('rule' => array('maxByte', 64000),<br />
'message' => '草稿欄に保存できるデータ量を超えています。')<br />
),<br />
);<br />
</pre><br />
<br />
== Just-Size.Networks ==<br />
参考:マニュアル「[http://www.just-size.net/support/manual_cms_basercms.php BaserCMS]」<br />
<br />
=== PHPバージョン切り替え ===<br />
参考: http://www.just-size.net/support/manual_cgi_ssi_php.php#php<br />
<br />
<pre><br />
PHP 5.6.x の場合 AddHandler php5.6-script .php<br />
PHP 7.0.x の場合 AddHandler php7.0-script .php<br />
</pre><br />
<br />
[[Category:利用ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/Blog_postTitle
関数リファレンス/Blog postTitle
2016-09-20T08:41:50Z
<p>183.76.75.203: </p>
<hr />
<div>##説明<br />
ブログテンプレート内に記述することで、記事タイトルを出力します。<br />
##使い方<br />
<syntaxhighlight lang="php"><br />
<?php $this->Blog->postTitle($post, $link) ?><br />
</syntaxhighlight><br />
##パラメーター<br />
<dl><br />
<dt>$post</dt><br />
<dd><br />
ブログ記事のデータを指定します。ブログ記事を出力するループ内では「$post」と記述すれば動作します。<br />
</dd><br />
<br />
<dt>$link</dt><br />
<dd><br />
記事へのリンクの出力を指定します。<br />
*初期値 : true<br />
</dd><br />
</dl><br />
##戻り値<br />
<dl><br />
<dt>(string)</dt><br />
<dd>文字列を出力します。</dd><br />
</dl><br />
<br />
##用例<br />
###基本<br />
####コード<br />
<syntaxhighlight lang="php"><br />
<?php $this->Blog->postTitle($post, $link = true) ?><br />
</syntaxhighlight><br />
####出力<br />
<syntaxhighlight lang="html4strict"><br />
<a href="/news/archives/2">新商品を販売を開始しました。</a><br />
</syntaxhighlight><br />
<br />
###応用<br />
####コード<br />
<syntaxhighlight lang="php"><br />
<?php $this->Blog->postTitle($post, false); ?><br />
</syntaxhighlight><br />
####出力<br />
"新商品を販売を開始しました。" <br />
##注<br />
##変更履歴<br />
##ソースファイル<br />
##関連資料<br />
##擬似の関数<br />
[[Category:関数リファレンス]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9
ver4/関数リファレンス
2016-09-18T09:18:30Z
<p>183.76.75.203: </p>
<hr />
<div>baserCMSには、便利な関数がたくさん定義されています。baser関数と呼ばれる一部の関数は、特に baserCMS テーマ用に定義されているものになります。<br />
<!-- また、主にプラグインの開発に用いるイベントに関する関数もあります。 -->コアの baserCMS 関数の多くはプラグインやテーマ開発に役立ちます。ここでは、主にビュー側で利用するHelperのほとんどのコア関数を一覧にしています。ここにある情報に加え、 [baserCMS API Document サイト](http://api.basercms.net/) には、baserCMSの関数がすべて網羅されています。<br />
<br />
{{info|このページの完成度を高めるためにご協力ください!<br><br />
既にある関数ページに説明を書き込んだり、その関数に関する情報や使用例を記載してください。その際には\[サンプルページ](/ver4/関数リファレンス/sample) の形式を参考にしてください。<br>関数が不足している場合や、不適切なカテゴリーにある場合は、適切なカテゴリーに移動してください。また、誤字脱字に気付かれた場合は訂正してください。<br>みなさん、宜しくお願いします。}}<br />
<br />
## BcBaser($this->BcBaser)<br />
<br />
$this->BcBaser->関数名 で使える関数は、どこでも共通で利用できる関数です。<br />
<br />
- [addCrumb](/ver4/関数リファレンス/addCrumb) - パンくずリストの要素を追加する<br />
- [baseUrl](/ver4/関数リファレンス/baseUrl) - ベースとなるURLを出力する<br />
- [cacheHeader](/ver4/関数リファレンス/cacheHeader) - ブラウザにキャッシュさせる為のヘッダーを出力する<br />
- [changePrefixToAlias](/ver4/関数リファレンス/changePrefixToAlias) - URLをリンクとして利用可能なURLに変換する<br />
- [charset](/ver4/関数リファレンス/charset) - メタタグを出力する<br />
- [checkUpdate](/ver4/関数リファレンス/checkUpdate) - アップデート処理が必要かチェックする<br />
- [content](/ver4/関数リファレンス/content) - コンテンツ本体を出力する<br />
- [contentsName](/ver4/関数リファレンス/contentsName) - コンテンツを特定するIDを出力する<br />
- [contentsNavi](/ver4/関数リファレンス/contentsNavi) - コンテンツナビを出力する<br />
- [contentsTitle](/ver4/関数リファレンス/contentsTitle) - コンテンツのタイトルを出力する<br />
- [copyYear](/ver4/関数リファレンス/copyYear) - コピーライト用の年を出力する<br />
- [crumbs](/ver4/関数リファレンス/crumbs) - パンくずリストを出力する<br />
- [crumbsList](/ver4/関数リファレンス/crumbsList) - パンくずリストを出力する<br />
- [css](/ver4/関数リファレンス/css) - CSSの読み込みタグを出力する<br />
- [docType](/ver4/関数リファレンス/docType) - ドキュメントタイプを指定するタグを出力する<br />
- [editLink](/ver4/関数リファレンス/editLink) - 編集画面へのリンクを出力する<br />
- [element](/ver4/関数リファレンス/element) - エレメントテンプレートを出力する<br />
- [existsEditLink](/ver4/関数リファレンス/existsEditLink) - 編集画面へのリンクが存在するかチェックする<br />
- [existsPublishLink](/ver4/関数リファレンス/existsPublishLink) - 公開ページへのリンクが存在するかチェックする<br />
- [flash](/ver4/関数リファレンス/flash) - セッションに保存したメッセージを出力する<br />
- [footer](/ver4/関数リファレンス/footer) - フッターテンプレートを出力する<br />
- [func](/ver4/関数リファレンス/func) - ツールバーエレメントや CakePHP のデバッグ出力を表示<br />
- [getBaseUrl](/ver4/関数リファレンス/getBaseUrl) - ベースとなるURLを取得する<br />
- [getContentsName](/ver4/関数リファレンス/getContentsName) - コンテンツを特定するIDを取得する<br />
- [getContentsTitle](/ver4/関数リファレンス/getContentsTitle) - コンテンツタイトルを取得する<br />
- [getCrumbs](/ver4/関数リファレンス/getCrumbs) - パンくず用の配列を取得する<br />
- [getDescription](/ver4/関数リファレンス/getDescription) - meta タグ用のページ説明文を取得する<br />
- [getElement](/ver4/関数リファレンス/getElement) - エレメントテンプレートのレンダリング結果を取得する<br />
- [getHere](/ver4/関数リファレンス/getHere) - 現在のページの純粋なURLを取得する<br />
- [getImg](/ver4/関数リファレンス/getImg) - 画像タグを取得する<br />
- [getKeywords](/ver4/関数リファレンス/getKeywords) - meta タグ用のキーワードを取得する<br />
- [getLink](/ver4/関数リファレンス/getLink) - アンカータグを取得する<br />
- [getMenus](/ver4/関数リファレンス/getMenus) - メニューのデータを取得する<br />
- [getPageList](/ver4/関数リファレンス/getPageList) - ページ機能で作成したページの一覧データを取得する<br />
- [getRoot](/ver4/関数リファレンス/getRoot) - baserCMSが設置されているパスを取得する<br />
- [getThemeUrl](/ver4/関数リファレンス/getThemeUrl) - テーマのURLを取得する<br />
- [getTitle](/ver4/関数リファレンス/getTitle) - タイトルタグを取得する<br />
- [getUri](/ver4/関数リファレンス/getUri) - httpから始まるURLを取得する<br />
- [getUrl](/ver4/関数リファレンス/getUrl) - baserCMSの設置フォルダを考慮したURLを取得する<br />
- [getUserName](/ver4/関数リファレンス/getUserName) - ユーザー名を整形して表示する<br />
- [globalMenu](/ver4/関数リファレンス/globalMenu) - グローバルメニューを出力する<br />
- [googleAnalytics](/ver4/関数リファレンス/googleAnalytics) - Google Analytics のトラッキングコードを出力する<br />
- [googleMaps](/ver4/関数リファレンス/googleMaps) - Google Maps を出力する<br />
- [header](/ver4/関数リファレンス/header) - ヘッダーテンプレートを出力する<br />
- [icon](/ver4/関数リファレンス/icon) - アイコン(favicon)タグを出力する<br />
- [img](/ver4/関数リファレンス/img) - 画像読み込みタグを出力する<br />
- [includeCore](/ver4/関数リファレンス/includeCore) - コアテンプレートを読み込む<br />
- [isAdminUser](/ver4/関数リファレンス/isAdminUser) - 現在のログインユーザーが管理者グループかどうかチェックする<br />
- [isCategoryTop](/ver4/関数リファレンス/isCategoryTop) - 現在のページがページカテゴリのトップかどうかを判定する<br />
- [isCurrentUrl](/ver4/関数リファレンス/isCurrentUrl) - 指定したURLが現在のURLと同じかどうか判定する<br />
- [isHome](/ver4/関数リファレンス/isHome) - 現在のページがトップページかどうかを判定する<br />
- [isPage](/ver4/関数リファレンス/isPage) - 現在のページが固定ページかどうかを判定する<br />
- [isSSL](/ver4/関数リファレンス/isSSL) - SSL通信かどうか判定する<br />
- <strike>[isTop](/ver4/関数リファレンス/isTop) - トップページかどうか判断する</strike>(非推奨)<br />
- [js](/ver4/関数リファレンス/js) - javascriptの読み込みタグを出力する<br />
- [link](/ver4/関数リファレンス/link) - アンカータグを出力する<br />
- [listNum](/ver4/関数リファレンス/listNum) - 表示件数設定機能を出力する<br />
- [logo](/ver4/関数リファレンス/logo) - ロゴを出力する<br />
- [mainImage](/ver4/関数リファレンス/mainImage) - メインイメージを出力する<br />
- [mark](/ver4/関数リファレンス/mark) - 文字列を検索しマークとしてタグをつける<br />
- [metaDescription](/ver4/関数リファレンス/metaDescription) - ページ説明文用のメタタグを出力する<br />
- [metaKeywords](/ver4/関数リファレンス/metaKeywords) - キーワード用のメタタグを出力する<br />
- [page](/ver4/関数リファレンス/page) - ページをエレメントとして読み込む<br />
- [pagination](/ver4/関数リファレンス/pagination) - ページネーションを出力する<br />
- [publishLink](/ver4/関数リファレンス/publishLink) - 公開ページへのリンクを出力する<br />
- [root](/ver4/関数リファレンス/root) - baserCMSが設置されているパスを出力する<br />
- [rss](/ver4/関数リファレンス/rss) - RSSフィードのリンクタグを出力する<br />
- [scripts](/ver4/関数リファレンス/scripts) - コンテンツ内で設定した CSS や javascript をレイアウトテンプレートに出力し、ログイン中の場合、ツールバー用のCSSも出力する<br />
- [set](/ver4/関数リファレンス/set) - レイアウトで利用する為の変数を設定する<br />
- [setCategoryTitle](/ver4/関数リファレンス/setCategoryTitle) - タイトルへのカテゴリタイトルの出力有無を設定する<br />
- [setDescription](/ver4/関数リファレンス/setDescription) - meta タグの説明文を設定する<br />
- [setKeywords](/ver4/関数リファレンス/setKeywords) - meta タグのキーワードを設定する<br />
- [setPageEditLink](/ver4/関数リファレンス/setPageEditLink) - 編集画面へのリンクを設定する<br />
- [setSubMenus](/ver4/関数リファレンス/setSubMenus) - サブメニューを設定する(管理画面用)<br />
- [setTitle](/ver4/関数リファレンス/setTitle) - タイトルを設定する<br />
- [siteSearchForm](/ver4/関数リファレンス/siteSearchForm) - サイト内検索フォームを出力<br />
- [sitemap](/ver4/関数リファレンス/sitemap) - サイトマップを出力する<br />
- [subMenu](/ver4/関数リファレンス/subMenu) - サブメニューを出力する<br />
- [swf](/ver4/関数リファレンス/swf) - Flashを表示する<br />
- [themeUrl](/ver4/関数リファレンス/themeUrl) - テーマのURLを出力する<br />
- [title](/ver4/関数リファレンス/title) - タイトルタグを出力する<br />
- [updateMessage](/ver4/関数リファレンス/updateMessage) - アップデート用のメッセージを出力する<br />
- [url](/ver4/関数リファレンス/url) - baserCMSの設置フォルダを考慮したURLを出力する<br />
- [widgetArea](/ver4/関数リファレンス/widgetArea) - ウィジェットエリアを出力する<br />
- [xmlHeader](/ver4/関数リファレンス/xmlHeader) - XMLヘッダタグを出力する<br />
<br />
<br />
## 固定ページ($this->BcPage)<br />
<br />
$this->BcPage->関数名 で使える関数は、固定ページで利用できる関数です。<br />
<br />
- [allowPublish](/ver4/関数リファレンス/allowPublish) - 公開状態を取得する<br />
- [beforeRender](/ver4/関数リファレンス/beforeRender) - beforeRender<br />
- [content](/ver4/関数リファレンス/BcPage/content) - 固定ページのコンテンツを出力する<br />
- [contentsNaviAvailable](/ver4/関数リファレンス/contentsNaviAvailable) - コンテンツナビ有効チェック<br />
- [getCategory](/ver4/関数リファレンス/getCategory) - 現在のページが所属するカテゴリデータを取得する<br />
- [getCategoryName](/ver4/関数リファレンス/getCategoryName) - カテゴリ名を取得する<br />
- [getPageList](/ver4/関数リファレンス/BcPage/getPageList) - ページリストを取得する<br />
- [getParentCategory](/ver4/関数リファレンス/getParentCategory) - 現在のページが所属する親のカテゴリを取得する<br />
- [getTemplates](/ver4/関数リファレンス/getTemplates) - テンプレートを取得<br />
- [getUrl](/ver4/関数リファレンス/BcPage/getUrl) - ページ機能用URLを取得する<br />
- [nextLink](/ver4/関数リファレンス/nextLink) - ページカテゴリ間の次の記事へのリンクを取得する<br />
- [prevLink](/ver4/関数リファレンス/prevLink) - ページカテゴリ間の前の記事へのリンクを取得する<br />
- [treeList](/ver4/関数リファレンス/treeList) - No Description ※TODO: メソッドに説明載ってない><;<br />
<br />
### BlogBaser($this->BcBaserで利用可)<br />
<br />
- [blogPosts](/ver4/関数リファレンス/blogPosts) - ブログ記事一覧出力<br />
- [isBlogCategory](/ver4/関数リファレンス/isBlogCategory) - カテゴリー別記事一覧ページ判定<br />
- [isBlogDate](/ver4/関数リファレンス/isBlogDate) - 日別記事一覧ページ判定<br />
- [isBlogHome](/ver4/関数リファレンス/isBlogHome) - インデックスページ判定<br />
- [isBlogMonth](/ver4/関数リファレンス/isBlogMonth) - 月別記事一覧ページ判定<br />
- [isBlogSingle](/ver4/関数リファレンス/isBlogSingle) - 個別ページ判定<br />
- [isBlogTag](/ver4/関数リファレンス/isBlogTag) - タグ別記事一覧ページ判定<br />
- [isBlogYear](/ver4/関数リファレンス/isBlogYear) - 年別記事一覧ページ判定<br />
<br />
<br />
<br />
## ブログ($this->Blog)<br />
<br />
$this->Blog->関数名 で使える関数は、ブログで利用できる関数です。<br />
<br />
- [allowPublish](/ver4/関数リファレンス/allowPublish) - 公開状態を取得する<br />
- [author](/ver4/関数リファレンス/author) - 記事の投稿者を出力する<br />
- [category](/ver4/関数リファレンス/category) - 記事が属するカテゴリ名を出力する<br />
- [description](/ver4/関数リファレンス/description) - ブログの説明文を出力する<br />
- [descriptionExists](/ver4/関数リファレンス/descriptionExists) - ブログの説明文が指定されているかどうかを判定する<br />
- <strike>[editPost](/ver4/関数リファレンス/editPost) - ブログ編集ページへのリンクを出力</strike>(非推奨)<br />
- [eyeCatch](/ver4/関数リファレンス/eyeCatch) - アイキャッチ画像を出力する<br />
- [getBlogArchiveType](/ver4/関数リファレンス/getBlogArchiveType) - ブログのアーカイブタイプを取得する<br />
- [getBlogTemplates](/ver4/関数リファレンス/getBlogTemplates) - ブログテンプレートを取得<br />
- [getCategory](/ver4/関数リファレンス/getCategory) - 記事が属するカテゴリ名の一覧を取得する<br />
- [getCategoryList](/ver4/関数リファレンス/getCategoryList) - カテゴリーの一覧をリストタグで取得する<br />
- [getCategoryUrl](/ver4/関数リファレンス/getCategoryUrl) - カテゴリ一覧へのURLを取得する<br />
- [getDescription](/ver4/関数リファレンス/getDescription) - ブログの説明文を取得する<br />
- [getEyeCatch](/ver4/関数リファレンス/getEyeCatch) - アイキャッチ画像を取得する<br />
- [getHtmlById](/ver4/関数リファレンス/getHtmlById) - 記事中のタグで指定したIDの内容を取得する<br />
- [getLayoutTemplates](/ver4/関数リファレンス/getLayoutTemplates) - レイアウトテンプレートを取得<br />
- [getParentCategory](/ver4/関数リファレンス/getParentCategory) - 親カテゴリを取得する<br />
- [getPostContent](/ver4/関数リファレンス/getPostContent) - 記事の本文を取得する<br />
- [getPostDate](/ver4/関数リファレンス/getPostDate) - 登録日を取得する<br />
- [getPostImg](/ver4/関数リファレンス/getPostImg) - 記事中の画像を取得する<br />
- [getPostLink](/ver4/関数リファレンス/getPostLink) - 記事へのリンクを取得する<br />
- [getPostLinkUrl](/ver4/関数リファレンス/getPostLinkUrl) - ブログ記事のURLを返す<br />
- [getPostTitle](/ver4/関数リファレンス/getPostTitle) - 記事タイトルを取得する<br />
- [getRelatedPosts](/ver4/関数リファレンス/getRelatedPosts) - 同じタグの関連投稿を取得する<br />
- [getTag](/ver4/関数リファレンス/getTag) - タグを取得する<br />
- [getTitle](/ver4/関数リファレンス/getTitle) - タイトルを取得する<br />
- [isArchive](/ver4/関数リファレンス/isArchive) - アーカイブページ判定<br />
- [isCategory](/ver4/関数リファレンス/isCategory) - カテゴリー別記事一覧ページ判定<br />
- [isDate](/ver4/関数リファレンス/isDate) - 日別記事一覧ページ判定<br />
- [isHome](/ver4/関数リファレンス/isHome) - インデックスページ判定<br />
- [isMonth](/ver4/関数リファレンス/isMonth) - 月別記事一覧ページ判定<br />
- [isSingle](/ver4/関数リファレンス/isSingle) - 個別ページ判定<br />
- [isTag](/ver4/関数リファレンス/isTag) - タグ別記事一覧ページ判定<br />
- [isYear](/ver4/関数リファレンス/isYear) - 年別記事一覧ページ判定<br />
- [mailFormLink](/ver4/関数リファレンス/mailFormLink) - メールフォームプラグインのフォームへのリンクを生成する<br />
- [nextLink](/ver4/関数リファレンス/nextLink) - 次の記事へのリンクを出力する<br />
- [postContent](/ver4/関数リファレンス/postContent) - 記事の本文を表示する<br />
- [postDate](/ver4/関数リファレンス/postDate) - 記事の登録日を出力する<br />
- [postImg](/ver4/関数リファレンス/postImg) - 記事中の画像を出力する<br />
- [postLink](/ver4/関数リファレンス/postLink) - 記事へのリンクを出力する<br />
- [postTitle](/ver4/関数リファレンス/postTitle) - 記事のタイトルを出力する<br />
- [prevLink](/ver4/関数リファレンス/prevLink) - 前の記事へのリンクを出力する<br />
- [setContent](/ver4/関数リファレンス/setContent) - ブログコンテンツデータをセットする<br />
- [tag](/ver4/関数リファレンス/tag) - タグを出力する<br />
- [title](/ver4/関数リファレンス/title) - ブログタイトルを出力する<br />
<br />
<br />
## メールフォーム($this->Mail)<br />
<br />
$this->Mail->関数名 で使える関数は、メールフォームで利用できる関数です。<br />
<br />
- [description](/ver4/関数リファレンス/description) - メールの説明文を表示する<br />
- [descriptionExists](/ver4/関数リファレンス/descriptionExists) - メールの説明文が指定されているかどうかを判定する<br />
- [getDescription](/ver4/関数リファレンス/getDescription) - メールの説明文を取得する<br />
- [getFormTemplates](/ver4/関数リファレンス/getFormTemplates) - フォームテンプレートを取得<br />
- [getLayoutTemplates](/ver4/関数リファレンス/getLayoutTemplates) - レイアウトテンプレートを取得<br />
- [getMailTemplates](/ver4/関数リファレンス/getMailTemplates) - レイアウトテンプレートを取得<br />
- <strike>[indexFields](/ver4/関数リファレンス/indexFields) - 管理画面のメールフィールド一覧ページへのリンクを出力する</strike>(非推奨)<br />
- [link](/ver4/関数リファレンス/link) - メールフォームへのリンクを生成する<br />
- [setMailContent](/ver4/関数リファレンス/setMailContent) - メールコンテンツデータをセットする<br />
<br />
### Maildata($this->Maildata)<br />
<br />
$this->Maildata->関数名 で使える関数は、メールフォームで利用できる関数です。<br />
<br />
- [control](/ver4/関数リファレンス/control) - メール表示用のデータを出力する<br />
<br />
### Mailfield($this->Mailfield)<br />
<br />
$this->Mailfield->関数名 で使える関数は、メールフォームで利用できる関数です。<br />
<br />
- [getAttributes](/ver4/関数リファレンス/getAttributes) - htmlの属性を取得する<br />
- [getOptions](/ver4/関数リファレンス/getOptions) - コントロールのソースを取得する<br />
<br />
### Mailform($this->Mailform)<br />
<br />
$this->Mailform->関数名 で使える関数は、メールフォームで利用できる関数です。<br />
<br />
- [control](/ver4/関数リファレンス/control) - メールフィールドのデータよりコントロールを生成する<br />
<br />
<br />
## フィード($this->Feed)<br />
<br />
$this->Feed->関数名 で使える関数は、フィードで利用できる関数です。<br />
<br />
- [cacheHeader](/ver4/関数リファレンス/cacheHeader) - フィードリストのキャッシュヘッダーを出力する<br />
- [getTemplates](/ver4/関数リファレンス/getTemplates) - レイアウトテンプレートを取得<br />
- [saveCachetime](/ver4/関数リファレンス/saveCachetime) - フィードのキャッシュタイムをキャッシュファイルに保存<br />
<br />
### FeedBaser($this->BcBaserで利用可)<br />
- [feed](/ver4/関数リファレンス/feed) - フィード出力<br />
<br />
<br />
## BcAdmin($this->BcAdmin)<br />
- [isAdminGlobalmenuUsed](/ver4/関数リファレンス/isAdminGlobalmenuUsed) - 管理システムグローバルメニューの利用可否確認<br />
- [isSystemAdmin](/ver4/関数リファレンス/isSystemAdmin) - ログインユーザーがシステム管理者かチェックする<br />
<br />
<br />
## BcArray($this->BcArray)<br />
- [addText](/ver4/関数リファレンス/addText) - 配列にテキストを追加する<br />
- [first](/ver4/関数リファレンス/first) - 配列の最初の要素かどうか調べる<br />
- [last](/ver4/関数リファレンス/last) - 配列の最後の要素かどうか調べる<br />
<br />
<br />
## BcCkeditor($this->BcCkeditor)<br />
- [_build](/ver4/関数リファレンス/_build) - CKEditor のスクリプトを構築する<br />
- [editor](/ver4/関数リファレンス/editor) - CKEditorのテキストエリアを出力する<br />
<br />
<br />
## BcCsv($this->BcCsv)<br />
- [addModelData](/ver4/関数リファレンス/addModelData) - データを追加する(単数)<br />
- [addModelDatas](/ver4/関数リファレンス/addModelDatas) - データをセットする(複数)<br />
- [download](/ver4/関数リファレンス/download) - CSVファイルをダウンロードする<br />
- [save](/ver4/関数リファレンス/save) - ファイルを保存する<br />
<br />
<br />
## BcForm($this->BcForm)<br />
- [checkbox](/ver4/関数リファレンス/checkbox) - CakeコアのFormHelperの拡張<br />
- [ckeditor](/ver4/関数リファレンス/ckeditor) - CKEditorを出力する<br />
- [create](/ver4/関数リファレンス/create) - フック用にCakeコアをラッピング<br />
- [dateTime](/ver4/関数リファレンス/dateTime) - CakeコアのFormHelperの拡張<br />
- [dateTimePicker](/ver4/関数リファレンス/dateTimePicker) - 日付カレンダーと時間フィールド<br />
- [datepicker](/ver4/関数リファレンス/datepicker) - カレンダーコントロール付きのテキストフィールド<br />
- [dispatchAfterForm](/ver4/関数リファレンス/dispatchAfterForm) - フォームの最後のフィールドの後に発動する前提としてイベントを発動する<br />
- [editor](/ver4/関数リファレンス/editor) - エディタを表示する<br />
- [end](/ver4/関数リファレンス/end) - フック用にCakeコアをラッピング<br />
- [file](/ver4/関数リファレンス/file) - ファイルインプットボックス出力<br />
- [generateList](/ver4/関数リファレンス/generateList) - モデルよりリストを生成する<br />
- [getControlSource](/ver4/関数リファレンス/getControlSource) - コントロールソースを取得する<br />
- [hidden](/ver4/関数リファレンス/hidden) - Cakeコアをラッピング<br />
- [input](/ver4/関数リファレンス/input) - Cakeコアをラッピング<br />
- [jsonList](/ver4/関数リファレンス/jsonList) - JsonListを出力する<br />
- [prefTag](/ver4/関数リファレンス/prefTag) - 都道府県用のSELECTタグを表示する<br />
- [selectText](/ver4/関数リファレンス/selectText) - 文字列保存用複数選択コントロール<br />
- [wyear](/ver4/関数リファレンス/wyear) - 和暦年を表示する<br />
<br />
<br />
## BcFreeze($this->BcFreeze)<br />
- [checkbox](/ver4/関数リファレンス/checkbox) - チェックボックスを表示する<br />
- [dateTime](/ver4/関数リファレンス/dateTime) - 日付タグを表示<br />
- [datepicker](/ver4/関数リファレンス/datepicker) - カレンダーコントロール付きのテキストフィールド<br />
- [file](/ver4/関数リファレンス/file) - ファイルタグを出力<br />
- [freeze](/ver4/関数リファレンス/freeze) - フォームを凍結させる<br />
- [freezeControll](/ver4/関数リファレンス/freezeControll) - 凍結時用のコントロールを取得する<br />
- [image](/ver4/関数リファレンス/image) - ファイルコントロール(画像)を表示する<br />
- [jsonList](/ver4/関数リファレンス/jsonList) - JsonListを出力する<br />
- [radio](/ver4/関数リファレンス/radio) - ラジオボタンを表示する<br />
- [select](/ver4/関数リファレンス/select) - プルダウンメニューを表示<br />
- [text](/ver4/関数リファレンス/text) - テキストボックスを表示する<br />
- [textarea](/ver4/関数リファレンス/textarea) - テキストエリアを表示する<br />
- [upload](/ver4/関数リファレンス/upload) - アップロードした画像を表示する<br />
- [wyear](/ver4/関数リファレンス/wyear) - 和暦年を表示する<br />
<br />
<br />
## BcGooglemaps($this->BcGooglemaps)<br />
- [getLocation](/ver4/関数リファレンス/getLocation) - 位置情報を取得する<br />
- [load](/ver4/関数リファレンス/load) - Google マップ を読み込む<br />
- [loadLocation](/ver4/関数リファレンス/loadLocation) - 位置情報を読み込む<br />
<br />
<br />
## BcHtml($this->BcHtml)<br />
- [getStripCrumbs](/ver4/関数リファレンス/getStripCrumbs) - タグにラッピングされていないパンくずデータを取得する<br />
<br />
<br />
## BcMobile($this->BcMobile)<br />
- [afterLayout](/ver4/関数リファレンス/afterLayout) - 出力データをSJISに変換する<br />
- [header](/ver4/関数リファレンス/header) - コンテンツタイプを出力<br />
<br />
<br />
## BcSmartphone($this->BcSmartphone)<br />
- [afterLayout](/ver4/関数リファレンス/afterLayout) - スマートフォン用プレフィックスを追加する<br />
<br />
<br />
## BcText($this->BcText)<br />
- [age](/ver4/関数リファレンス/age) - 日付より年齢を取得する<br />
- [arrayValue](/ver4/関数リファレンス/arrayValue) - 配列とキーを指定して値を取得する<br />
- [arrayValues](/ver4/関数リファレンス/arrayValues) - 連想配列とキーのリストより値のリストを取得し文字列で返す<br />
- [booleanAllow](/ver4/関数リファレンス/booleanAllow) - boolean型用を可、不可で出力<br />
- [booleanAllowList](/ver4/関数リファレンス/booleanAllowList) - boolean型用のリストを可、不可で出力<br />
- [booleanDo](/ver4/関数リファレンス/booleanDo) - boolean型のデータを [〜する / 〜しない] 形式で出力する<br />
- [booleanDoList](/ver4/関数リファレンス/booleanDoList) - boolean型用のリストを[〜する/〜しない]形式で出力する<br />
- [booleanExists](/ver4/関数リファレンス/booleanExists) - boolean型用を有無で出力<br />
- [booleanExistsList](/ver4/関数リファレンス/booleanExistsList) - boolean型用のリストを「有」「無」で出力<br />
- [booleanMark](/ver4/関数リファレンス/booleanMark) - boolean型を ○ または ― マークで出力<br />
- [booleanMarkList](/ver4/関数リファレンス/booleanMarkList) - boolean型用のリストを ○ ― マークで出力<br />
- [booleanStatus](/ver4/関数リファレンス/booleanStatus) - boolean型用を無効・有効で出力<br />
- [booleanStatusList](/ver4/関数リファレンス/booleanStatusList) - boolean型用のリストを有効、無効で出力<br />
- [dateTime](/ver4/関数リファレンス/dateTime) - form::dateTimeで取得したデータを文字列データに変換する<br />
- [dateTimeWareki](/ver4/関数リファレンス/dateTimeWareki) - form::dateTimeで取得した和暦データを文字列データに変換する<br />
- [format](/ver4/関数リファレンス/format) - 文字をフォーマット形式で出力する<br />
- [listValue](/ver4/関数リファレンス/listValue) - モデルのコントロールソースより表示用データを取得する<br />
- [moneyFormat](/ver4/関数リファレンス/moneyFormat) - 通貨表示を行う<br />
- [noValue](/ver4/関数リファレンス/noValue) - データをチェックして空の場合に指定した値を返す<br />
- [pref](/ver4/関数リファレンス/pref) - 番号を都道府県に変換して出力<br />
- [prefList](/ver4/関数リファレンス/prefList) - 都道府県のリストを出力<br />
- [sex](/ver4/関数リファレンス/sex) - 性別を出力<br />
- [toArray](/ver4/関数リファレンス/toArray) - 区切り文字で区切られたテキストを配列に変換する<br />
- [zipFormat](/ver4/関数リファレンス/zipFormat) - 郵便番号にハイフンをつけて出力<br />
<br />
<br />
## BcTime($this->BcTime)<br />
- [convertToSeirekiYear](/ver4/関数リファレンス/convertToSeirekiYear) - 和暦の年を西暦に変換する。和暦のフォーマット例:s-48<br />
- [convertToWareki](/ver4/関数リファレンス/convertToWareki) - 和暦変換<br />
- [convertToWarekiArray](/ver4/関数リファレンス/convertToWarekiArray) - 和暦変換(配列で返す)<br />
- [convertToWarekiYear](/ver4/関数リファレンス/convertToWarekiYear) - 西暦を和暦の年に変換する<br />
- [format](/ver4/関数リファレンス/format) - format 拡張<br />
- [getJpWeek](/ver4/関数リファレンス/getJpWeek) - 日本の曜日名を1文字 + $suffixの形式で取得する<br />
- [jpWeek](/ver4/関数リファレンス/jpWeek) - 曜日情報を出力する<br />
- [minutes](/ver4/関数リファレンス/minutes) - 文字列から時間(分)を取得<br />
- [nengo](/ver4/関数リファレンス/nengo) - 年号を取得<br />
- [pastDays](/ver4/関数リファレンス/pastDays) - 指定した日数が経過しているか確認する。経過していない場合はtrueを返す<br />
- [wareki](/ver4/関数リファレンス/wareki) - 和暦を取得(アルファベット)<br />
- [wyear](/ver4/関数リファレンス/wyear) - 和暦の年を取得<br />
<br />
<br />
## BcUpload($this->BcUpload)<br />
<del>- [file](/ver4/関数リファレンス/file) - ファイルインプットボックス出力</del>(非推奨)<br />
- [fileLink](/ver4/関数リファレンス/fileLink) - ファイルへのリンクを取得する<br />
- [uploadImage](/ver4/関数リファレンス/uploadImage) - アップロードした画像のタグをリンク付きで出力する<br />
<br />
<br />
## BcXml($this->BcXml)<br />
- [header](/ver4/関数リファレンス/header) - XML宣言を生成する<br />
<br />
[[Category:開発ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%81%9D%E3%81%AE%E4%BB%96
ver4/その他
2016-09-18T09:12:43Z
<p>183.76.75.203: ページの作成:「<metadesc>その他、baserCMSのガイドです。</metadesc> - ファイル読み込みの優先順位 - ドキュメントルートについて - baserCMS...」</p>
<hr />
<div><metadesc>その他、baserCMSのガイドです。</metadesc><br />
<br />
- [[ファイル読み込みの優先順位]]<br />
- [[ドキュメントルートについて]]<br />
- [[baserCMSのCakePHP拡張について]]<br />
- [[不具合発生時の対処法]]<br />
- [[baserCMSの別環境への移設]]<br />
- [[システムナビにメニューを追加する]]<br />
- [[データベースチューニング]]<br />
<br />
[[Category:開発ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%82%B3%E3%82%A2%E9%96%8B%E7%99%BA%E3%82%AC%E3%82%A4%E3%83%89
ver4/コア開発ガイド
2016-09-18T09:11:42Z
<p>183.76.75.203: ページの作成:「<metadesc>コアパッケージ開発者ガイド baserCMSコアパッケージ開発者ガイド</metadesc> baserCMS開発バグトラッキングサイトの http://...」</p>
<hr />
<div><metadesc>コアパッケージ開発者ガイド baserCMSコアパッケージ開発者ガイド</metadesc><br />
<br />
baserCMS開発バグトラッキングサイトの [[http://project.e-catchup.jp/projects/basercms/wiki/コアパッケージ開発者ガイド baserCMSコアパッケージ開発者ガイド]] を参照してください。<br />
<br />
[[Category:開発ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%AC%E3%82%A4%E3%83%89/%E4%BC%9A%E5%93%A1%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84
ver4/逆引きガイド/会員ログインの仕組みを作りたい
2016-09-18T09:06:09Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSではプレフィックス認証機能を利用して、会員ログインの仕組みを作ることができ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSではプレフィックス認証機能を利用して、会員ログインの仕組みを作ることができます。<br />
<br />
##プレフィックス認証機能とは?<br />
プレフィックス認証とは、URLの一部に特定の文字列をプレフィックス(接頭辞)として付与し、そのプレフィックスが付与されたURLにアクセスをすると、ユーザーにログイン認証を求める機能です。もっとも身近な使用例は、baserCMSの管理画面です。管理画面にはデフォルトで「admin」というプレフィックスが付けられており、管理機能を構成するURLには、全て「admin」という文字列が含まれています。その結果、ユーザーが管理画面にアクセスする場合(つまり「admin」プレフィックスの付与されたURLにアクセスする場合)に、ログイン認証が求められるようになっています。<br />
<br />
<br />
##プレフィックス認証機能を利用する。<br />
プレフィックス認証機能を利用するには、baserCMSのファイルを一部コピーして書き換える必要があります。以下にその手順を示します。<br />
<br />
###setting.phpのコピーと編集<br />
baserCMSの設定用ファイルをコアファイル群が入ったフォルダ「/lib/Baser」から、開発用のフォルダ「/app」以下にコピーして、コピー先のファイルを編集します(コアファイルを開発用フォルダにコピーして使用することで、baserCMSのバージョンアップ時に拡張部分が上書きされてしまう事故を防ぎます)。<br />
####コピー元<br />
/lib/Baser/Config/setting.php<br />
####コピー先<br />
/app/Config/setting.php<br />
####setting.phpの126行目付近から編集する<br />
プレフィックス認証部分のコメントアウトを外して、「admin」以外のプレフィックスを機能させます。ここでは例として「mypage」というプレフィックスを追加しています。なお、この「mypage」の記述は、サンプルとしてsetting.phpに最初から記載されていますので、コメントアウトをするだけで結構です。<br />
<syntaxhighlight lang="php"><br />
'mypage' => array(<br />
'name' => 'マイページ',<br />
'alias' => 'mypage',<br />
'loginRedirect' => '/mypage/members/edit',<br />
'loginTitle' => 'マイページログイン',<br />
'userModel' => 'Member',<br />
'loginAction' => '/mypage/members/login',<br />
'toolbar' => false<br />
),<br />
</syntaxhighlight><br />
これでプレフィックスに「mypage」が追加されました。<br />
<br />
###ログインできるユーザーグループとユーザーを作成する<br />
管理画面の[[ユーザー管理機能]]をつかって、ログインユーザーを作成していきます。<br />
####ユーザーグループの作成<br />
ユーザーグループを新規登録します。前述のsetting.phpの編集が上手く出来ていれば、ユーザーグループの作成フォームにて「認証プレフィックス」が選択できるようになっています。選択肢の中から「mypage」を選びます。これによって、「mypage」プレフィックスを利用したページにアクセスできるユーザーグループが出来上がります。<br />
####ユーザーの作成<br />
ユーザーを新規登録します。作成するユーザーは、上記グループ「mypage」グループに所属させてください。その結果、「mypage」にログインできるグループのユーザーとして登録されます。<br />
<br />
##ログイン画面を表示する<br />
次にログイン画面の表示を行います。ログイン画面は前述のsetting.phpでコメントアウトした中にある、「loginAction」の値で設定できます。今回の例だと以下のURLでログイン画面が表示されます。<br />
(baserCMSのインストールURL)/mypage/members/login<br />
この画面が表示されたら、先ほど作ったユーザーでログインを実行します。認証に成功すると、setting.phpの「loginRedirect」の値で設定したURLにリダイレクトします。今回の例だと以下のURLに転送されます。<br />
(baserCMSのインストールURL)/mypage/members/edit<br />
これにてログイン認証の完了です。<br />
###ログインが必要なページを作りこむ為のヒント<br />
今回の例の場合、「/mypage/members/edit」というURLは、以下のファイルを参照します。<br />
/lib/Baser/Controllers/MembersController.php<br />
そして、このファイルの中にある、<br />
mypage_edit()<br />
というアクションを呼び出しています(このようなURLとアクションの呼び出しの仕組みについては、[CakePHP](http://cakephp.jp/)の情報を参照してください)。例えば、習い事やスクールの会員ページを作りたいとして、「Member」という表記ではなく「Student」を使用したい場合、setting.phpの中で「userModel」を「Student」、「loginAction」の値を「/mypage/students/login」にし、「loginRedirect」の値を「/mypage/students/index」とした上、次の場所に以下のファイルを設置してください。<br />
/app/Controllers/StudentsController.php<br />
そして、その中にログイン成功後のリダイレクト先として以下のアクションを作成します。<br />
mypage_index()<br />
これでログイン時に、上記のアクションを参照するようになります。処理の中身や表示する内容の作成は、CakePHPの流儀に従って用意します。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%AC%E3%82%A4%E3%83%89/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%96%B0%E7%9D%80%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84
ver4/逆引きガイド/トップページにブログの新着を表示させたい
2016-09-18T09:05:29Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] ブログに投稿された記事の新着一覧を、baserCMSの関数「[[関数リファレンス/blogPosts|blogPosts]...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
ブログに投稿された記事の新着一覧を、baserCMSの関数「[[関数リファレンス/blogPosts|blogPosts]]」を利用して表示させます。なお、この関数はトップページ以外でも使用できます。<br />
<br />
##blogPosts()を呼び出す<br />
新着一覧を表示するには、表示したい場所で[[関数リファレンス/blogPosts|blogPosts]]を使用します。この関数を使用すると、お使いのテーマ内で設定されたブログの[[テーマに関する用語|コンテンツテンプレート]]に沿った形で、新着記事のHTMLが出力されます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->blogPosts('news') ?><br />
</syntaxhighlight><br />
<br />
上の例はブログ「news」を呼び出す例です。この関数の詳細な使い方はを[[関数リファレンス/blogPosts|blogPosts]]ご覧ください。<br />
<br />
###コンテンツテンプレートの場所<br />
新着一覧部分のデザインを変更するには、以下のテンプレートファイルを変更します。<br />
/app/webroot/theme/(お使いのテーマ)/Blog/default/posts.php<br />
(※「default」以外のテンプレートを使用している場合は、「default」部分を読み替えてください)<br />
<br />
##トップページで使う<br />
トップページで使う為には、[[固定ページ管理機能]]でトップページの編集画面に入ります。エディタを使用しますが、そのままではPHPのようなソースコードを使用できませんので、エディタをソースモードにしてください。あとは、上記のソースコードを必要な場所に貼り付けて完了です。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%96%E3%83%AD%E3%82%B0%E4%B8%80%E8%A6%A7%E3%81%AB%E5%86%99%E7%9C%9F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84%EF%BC%88%E6%9C%AC%E6%96%87%E3%81%AE%E4%B8%AD%E3%81%AE%E7%94%BB%E5%83%8F%EF%BC%89
ver4/ブログ一覧に写真を表示させたい(本文の中の画像)
2016-09-18T09:04:27Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのブログ機能で作られた記事の一覧表示中に、記事で使われている画像を表示す...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSの[[ブログ機能]]で作られた記事の一覧表示中に、記事で使われている画像を表示するにはbaserCMS関数[[関数リファレンス/postImg|postImg()]]を使用します。ループして記事を表示している場合で、$postに記事情報が入っている場合、以下のようにすれば画像が出力されるはずです。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->Blog->postImg($post) ?><br />
</syntaxhighlight></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%96%E3%83%AD%E3%82%B0%E4%B8%80%E8%A6%A7%E3%81%AB%E5%86%99%E7%9C%9F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84%EF%BC%88%E3%82%A2%E3%82%A4%E3%82%AD%E3%83%A3%E3%83%83%E3%83%81%EF%BC%89
ver4/ブログ一覧に写真を表示させたい(アイキャッチ)
2016-09-18T09:03:45Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのブログ機能で作られた記事の一覧表示中に、アイキャッチを表示するにはbaserCM...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSの[[ブログ機能]]で作られた記事の一覧表示中に、アイキャッチを表示するにはbaserCMS関数[[関数リファレンス/eyeCatch|eyeCatch()]]を使用します。ループして記事を表示している場合で、$postに記事情報が入っている場合、以下のようにすればアイキャッチ画像が出力されるはずです。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->Blog->eyeCatch($post) ?><br />
</syntaxhighlight></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E4%B8%80%E8%A6%A7%E3%81%AB%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%AE%E3%81%BF%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84
ver4/ブログの一覧に特定のカテゴリの記事のみを表示させたい
2016-09-18T09:02:16Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] ここでは、baserCMSのブログテンプレートを変更する方法をご説明します。 ## コンテンツテ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
ここでは、baserCMSのブログテンプレートを変更する方法をご説明します。<br />
<br />
## コンテンツテンプレートを変更する<br />
<br />
ブログのコンテンツ用のテンプレートは基本的に、4つのテンプレートで構成されています。<br />
<br />
* ブログトップテンプレート・・・index.php<br />
* 記事一覧テンプレート(カテゴリ、月別等)・・・archives.php<br />
* 個別記事テンプレート・・・single.php<br />
* トップページ等記事一覧表示用テンプレート・・・posts.php<br />
<br />
また、初期状態では、baserCMSのパッケージが提供する初期テンプレートを利用する設定となっており、変更するには上記ファイル群を、下記の場所に配置します。<br />
<br />
<br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/Blog/{コンテンツテンプレート名}/<br />
<br />
<small>※ コンテンツテンプレート名は、初期状態で「default」です。<br /><br />
※ コンテンツテンプレート名は、管理画面上で、各ブログの基本設定より変更できるようになっており、複数のブログを設置した場合、各ブログごとに変更する事ができます。<br /><br />
※ 各テンプレートは、個別に変更可能です。(index.phpだけ変更するなど)</small><br />
<br />
テンプレートを変更する場合は、不具合をできるだけ避ける為、baserCMSのパッケージが提供するコアテンプレートをコピーして修正する事をおすすめします。<br /> コピー方法は、[コアテンプレートのカスタマイズ ][1]を参考にします。テーマ管理より、baserCMSコアを開き、ブログテーマ管理メニューの「コンテンツ一覧」をクリックし、「Blog/」フォルダをコピーします。<br />
<br />
## レイアウトテンプレートを変更する<br />
<br />
レイアウトテンプレートを指定していない初期状態では、共通のレイアウトを利用する設定となっていますが、ブログのみのレイアウトを変更する事もできます。<br /> 変更するには、下記場所にレイアウトファイルを設置し、管理システムの対象ブログの基本設定より変更します。<br />
<br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/Layouts/{レイアウトテンプレート名}.php<br />
<br />
<br />
<small>※ レイアウトテンプレート名は、初期状態で「default」です。<br /><br />
※ レイアウトテンプレート名は、管理画面上で、各ブログの基本設定から変更できるようになっており、複数のブログを設置した場合、各ブログごとに変更する事ができます。</small><br />
<br />
[1]: http://wiki.basercms.net/%E3%82%B3%E3%82%A2%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84
ver4/ブログのコンテンツテンプレートを変更したい
2016-09-18T09:01:30Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのブログ機能で作られたブログのコンテンツテンプレートを変更できます。 管...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSの[[ブログ機能]]で作られたブログのコンテンツテンプレートを変更できます。<br />
<br />
管理画面からプラグイン管理>ブログプラグイン管理に進んでください。任意のブログの「ブログ基本設定」の中のオプションを開きます。出てくる項目の中にコンテンツテンプレートというのがありますので、そこで任意のテンプレートを選択します。<br />
<br />
なお、ブログのコンテンツテンプレートそのものは、以下の場所にフォルダ単位で作成します。<br />
<br />
/app/webroot/thtme/(お使いのテーマ)/Blog/<br />
<br />
「default」フォルダが、デフォルトで利用されるテンプレートになっています。各テンプレートの中身は以下のようになっています。作成の際の参考にしてください。<br />
<br />
archive.php<br />
: 一覧表示ページのテンプレートです<br />
<br />
index.php<br />
: ブログのトップページのテンプレートです<br />
<br />
single.php<br />
: 記事の個別表示のテンプレートです<br />
<br />
posts.php<br />
: 新着記事表示など[[関数リファレンス/blogPosts|blogPosts()]]で呼び出されるリストのテンプレートです</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%91%E3%83%BC%E3%83%84%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%9F%E3%81%84
ver4/フッターのパーツを呼び出したい
2016-09-18T09:00:44Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSでは、サイトの表示部分を「エレメント」と呼ばれる幾つかのパーツに切り分けて...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSでは、サイトの表示部分を「エレメント」と呼ばれる幾つかのパーツに切り分けて管理・使用することが出来ます。ヘッダーやフッターなどの共通部分をエレメンとして切り分けておくことで、変更などがあった場合に1箇所を修正すれば全てで反映されるように出来ます。<br />
<br />
##フッターのエレメントファイルを作成する<br />
以下の場所にファイル「footer.php」を作成します。<br />
/app/webroot/theme/(テーマフォルダ)/Elements/footer.php<br />
<br />
##エレメントを呼び出す<br />
上記の「Elements」フォルダに入っているエレメントファイルは[[関数リファレンス/footer|footer()]]を使って以下のようにすると呼び出す事ができます。<br />
<syntaxhighlight lang="php"><br />
$this->BcBaser->footer();<br />
</syntaxhighlight></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92SSL%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84
ver4/フォームをSSL対応にしたい
2016-09-18T08:59:50Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのメールフォームを利用する際、SSL暗号化通信で行うように設定できます。ただし...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのメールフォームを利用する際、SSL暗号化通信で行うように設定できます。ただし、事前にサーバー側へSSL証明書のインストールが必要です。<br />
<br />
##システム管理での設定<br />
メールフォームでSSL暗号化通信を行う為には、管理画面のシステム管理にて「WebサイトURL」の「SSL」の欄にSSL通信時にURLを記述します。<br />
<br />
##メールフォーム側の設定<br />
メールプラグインの管理画面から、SSL通信を行いたいフォームの「メールフォーム基本設定」を開きます。設定項目のオプション中に「SSL」という項目があるはずですので、チェックを入れます。<br />
<br />
これで、このメールフォームにアクセスした際には、SSL通信用のアドレス自動で転送されることになります。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%81%AE%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E7%B7%A8%E9%9B%86
ver4/フィードのデザイン編集
2016-09-18T08:59:10Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] ここでは、トップページ等で表示すると便利なフィード読み込みプラグインのテンプレ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
<br />
<br />
ここでは、トップページ等で表示すると便利なフィード読み込みプラグインのテンプレートを変更する方法をご説明します。<br />
<br />
## コンテンツテンプレートを変更する<br />
<br />
初期状態では、baserCMSのパッケージが提供する初期テンプレートを利用する設定となっており、変更するにはテンプレートを、下記の場所に配置します。<br />
<br />
<pre>{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/Feed/{コンテンツテンプレート名}.php</pre> <br />
<br />
<small>※ コンテンツテンプレート名は、初期状態で「default」です。<br /> ※ コンテンツテンプレート名は、管理画面上で、各フィードの基本設定から変更できるようになっており、複数のフィードを設置した場合、各フィードごとに変更する事ができます。</small><br />
<br />
テンプレートの変更時は、不具合をできるだけ避ける為、baserCMSのパッケージが提供する初期テンプレートをコピーして修正する事をおすすめします。<br /> コピー方法は、[コアテンプレートのカスタマイズ ][1]を参考にします。テーマ管理より、baserCMSコアを開きフィードリーダーテーマ管理メニューの「コンテンツ一覧」をクリックし、「Feed/」フォルダ内の「default.php」をコピーします。<br />
<br />
[1]: http://wiki.basercms.net/%E3%82%B3%E3%82%A2%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%AE%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D
ver4/ファイル読み込みの優先順位
2016-09-18T08:58:25Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMS のベースとなっている CakePHP は、バージョンアップに耐えうるように、コアファイ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMS のベースとなっている CakePHP は、バージョンアップに耐えうるように、コアファイルが完全に分離されており、カスタマイズを行う場合は、コアファイルをコピーして、開発アプリケーション用のフォルダに配置すると そちらのファイルが優先して読み込まれるようになっています。 baserCMS もその仕組みを踏襲しており、baserCMS のコアファイルは完全に分離されています。 ここでは、カスタマイズ時に baserCMS の仕組みが把握しやすいように、クラスファイルやテンプレートファイルの読み込みの優先順位についてご説明します。<br />
<br />
## コントローラーの読み込み優先順位例<br />
<br />
ここでは AppController を例にとってご説明します。<br />
<br />
<pre><br />
優先順位が高い<br />
↑<br />
{baserCMSの設置フォルダ}/app/Controller/AppController.php<br />
<br />
{baserCMSの設置フォルダ}/lib/Baser/Controller/AppController.php<br />
↓<br />
優先順位が低い<br />
</pre><br />
<br />
上記のとおり、CakePHP は、まず、app ディレクトリ内を走査し、なければ、baser フォルダを走査するという仕組みになっています。 モデル、コンポーネント、ビヘイビア等の各クラスも同様です。<br />
<br />
## ビュー関連の読み込み優先順位例<br />
<br />
ビュー関連に限っては、テーマフォルダーも走査対象に含まれます。 ここでは、レイアウトファイルを例にとってご説明します。<br />
<br />
<pre><br />
優先順位が高い<br />
↑<br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/View/Layouts/default.php<br />
<br />
{baserCMSの設置フォルダ}/app/View/Layouts/default.php<br />
<br />
{baserCMSの設置フォルダ}/lib/Baser/View/Layouts/default.php<br />
↓<br />
優先順位が低い<br />
</pre><br />
<br />
## css、js、imgの読み込み優先順位例<br />
<br />
css、js、imgの読み込み順位について、imgを例にとって説明していきます。<br />
<br />
<pre><br />
優先順位が高い<br />
↑<br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/img/{IMG}<br />
<br />
{baserCMSの設置フォルダ}/app/webroot/img/{IMG}<br />
<br />
{baserCMSの設置フォルダ}/app/Plugin/{プラグイン名}/webroot/img/{IMG}<br />
<br />
{baserCMSの設置フォルダ}/lib/Baser/webroot/img/{IMG}<br />
↓<br />
優先順位が低い<br />
</pre><br />
<br />
## プラグインの読み込み優先順位例<br />
<br />
プラグインについては、プラグインフォルダも走査対象に含まれる事となります。 ここでは、Blogプラグインのブログトップページを例にとってご説明します。 <br />
<br />
<small> ※ プラグインについては少しだけ複雑です。</small><br />
<br />
<pre><br />
優先順位が高い<br />
↑<br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/Blog/default/index.php<br />
<br />
{baserCMSの設置フォルダ}/app/View/Plugin/Blog/default/index.php<br />
<br />
{baserCMSの設置フォルダ}/app/Plugin/Blog/View/Blog/default/index.php<br />
<br />
{baserCMSの設置フォルダ}/lib/Baser/Plugin/Blog/View/Blog/default/index.php<br />
↓<br />
優先順位が低い<br />
</pre></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84
ver4/パンくずを表示させたい
2016-09-18T08:57:49Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] WEBサイト内のナビゲーションの一つとして利用されるパンくずリストを表示させることが...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
WEBサイト内のナビゲーションの一つとして利用されるパンくずリストを表示させることが出来ます。baserCMS関数の[[関数リファレンス/crumbs|crumbs()]]を利用します。なお、この関数を利用する場合、予め関数[[関数リファレンス/addCrumb|addCrumb()]]を用いて、リストの表示内容を与えておく必要があります。<br />
<br />
##使い方のヒント<br />
例えば固定ページでパンくずリストを表示する場合を考えてみます。固定ページの登録・編集フォームのオプション欄に「コード」入力欄があります。ここに以下のようにパンくずリストの中身を記述しておきます。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->addCrumb('会社案内','/company/index.html') ?><br />
<?php $this->BcBaser->addCrumb('沿革') ?><br />
</syntaxhighlight><br />
その上で、レイアウトテンプレート等の表示部分で、それらを出力させます。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->crumbs('>' , 'ホーム') ?><br />
</syntaxhighlight><br />
これで出力内容は以下のようになるはずです。<br />
<pre><br />
ホーム > 会社案内 > 沿革<br />
</pre></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E3%81%97%E3%81%9F%E3%81%84
ver4/バージョンアップをしたい
2016-09-18T08:57:17Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMS はコアファイルが分離されていますので、比較的簡単にアップデートを行う事がで...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMS はコアファイルが分離されていますので、比較的簡単にアップデートを行う事ができます。<br />
<br />
<span style="color:red;"><br />
baserCMSのアップデートは必ず自己責任にて行ってください。データの破損について当サイトでは一切の責任を負いません。<br />
</span><br />
<br />
## アップデート方法<br />
<br />
* <span style="color:red;">管理画面のシステム設定→データメンテナンスより必ずデータベースのバックアップを保存します。</span><br />
* システム設定より、「制作・開発モード」を「ノーマルモード」に切り替えます。<br />
* ダウンロードページからパッケージをダウンロードします。<br />
* ダウンロードしたパッケージを解凍します。<br />
* 解凍して出来上がったフォルダの {baserCMSの設置フォルダ}/lib/Baser フォルダーを、既存サイトの {baserCMSの設置フォルダ}/lib/Baser フォルダーに上書きします。<br />
* ブラウザより、アップデート用のURLにアクセスします。<br />
<pre><br />
http://{baserCMS設置URL}/update<br />
</pre><br />
* アップデート実行ボタンをクリックします。<br />
* 基本的にこれでアップデート作業は完了です。<br />
* ただし、各バージョンごとの追加作業が必要な場合もありますので、各バージョンごとの「[アップデート方法][1]」ページを必ず確認してください。<br />
<br />
## 複数のバージョンをまたがるアップデートについて<br />
<br />
baserCMSは、もちろん複数のバージョン間のアップデートも対応しているのですが、アップデーターだけでは対応できないような内容のアップデートを含む事があります。<br />
<br />
古いバージョンからのアップデートの際は、「[コアパッケージダウンロード一覧][2]」より、現在のバージョン以降のバージョンで「追加作業」が必要かどうかを確認してください。<br /> 追加作業が「必要」と記載されているバージョンがある場合には、まずそのバージョンまでアップデートを行います。まずは、そのバージョンの「[アップデート方法][3]」を確認し、追加作業を行った上で、アップデートを実行します。<br /> 次は、そのバージョンから最新バージョンまでの間に追加作業の必要なバージョンがないか確認し、ある場合には同様の作業を繰り返します。<br />
<br />
[1]: http://basercms.net/howtoupdate/<br />
[2]: http://basercms.net/download/past<br />
[3]: http://basercms.net/howtoupdate/</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%90%E3%83%8A%E3%83%BC%E3%82%92%E8%A8%AD%E7%BD%AE%E3%81%97%E3%81%A6%E7%AE%A1%E7%90%86%E3%81%97%E3%81%9F%E3%81%84
ver4/バナーを設置して管理したい
2016-09-18T08:56:40Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSの公式マーケット「[baserMarket](http://barket.jp/)」で配布されているプラグイン「[バナ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSの公式マーケット「[baserMarket](http://barket.jp/)」で配布されているプラグイン「[バナー管理](http://barket.jp/products/detail.php?product_id=54)」を利用すれば実現できます。<br />
<br />
##プラグイン「バナー管理」<br />
このプラグインは複数のバナーエリアを管理でき、エリアごとに画像登録を行うことが出来ます。もちろん、エリアごとに画像サイズの設定なども出来ますので、このプラグインひとつで、トップページのメイン画像、サイドメニューのリンクバナーなど、幾つものサイズが異るバナーエリアを管理できます。<br />
<br />
##プラグインのインストールと使い方<br />
インストールについては、[[プラグインを設置したい]]をご覧ください。使い方についてはプラグインに同封のREADMEをご覧ください。<br />
<br />
##スライドショー等の管理機能として使う<br />
このプラグイン自体は「画像を登録し、登録された画像を出力する」という仕組みですが、上手にを使えば、一般的に配布されているjQueryプラグインと組み合わせて、スライドショーを作成・管理することが出来ます。<br />
<br />
####使用したいjQueryプラグインに合わせて出力の仕方を変更する<br />
このプラグインの出力は、デフォルトで以下のエレメントファイルにて調整されています(表示ヘルパーのオプションで他のファイルを選択できます)。<br />
/app/Plugin/Banner/View/Elements/banner_block.php<br />
この中身を書き換えることで、ほとんどの画像表示系のjQueryプラグインに対応できます。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E4%BB%A5%E5%89%8D%E3%81%AE%E7%8A%B6%E6%85%8B%E3%81%AB%E5%BE%A9%E5%85%83%E3%81%97%E3%81%9F%E3%81%84
ver4/バックアップファイルから以前の状態に復元したい
2016-09-18T08:56:11Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのデータメンテナンス機能を利用し、データベース(DB)の情報をバックアップファ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのデータメンテナンス機能を利用し、データベース(DB)の情報をバックアップファイルから復元します。DBではなくテーマファイルのバックアップについては、[[テーマのバックアップを取りたい]]をご覧ください。<br />
<br />
##データメンテナンス機能<br />
管理画面からシステム管理に入ってください。メニューの中にある「ユーティリティ」から「データメンテナンス」を選択します。<br />
<br />
##復元を実行する<br />
バックアップファイルの選択を行います。バックアップ時に取得したファイルを選択します。<br />
<br />
##バックアップを取得する<br />
[[バックアップを取りたい]]をご覧ください。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E5%8F%96%E3%82%8A%E3%81%9F%E3%81%84
ver4/バックアップを取りたい
2016-09-18T08:55:27Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのデータメンテナンス機能を利用し、データベース(DB)の情報をバックアップしま...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのデータメンテナンス機能を利用し、データベース(DB)の情報をバックアップします。DBではなくテーマファイルのバックアップについては、[[テーマのバックアップを取りたい]]をご覧ください。<br />
<br />
##データメンテナンス機能<br />
管理画面からシステム管理に入ってください。メニューの中にある「ユーティリティ」から「データメンテナンス」を選択します。<br />
<br />
##ダウンロードを実行する<br />
「ダウンロード」ボタンをクリックすると、現在のDBをPCにダウンロードします。このデータがDBのバックアップファイルになります。<br />
<br />
##バックアップから復元する<br />
[[バックアップファイルから以前の状態に復元したい]]をご覧ください。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%83%AB%E3%83%BC%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
ver4/ドキュメントルートについて
2016-09-18T08:54:47Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] まず、baserCMSを理解するために、ドキュメントルートについてご説明します。 ドキュメン...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
まず、baserCMSを理解するために、ドキュメントルートについてご説明します。<br />
<br />
ドキュメントルートとは Webサイトのトップディレクトリの事を指しますが、 baserCMS は、CakePHP というフレームワーク(Webサイトの枠組み)をベースに開発されているため、CakePHP と同じディレクトリ構造となり、Webサーバーのドキュメントルートに全てのファイルを設置した場合、ブラウザで参照する事ができるドキュメントルート(Webルートと呼びます)は、{baserCMSの設置フォルダ}/app/webroot/ となるようになっています。<br />
<br />
何故、こういうややこしい仕組みになっているかという理由は、一定のセキュリティを保持する為です。<br /> ブラウザからアクセスできる場所にプログラムファイルや、テンプレートファイルを設置した場合、任意にプログラムが実行され、悪用されてしまう可能性があります。 (ただ、ブラウザからプログラムにアクセスする為には、当然ながらそのプログラムのURLを知る必要があり、CakePHPでは直接実行できてしまうプログラムも限られていますので、無名のサイトで実際に悪用される可能性はそこまで高くはないと思います)<br />
<br />
CakePHPは、Webサーバーの設定に関わらず、強制的に {baserCMSの設置フォルダ}/app/webroot/ をWebルートにする仕組みとなっている為、ブラウザからプログラムファイルにアクセスする事ができず一定のセキュリティを保てるようになっています。<br />
<br />
従って、静的 HTML ファイルや、CSS ファイル、Javascript ファイル、画像ファイルなどは、{baserCMSの設置フォルダ}/app/webroot/をドキュメントルートとして配置します。<br />
<br />
<pre><br />
(例)http://{baserCMS設置URL}/img/main_image.gif として画像ファイルを参照したい場合<br />
<br />
main_image.gif の設置場所は、{baserCMSの設置フォルダ}/app/webroot/img/main_image.gif となります。<br />
</pre><br />
<br />
もちろん、app、Baser、Cake などのプログラムファイルをドキュメントルートの一つ上の階層に設置する事が一番望ましく、{baserCMSの設置フォルダ}/app/webroot/ をドキュメントルートとして Webサーバーをセットアップする方法が一番なのですが、レンタルサーバー等では、ドキュメントルートのフォルダ名が決まっていたり、ドキュメントルートより上の階層にはファイルが置けなかったりと制限がある場合が多いので、ドキュメントルートに全てファイルを配置する事が一番手軽な方法になると思います。<br />
<br />
## ドキュメントルートに通常どおり静的ファイルを配置する<br />
<br />
ドキュメントルートに baserCMS の全てのファイルを設置すると、管理するファイルの階層が深くなり分かりにくいという場合は、次の方法で、ドキュメントルートを通常どおりのドキュメントルートとして扱う事ができます。<br />
<br />
ファイルをWeb サーバーにアップロードする前に作業をしましょう。<br />
<br />
* {baserCMSの設置フォルダ}/app ディレクトリから、 webroot ディレクトリを抜き出し別の場所に移動させます。<br />
* webroot ディレクトリ内に、app、lib の2つのディレクトリを配置します。<br /> 構成変更後のディレクトリ構成は以下となります。<br />
<pre><br />
webroot/ - app/<br />
- lib/<br />
- theme/<br />
- .htaccess(もともと webroot にあったもの)<br />
- index.php(もともと webroot にあったもの)<br />
- favicon.ico<br />
</pre><br />
<br />
* webroot の中身を Webサーバーのドキュメントルートに全てアップロードします。<br />
<br />
すると、構成変更があった事を baserCMSが認識し、通常どおりインストールでき、動作するようになります。<br />
<br />
セキュリティ上の問題がどうしても気になる場合は、.htaccess などで、ブラウザからプログラムフォルダにアクセスできないようにすれば大丈夫です。<br /> 具体的には、app / Baser / Cake の3つのフォルダに次の文を記述した.htaccessを記述します。<br />
<pre><br />
deny from all<br />
</pre></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E6%96%B0%E7%9D%80%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84
ver4/トップページにブログの新着を表示させたい
2016-09-18T08:54:01Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] #転送 逆引きガイド/トップページにブログの新着を表示させたい」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
#転送 [[逆引きガイド/トップページにブログの新着を表示させたい]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0
ver4/データベースチューニング
2016-09-18T08:53:15Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] データベースチューニングについて。 ## インデックス [http://flagsystem.co.jp/news/archives/32 参...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
データベースチューニングについて。<br />
<br />
## インデックス<br />
[http://flagsystem.co.jp/news/archives/32 参考]<br><br />
table prefixは適宜読み替える事<br />
<br />
### PostgreSQL<br />
CREATE INDEX blog_category_id_idx ON mysite_pg_blog_posts(blog_category_id) ; <br /><br />
CREATE INDEX blog_content_id_idx ON mysite_pg_blog_posts(blog_content_id) ;<br /><br />
CREATE INDEX user_id_idx ON mysite_pg_blog_posts(user_id) ;<br /><br />
CREATE INDEX mysite_pg_blog_posts_no_idx ON mysite_pg_blog_posts(no) ;<br /><br />
<br />
<br />
それからブログとタグをひもづけてるmysite_pg_blog_posts_blog_tags 。<br /><br />
タグを使う場合こいつは臭い。この辺、INDEX貼ればかなり変わりそう。<br /><br />
<br />
CREATE INDEX blog_post_id_idx ON mysite_pg_blog_posts_blog_tags(blog_post_id) ;<br /><br />
CREATE INDEX blog_tag_id ON mysite_pg_blog_posts_blog_tags(blog_tag_id) ;<br /><br />
<br />
<br />
<br />
<br />
あとはコメントのテーブル。mysite_pg_blog_comments <br /><br />
もしサイトが炎上してコメント1000も2000も行った場合はここも負荷になるのでINDEX貼っときましょう。<br /><br />
<br />
CREATE INDEX blog_comments_content_id_idx ON mysite_pg_blog_comments(blog_content_id) ;<br /><br />
CREATE INDEX blog_comments_post_id_idx ON mysite_pg_blog_comments(blog_post_id) ;<br /><br />
CREATE INDEX blog_comments_no_idx ON mysite_pg_blog_comments(no) ;<br /><br />
<br />
<br />
### MySQL<br />
<br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX blog_category_id_idx(blog_category_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX blog_content_id_idx(blog_content_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX user_id_idx(user_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_posts ADD INDEX mysite_pg_blog_posts_no_idx(no) ;<br /><br />
<br />
ALTER TABLE mysite_pg_blog_posts_blog_tags ADD INDEX blog_post_id_idx(blog_post_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_posts_blog_tags ADD INDEX blog_tag_id(blog_tag_id) ;<br /><br />
<br />
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_content_id_idx(blog_content_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_post_id_idx(blog_post_id) ;<br /><br />
ALTER TABLE mysite_pg_blog_comments ADD INDEX blog_comments_no_idx(no) ;<br /></div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E7%AE%A1%E7%90%86
ver4/テーマ管理
2016-09-18T08:52:40Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] テーマ管理に関する情報を掲載しています。テーマの編集やカスタマイズについては「...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
テーマ管理に関する情報を掲載しています。テーマの編集やカスタマイズについては「[[テーマガイド]]」を参照してください。<br />
<br />
<br />
== 機能の概要 ==<br />
テーマを適用することで、baserCMSで作られたサイトのデザインを一気に変更できます。テーマは公式マーケットの「[baserMarket](https://market.basercms.net/)」から入手出来る他、個人のブログなどでも公開されています。<br />
<br />
<br />
<br />
== テーマのインストール ==<br />
テーマは以下の場所に設置すると、管理画面が自動で認識します。<br />
<br />
###テーマの設置場所<br />
####Ver.3系統<br />
<pre><br />
/app/webroot/theme/<br />
</pre><br />
<br />
####Ver.2系統<br />
<pre><br />
/app/webroot/themed/<br />
</pre><br />
規定の場所にテーマをフォルダごと設置したら、あとはテーマ管理から「適用」を行うだけで、サイトのデザインにそのテーマが適用されます。<br />
<br />
== テーマの初期データ ==<br />
そのテーマで利用することを想定したページ情報を読み込んで、データを反映させることが出来ます。テーマ管理の「初期データ読込」ボタンで読み込みます。<br />
<br />
<br />
<br />
== テーマの編集 ==<br />
テーマ管理で、各テーマについているアイコンの中に「管理」アイコンがあります。クリックしてページを開くと、テーマに入っている各種ファイルを編集することができます。具体的なテーマの構造やカスタマイズについては、[[テーマガイド]]を参照してください。また、編集で利用できる関数については[[関数リファレンス]]を参照してください。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E5%88%B6%E4%BD%9C%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB
ver4/テーマ制作チュートリアル
2016-09-18T08:51:59Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] ## baserCMSのダウンロードとインストール ### サーバー環境について まずはサーバー環境の...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
## baserCMSのダウンロードとインストール<br />
<br />
### サーバー環境について<br />
まずはサーバー環境の準備をしましょう<br />
<br />
* レンタルサーバー・XAMPP・MAMP 等<br />
* ロリポップ!の簡単インストールや、ニフティクラウド C4SA のコンテキストなどを利用すると、baserCMS のインストールまでを数クリックで完了する事ができます。<br><br />
[[ファイル:server_env.png|350px]]<br />
<br />
<br />
### baserCMSのダウンロード<br />
baserCMS の公式サイトから最新版の baserCMS をダウンロードして解凍してください。<br />
<br />
* [http://basercms.net/download/index.html baserCMS コアパッケージダウンロード]<br />
<br />
### baserCMSのドキュメントルート<br />
[[ファイル:document_root.png]]</br><br />
<br />
baserCMS のパッケージを解凍し、中身をそのまま設置すると、静的ファイルを設置する「ドキュメントルート」が強制的に変更されます。 <br />
これは baserCMS のフレームワーク 「CakePHP」のセキュリティ上の仕様です。 <br />
HTML等の静的ファイルを配置する際は、 webroot フォルダの中に配置してください。 <br />
するとドキュメントルート配下に配置されたものとしてブラウザで参照する事ができます。 <br />
/app/webroot/test.html のように配置すると<br />
http://exapmle.com/test.html<br />
として参照できます。<br />
<br />
<br />
### アップロード&インストール<br />
1. 構成変更を終えたファイル群を全てサーバーにアップロードします。<br />
(XAMPP、MAMPの場合はドキュメントルートフォルダへコピーします。)<br />
2. アップロードが完了したら、トップページのURLにブラウザでアクセスしインストールをすすめます。<br />
3. データベースは環境に応じて任意のものを選択します。<br />
4. インストールが完了したらダッシュボードに移動し、動作を確認します。<br />
<br />
<br><br />
<br />
## テーマと表示の設定<br />
### テーマの変更<br />
[[ファイル:theme_change.png|350px]]</br><br />
theme/ フォルダの中に「corp」という名前でフォルダを作成し、サーバーにアップします。 <br />
管理システムから「テーマ管理」をクリックし、「corp」というテーマが表示されているのを確認します。(<span style="color:red;">この段階ではまだテーマを有効化しないでください</span>) <br />
《「Pages」フォルダに書き込み権限を与えて下さい。》というメッセージが出ているはずですので、/theme/corp/ 内にPagesフォルダを作成し書き込み権限を与えます。 <br />
その後、一番左の緑色のチェックマークをクリックしテーマを有効化します。<br />
<br />
<br />
### 公開サイトの表示を確認する<br />
[[ファイル:koukai_side.png|350px]]</br><br />
画面左上のサイト名部分をクリックすると公開サイドのトップページを表示できます。 <br />
現時点では、テーマフォルダ内にテンプレートが存在しないので、baserCMSコアパッケージのデザインが反映された状態となっています。<br />
<br />
<br />
### 事前にデバッグモードへ切り替える<br />
* baserCMSのページ機能は表示速度を少しでも改善する為、サーバーキャッシュ機能というものを利用している為、テンプレートをFTPにてアップロードした場合、表示が変わらない場合があります。<br />
* その場合、管理システムより「サーバーキャッシュの削除」を実行すると表示を更新する事ができます。 <br />
(システム管理>ユーティリティ> サーバーキャッシュ削除)<br />
* システム設定で、制作・開発モードをデバッグモードに変更すると、キャッシュは生成されなくなります。事前にデバッグモード1に切り替えてから制作を行うとキャッシュの削除が不要となり便利です。<br />
<span style="color:red;"><u>制作が完了したら必ずノーマルモードに戻しましょう。</u></span> <br />
(システム管理 > 下部「オプション」クリック後 > 制作・開発モード変更 > 保存ボタン)<br />
<br />
<br><br />
<br />
## テンプレートの作成<br />
### テンプレートの構成について<br />
<br />
[[ファイル:template_kousei.png|350px]]</br><br />
baserCMSのテンプレートは上図のようなテンプレートで構成されています。<br />
<br />
* レイアウト<br />
Webページの全体を構成するテンプレート。エレメントやコンテンツ出力部分を配置します 。<br />
* エレメント<br />
ヘッダーやフッター等Webページの部品となるテンプレート<br />
* コンテンツ<br />
CMSで管理するコンテンツ本体が出力されるエリア<br />
<u>上図はあくまで例であり、エレメントを利用せず、レイアウトとコンテンツのみ構成しても構いません。</u><br />
<br />
<br />
### レイアウトテンプレートの作成<br />
レイアウトテンプレートは、「Layouts」というフォルダ内に保存します。<br />
* <span style="color:red;">まずは、[http://basercms.net/files/uploads/html.zip こちら]からthemeフォルダに設置するhtmlファイルをダウンロードしてください。</span><br />
<br />
* テーマフォルダ(theme/corp/)内に「Layouts」というフォルダと「Elements」というフォルダを作成します。<br />
* 「Layouts」フォルダ内に「default.php」というファイルを作成します。(文字コードはUTF-8)<br />
* 「Elements」フォルダ内は今は空のままで問題ありません。<br />
* 添付しているhtmlフォルダ内のindex.htmlの内容をそのまま貼り付けて保存してください。<br />
<br />
### CSSと画像の配置<br />
* htmlフォルダ内のcssフォルダ、imgフォルダ、jsフォルダをテーマフォルダ(theme/corp/)内に配置します。 <br />
<u>この時点では、画像やCSS、Javascritpのリンクのパスが解決できていない為、リンク切れの状態となります。</u><br />
<br />
### 外部ファイルを参照するタグの書き換えについて<br />
* 配布を目的としたテーマとして作成する場合は、サブフォルダに設置される可能性もある為、A、IMG、CSS、JAVASCRIPTタグについて、自動的に適切なパスとなるよう、baserCMS用のタグに書き換える必要があります。<br />
* <u>配布を前提としない場合、通常のHTMLタグで記述されても構いません</u><br />
が、ヘッダーやフッターなどの共通部品は、違う階層のファイルから読み込まれる事があるので、スラッシュ(/)から始まる「ルートパス」で記述します。<br />
<br />
### CSSタグの書き換え<br />
CSSタグを次のコードに書き換えます。<br />
<br />
* cssフォルダからのパスで記述します。<br />
* cssフォルダ直下の場合は、ファイル名をそのまま書きます。<br />
* 拡張子は省略可能です。 <br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->css('style') ?><br />
</syntaxhighlight> <br />
二つ以上を一行で指定する場合は配列で指定します。 <br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->css(array('style', 'corp')) ?><br />
</syntaxhighlight> <br />
CSSタグでbaserCMSのタグを利用する理由は、パスを解決する為ですので、次のように themeUrlという関数を利用しても構いません。 <br />
<syntaxhighlight lang="php"><br />
<link rel="stylesheet" type="text/css" href="<?php $this->BcBaser->themeUrl() ?>css/style.css" /><br />
</syntaxhighlight><br />
<br />
<br />
### Javascriptタグの書き換え<br />
Javascriptタグを次のコードに書き換えます。<br />
<br />
* jsフォルダからのパスで記述します。<br />
* jsフォルダ直下の場合は、ファイル名をそのまま書きます。<br />
* 拡張子は省略可能です。 <br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->js('jquery-1.10.1.min') ?><br />
</syntaxhighlight> <br />
二つ以上を一行で指定する場合は配列で指定します。 <br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->js(array('jquery-1.10.1.min', 'corp')) ?><br />
</syntaxhighlight> <br />
JavascriptタグでbaserCMSのタグを利用する理由は、パスを解決する為ですので、次のように themeUrlという関数を利用しても構いません。<br />
<syntaxhighlight lang="php"><br />
<script type="text/javascript" src="<?php $this->BcBaser->themeUrl() ?>js/corp.js"></script><br />
</syntaxhighlight><br />
<br />
<br />
### IMGタグの書き換え<br />
レイアウトテンプレート内の各IMGタグを書き換えます。<br />
<br />
* URLは baserCMS設置場所のスラッシュから始まるルートパスで記述 <br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->link('[リンクテキスト]', '[URL]') ?><br />
</syntaxhighlight> <br />
(例)```<img src="img/img_about.gif" alt="ABOUT US イメージ" />``` の場合 <br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->img('img_about.gif', array('alt' => 'ABOUT US イメージ')); ?><br />
</syntaxhighlight> <br />
IMGタグでbaserCMSのタグを利用する理由は、パスを解決する為ですので、次のようにthemeUrl という関数を利用しても構いません。こちらの方が、一括置換処理を行いやすいです。 <br />
<syntaxhighlight lang="php"><br />
<img src="<?php $this->BcBaser->themeUrl() ?>img/img_about.gif" alt="ABOUT US イメージ" /><br />
</syntaxhighlight><br />
<br />
### Aタグの書き換え<br />
レイアウトテンプレート内の各Aタグを書き換えます。<br />
* URLは baserCMS設置場所のスラッシュから始まるルートパスで記述<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->link('[リンクテキスト]', '[URL]') ?><br />
</syntaxhighlight><br />
(例) ```<a href=“./about.html”>more</a>``` の場合<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->link('more', ‘/about.html') ?><br />
</syntaxhighlight><br />
AタグでbaserCMSのタグを利用する理由は、パスを解決する為ですので、次のようにbaseUrl という関数を利用しても構いません。こちらの方が、一括置換処理を行いやすいです。<br />
<syntaxhighlight lang="php"><br />
<a href="<?php$this->BcBaser->baseUrl() ?>about.html">more</a><br />
</syntaxhighlight><br />
<br />
<br />
### IMGタグをAタグで挟む場合<br />
IMGタグをAタグで挟む場合は次のように、urlオプションをつけます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->img('test.gif', array('url' => '/test')); ?><br />
</syntaxhighlight><br />
baseUrl関数とthemeUrl関数を合わせて利用しても構いません。<br />
<syntaxhighlight lang="php"><br />
<a href="<?php $this->BcBaser->baseUrl() ?>test”><br />
<img src="<?php $this->BcBaser->themeUrl() ?>test.gif" /><br />
</a><br />
</syntaxhighlight><br />
<br />
<br />
### ブラウザで一旦確認<br />
[[ファイル:browser_check.png|350px]]</br><br />
<br />
ここらへんで、一旦ブラウザ上でフロントの表示がどのようになっているかを確認しておきましょう。<br />
先ほどは、リンク切れした状態でしたが、 CSSや、Javascript、画像のパスがきちんと解決していれば、上図のように正常に画像等が表示され、スライダーが動作するはずです。<br />
<br />
### タイトル・メタタグの埋込<br />
* レイアウトファイル(default.php)のheadタグ内に次のタグを書き込みます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->title() ?><br />
</syntaxhighlight><br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->metaDescription() ?><br />
</syntaxhighlight><br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->metaKeywords() ?><br />
</syntaxhighlight><br />
<br />
<br />
### baser標準タグの埋込<br />
* baserCMSが用意している標準の機能を利用する為に次のタグを ```</head>```の前に埋め込みます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->scripts() ?><br />
</syntaxhighlight><br />
<br />
* 同じくbaserCMSが用意しているツールバーを利用する為に次のタグを ```</body>```の前に埋め込みます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->func() ?><br />
</syntaxhighlight><br />
<br />
<u>この時点でブラウザを確認すると画面上部にツールバーが表示されます。</u><br />
<br />
<br />
### ブラウザで一旦確認<br />
ここらへんで、一旦ブラウザ上でフロントの表示がどのようになっているかを確認しておきましょう。 <br />
PHPのエラーが発生していなければ問題ありません。リンクをクリックしても全てトップページになるはずです。 <br />
リモートのサーバーで確認している場合は、通常のWeb制作と同様、編集したファイルをその都度FTPでアップロードして確認します。<br />
<br />
### グローバルメニューの書き換え<br />
* グローバルメニューを管理画面で管理する為、ULタグの部分も含め次のタグで書き換えます。ヘッダー・フッターともに書き換えます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->globalMenu() ?><br />
</syntaxhighlight><br />
<br />
メニューを画像ファイルで作成されているような場合は、グローバルメニューエレメントの利用は特に有用ではありません。 <br />
<span style="color:red;"><u>管理機能が不要であれば、書き換える必要はありません。</u></span><br />
<br />
<br><br />
<br />
## コンテンツの登録・編集<br />
### indexページの登録<br />
* 管理システムにログインし、「固定ページ管理」より「index」ページ の編集画面を開きます。<br />
* 「本文」欄をソースビューに切り替え、htmlファイルのコンテンツ本 体部分のソースを貼り付けます。<br />
<br />
※今回のテーマであれば、```<*‒ Main Contents -->``` の記述がある<u>DIVタグ部分の中身</u>がコンテンツ本体となります。<br />
<br />
<br />
### コンテンツ部分の書き換え<br />
* コンテンツ出力タグとして次のタグを記述します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->content() ?><br />
</syntaxhighlight><br />
<br />
この部分に、管理システムより登録した、固定ページや、ブログ記事、<br />
メールフォーム等が表示されます。<br />
<br />
<br />
### 下層でトップメイン画像非表示<br />
下層ページではトップのメインイメージは不要ですので、トップのみ表示するというようにします。 [http://wiki.basercms.net/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/isHome $this->BcBaser->isHome関数] を利用します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php if ($this->BcBaser->isHome()): ?><br />
<div id="TopMain"><br />
<ul id="MainImage"><br />
:<br />
</ul><br />
</div><br />
<?php endif ?><br />
</syntaxhighlight><br />
<br />
<br />
### フィードの実装<br />
先程編集したindexページにフィード読み込みを実装します。<br />
管理システムのトップページ編集よりULタグ部分を次のタグで書き換えます。<br />
<br />
* News1・・・ブログデータより直接取得します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->blogPosts('[ブログコンテンツ名]', [表示件数]) ?><br />
</syntaxhighlight><br />
<small>※ 今回、ブログコンテンツ名には「news」と記述</small><br />
<br />
* News2・・・baserCMS公式サイトの情報をフィードで読み込みます。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->js(‘/feed/ajax/[フィード設定NO]’) ?><br />
</syntaxhighlight><br />
<small>※ 今回フィード設定NOには、1 と記述</small> <br />
<u>固定ページは、PHPタグの埋め込みが可能です。</u><br />
<br />
### ブログテンプレートのコピー<br />
トップページのブログ記事の読み込み部分について、日付とタイトルの間に改行が入ってしまっているので調整します。 <br />
baserCMSコアパッケージに対象テンプレートが存在するのですが、直接編集した場合、baserCMSのバージョンアップ時に先祖返りを起こしてしまうので、テーマフォルダーにコピーして編集します。<br />
<br />
* baserフォルダの次の場所よりブログポストテンプレートの雛形をコピーします。 <br />
<strong>lib/Baser/Plugins/Blog/View/Blog/default/posts.php</strong><br />
<br />
* 次の場所に配置します。 <br />
<strong>theme/corp/Blog/default/posts.php</strong> <br />
<br />
### ブログデザインのカスタマイズ<br />
* 先程コピーした posts.php をお題のデザインにあわせて編集します<br />
* SPAN タグを P タグに書き換えます。<br />
* 不要な ```<br />``` タグを消去します。<br />
* 完了したら保存してトップページの表示を確認します。<br />
<br />
### フィードテンプレートのコピー<br />
トップページのフィードの読み込み部分について、日付とタイトルの間に改行が入ってしまっているので調整します。 <br />
baserCMSコアパッケージに対象テンプレートが存在するのですが、直接編集した場合、baserCMSのバージョンアップ時に先祖返りを起こしてしまうので、テーマフォルダーにコピーして編集します。<br />
<br />
* baserフォルダの次の場所よりフィードテンプレートの雛形をコピーします。 <br />
<strong>lib/Baser/Plugin/Feed/View/Feed/default.php</strong><br />
* 次の場所に配置します。 <br />
<strong>theme/corp/Feed/default.php</strong><br />
<br />
### フィードデザインのカスタマイズ<br />
* 先程コピーした default.php をお題のデザインにあわせて編集します<br />
* SPAN タグを P タグに書き換えます。<br />
* 不要な <br /> タグを消去します。<br />
* 完了したらアップロードしてトップページの表示を確認します。<br />
<br />
### サイドバーコンテンツの読み込み<br />
ブログの最新記事一覧などのウィジェットが配置されているサイドバーを読み込みます。 <br />
サイドバーのABOUT US のDIVタグの後に次のタグを記述します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->widgetArea() ?><br />
</syntaxhighlight><br />
<br />
### コンテンツ名出力タグ埋込<br />
デザインの柔軟性を高めるよう、baserCMSがページごとに出力するコンテンツ名をbodyタグにID属性として埋め込みます。 <br />
Bodyタグを次のように書き換えます。<br />
<br />
<syntaxhighlight lang="php"><br />
<body id="<?php $this->BcBaser->contentsName() ?>"><br />
</syntaxhighlight><br />
<br />
固定ページのカテゴリごとに読み込むCSS設定を変更する場合などに有用です。<br />
<br />
<br><br />
<br />
## テーマの詳細設定<br />
### テーマ画像の配置<br />
ロゴとメインイメージは管理システムのテーマ設定より変更する事ができるようになっています。 <br />
メインイメージについては、カルーセル等に対応できるよう、5枚まで設定できるようになっています。 <br />
まずは、初期画像としてルールに則って画像が配置されている必要があります。<br />
<br />
* ロゴ - <strong>theme/corp/img/logo.(gif|jpg|png)</strong><br />
* メインイメージ - <strong>theme/corp/img/main_image_num.(gif|jpg|png)</strong><br />
<br />
※ numには1~5の番号が入ります。<br />
<br />
### テーマ画像の出力<br />
ロゴの出力箇所に下記のタグを記述します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->logo() ?><br />
</syntaxhighlight><br />
メインイメージの出力箇所に下記のタグを記述します。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->mainImage(array(‘all’ => true, ‘id’ => ’MainImage’)) ?><br />
</syntaxhighlight><br />
<br />
※ 第一引数に、次のオプションを配列で指定する事ができます。<br />
<br />
* num - 取得する画像の番号指定(省略時は1番目)<br />
* all - 全ての画像を取得するかどうか(リストタグで出力。省略時は false)<br />
* id - 全ての画像を取得する際に ul タグに付与する id 属性<br />
<br />
### テーマカラーの設定<br />
メインカラー、サブカラー、テキストリンク、 テキストホバーをテーマで定義しておくと、管理システムで変更できるようになります。 <br />
テーマカラーの設定は、テーマカラーとなるCSSを抜き出し、設定元CSSとして、次のファイルに記述します。<br />
<br />
<strong>theme/{テーマ名}/css/config.css</strong><br />
<br />
* MAIN ・・・メインカラー<br />
* SUB ・・・サブカラー<br />
* LINK ・・・テキストリンクカラー<br />
* HOVER ・・・テキストホバーカラー<br />
<br />
### テーマカラー設定ファイル例<br />
<br />
```<br />
body {<br />
background-color:MAIN!important;<br />
}<br />
#FooterGlobalMenu {<br />
background-color:SUB!important;<br />
}<br />
a:link{<br />
color:LINK!important;<br />
}<br />
a:hover{<br />
color:HOVER!important;<br />
}<br />
```<br />
<br />
### テーマカラー設定における注意事項<br />
* テーマ内のCSSを書き換えるのではなく、あくまで設定上書き用のCSSを作成し、両方を読み込むので、条件によっては上書きができない場合があります。 <br />
※ 設定用CSSのプロパティに important を付与する事で対応できます。<br />
* MAIN、SUBなど4つの設定について、全て埋め込む必要はなく、必要な設定だけ埋め込めば大丈夫です。<br />
* テーマカラーを設定した場合、$this->BcBaser->script() を記述した箇所にCSSを挿入しますので、上記関数の後にCSSを読み込まないようにしてください。<br />
<br />
<br><br />
<br />
## 初期データの設定<br />
### 初期データの用意<br />
データベース用の初期データをテーマで用意する事ができます。 <br />
管理システムで、メニューや、固定ページの内容を変更した後、その状態を初期データとしてテーマに梱包する事ができます。<br />
<br />
* 管理システムを開き、テーマ管理に移動します。<br />
* サブメニューの「テーマ用初期データダウンロード」をクリックします。<br />
<br />
これは、居酒屋テーマを作成したい等、baserCMSが最初から準備している初期データではテーマのコンセプト合わない場合に利用します。<span style="color:red;"><u>必要でなければ作業は不要です。</u></span><br />
<br />
### 初期データ配置<br />
ダウンロードしたデータは、下記フォルダに配置します。 <br />
<strong>theme/corp/Config/data/</strong> <br />
初期データは複数配置してテーマに梱包する事ができます。<br />
(例)<br />
デフォルト・・・<strong>theme/corp/Config/data/default/</strong><br />
パターンA・・・<strong>theme/corp/Config/data/pattern-a/</strong><br />
パターンB・・・<strong>theme/corp/Config/data/pattern-b/</strong><br />
<br />
### baserCMSのリセットと、初期データのインストール<br />
インストール前に初期データを梱包したテーマを配置しておくと、インストールステップ3や、テーマ管理で、選択できるようになります。 <br />
baserCMSをリセットしてテストしてみるとよいでしょう。 <br />
リセットするには、制作・開発モードをインストールモードに変更し、次のURLにブラウザでアクセスします。 <br />
<strong>http://[baserCMSの設置場所]/installations/reset</strong><br />
<br />
### 動作を確認する<br />
最後に、動作に問題がないかフロントページを確認します。このように、baserCMSは柔軟にデザインのカスタマイズを行う事ができます。 <br />
もう少し詳しく知りたい方は、公式サイトの情報も参考にしてください。わらかない事があったら[http://forum.basercms.net フォーラム]で質問してみましょう。 <br />
<br />
なお、今回のお手本となったテーマが次のURLよりダウンロードできます。[http://barket.jp/products/detail.php?product_id=14 こちら]も確認してみてください。<br />
<br />
<br><br />
<br />
## その他<br />
### 他にもいろいろ機能があります<br />
* 制作者向け機能の詳細は下記URLの「制作者向け機能一覧」を御覧ください <br />
<br />
[http://basercms.net/about/feature.html 制作者向け機能一覧]<br />
<br />
### マニュアル、質問先はこちら<br />
* [http://basercms.net/manuals/3/index baserCMS公式マニュアル]<br />
* [http://wiki.basercms.net/ baserCMS公式ガイド]<br />
* [http://goo.gl/skaVyE 関数リファレンス]<br />
* [http://forum.basercms.net/ baserCMSユーザーズフォーラム]<br />
* [http://www.facebook.com/groups/basercms.zatsudan/ baserCMSの雑談広場(Facebook)]<br />
* [http://api.basercms.net/ APIドキュメント]<br />
<br />
[[ファイル:bessy.png|250px]]<br />
<br />
</br><br />
Copyright 2016 baserCMS All rights reserved</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E3%82%AC%E3%82%A4%E3%83%89
ver4/テーマガイド
2016-09-18T08:51:16Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] <metadesc>baserCMSのテーマの編集や制作に役立つ情報を掲載しています。</metadesc> テーマの編...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
<metadesc>baserCMSのテーマの編集や制作に役立つ情報を掲載しています。</metadesc><br />
テーマの編集や制作に役立つ情報を掲載しています。(管理画面におけるテーマ管理については「[[テーマ管理]]」を参照してください。)<br />
<br />
<br />
<br />
== テーマの概要 ==<br />
*[[BaserCMSのテーマ|baserCMSのテーマ]] -テーマの概要について記載しています。<br />
<br />
<br />
<br />
== 編集・カスタマイズ ==<br />
テーマを編集・カスタマイズするために役立つ情報を掲載しています。(テーマで利用できる関数については「[[関数リファレンス]]」を参照してください。)<br/><br />
*[[テーマ制作チュートリアル]]<br />
<br />
=== 全体 ===<br />
*[[テーマに関する用語]] -テーマに関する用語の説明を行なっています。<br />
*[[テーマの構造]] -テーマの構造について記載しています。<br />
*[[テーマのデザイン編集]] -デザインやレイアウトを編集する為に必要な情報を記載しています。<br />
<br />
<br />
<br />
=== 部分別 ===<br />
*[[ブログのデザイン編集]] -ブログ部分のデザイン変更に必要な情報を記載しています。<br />
*[[メールフォームのデザイン編集]] -メールフォーム部分のデザイン変更に必要な情報を記載しています。<br />
*[[フィードのデザイン編集]] -ブログ部分のデザイン変更に必要な情報を記載しています。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''<br />
[[Category:開発ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%A6%E3%82%82%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84
ver4/テーマを更新しても反映されない
2016-09-18T08:50:30Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSにはサーバーキャッシュの機能があります。この機能が意図せず更新前の情報を...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSには[[サーバーキャッシュ]]の機能があります。この機能が意図せず更新前の情報を表示させている事があります。<br />
<br />
##サーバーキャッシュの削除<br />
管理画面からシステム管理に入ってください。「ユーティリティ」の中にある「サーバーキャッシュ削除」を実行します。なお、サーバーキャッシュの削除は、管理画面の右上にある「システムナビ」内にも含まれていますので、そちらから実行することも出来ます。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E6%A7%8B%E9%80%A0
ver4/テーマの構造
2016-09-18T08:49:55Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのテーマファイルは、共通したフォルダ構造を持ちます。ファイル名については、...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのテーマファイルは、共通したフォルダ構造を持ちます。ファイル名については、個別のテーマで異なる部分もありますが、基幹部分はむしろ共通しています。<br />
(テーマに関する用語については「[[テーマに関する用語]]」を参照して下さい。)<br />
<br />
また、フォルダ構造はVer.2系統とVer.3系統との間で、若干の違いがあります。<br />
<br />
<br />
== Ver.3系統のフォルダ構造 ==<br />
テーマのフォルダ構造は以下のようになっています。それぞれ個別のファイル、フォルダについての詳細は後述しています。<br />
<pre><br />
/テーマフォルダ/<br />
|-/Blog/ ・・・ブログプラグイン部分に関わるファイル群が入ります。<br />
|-/Config/ ・・・テーマブートストラップの為のファイルや、テーマの初期データ群が入ります。<br />
|-/css/ ・・・CSSファイルが入ります。<br />
|-/Elements/ ・・・エレメントファイルが入ります。<br />
|-/Feed/ ・・・フィードプラグイン部分に関わるファイル群が入ります。<br />
|-/Helpers/ ・・・テーマ内で利用できるヘルパーやフックのためのファイルが入ります。<br />
|-/img/ ・・・画像ファイルが入ります。<br />
|-/js/ ・・・javascriptファイルが入ります。<br />
|-/Layouts/ ・・・レイアウトテンプレートが入ります。<br />
|-/Mail/ ・・・メールプラグイン部分に関わるファイル群が入ります。<br />
|-/Pages/ ・・・固定ページファイルが入ります。<br />
|-VERSION.txt ・・・テーマのバージョン情報ファイル。<br />
|-config.php ・・・テーマの各種情報ファイル。<br />
|-screenshot.png ・・・管理画面で表示するスクリーンショット画像。<br />
</pre><br />
<br />
=== Blogフォルダ ===<br />
このフォルダにはブログプラグインで利用されるファイル群が入っています。通常はブログで利用する[[テーマに関する用語#コンテンツテンプレート|コンテンツテンプレート]]が入っており、'''defaultフォルダ'''がそのままデフォルトのコンテンツテンプレートになります。<br />
<br />
ブログのコンテンツテンプレートでは、以下の4つファイルが使用でき、これらのファイルを編集することで、各部のデザインを変更する事が出来ます。<br />
*index.php ・・・ブログのトップページ用<br />
*single.php ・・・個別の記事表示用<br />
*archives.php ・・・記事の一覧表示用<br />
*posts.php ・・・サイトのトップページ等からブログ記事一覧を呼び出した際の表示用<br />
(なお具体的な編集については「[[ブログのデザイン編集]]」を参照してください。)<br />
<br />
また、コンテンツテンプレートの他、ブログプラグインで利用する為のビューファイルも入れることができます。<br />
<br />
<br />
=== Configフォルダ ===<br />
テーマに同封する初期データを入れたり、[[テーマに関する用語#テーマブートストラップ|テーマブートストラップ]]を利用して、テーマ内で利用する関数や定数の設定、cakePHPの[http://book.cakephp.org/2.0/en/The-Manual/Developing-with-CakePHP/Configuration.html Configreクラス]を使う事ができます。テーマブートストラップについては、このフォルダ内に「bootstrap.php」という名前のファイルを作成し、通常のPHPの文法で関数や定数を定義できます。<br />
<br />
また、以下のフォルダとファイルを作る事によって、テーマのインストール時に展開される初期データを同封できます。初期データはCSVで入れておきます。なお、初期データの自動生成については、「[[テーマ管理]]」を参照して下さい。<br />
<br />
<pre><br />
/app/webroot/theme/(テーマのフォルダ)/Config/data/<br />
</pre><br />
<br />
<br />
=== cssフォルダ ===<br />
テーマ内で利用するCSSファイルを入れておきます。ここに含まれるCSSの記述は一般的なものと特に相違ありませんが、背景画像などを指定する際は以下のような注意が必要です。ここに入れられたCSSファイルは、<code>$this->BcBaser->css()</code>で呼び出すことが出来ます。<br />
<br />
テーマ内で使われる画像は「imgフォルダ」(後述)に入れることになります。通常のページ編集においては、画像は関数「[[関数リファレンス/img|img()]]」を利用して表示させることで、スマートURLをはじめ、ルーティングの問題に対応していますが、CSS内では関数が使えない為、テーマ内の画像を利用する際には、常に以下のような相対パスで記述を行う必要があります。<br />
<br />
<pre><br />
background-image: url("../img/hogehoge.jpg");<br />
</pre><br />
<br />
<br />
=== Elementsフォルダ ===<br />
[[テーマに関する用語#エレメントファイル|エレメントファイル]]を入れておくためのフォルダです。このフォルダに入れられたファイルは、<code>$this->BcBaser->elements()</code>で呼び出すことが出来ます。<br />
<br />
<br />
=== Feedフォルダ ===<br />
baserCMSに同封されるフィードプラグインに関するファイルが入ります。具体的には、フィードプラグインで読み込んだRSSフィードを、実際の画面上でどのように表示させるか、そのデザインやレイアウトを「テンプレート」として記述します。テンプレート名は「default.php」とすれば、デフォルトでこのテンプレートが利用されます。複数のテンプレートを設置した場合、管理画面の[[フィードプラグイン管理]]から使用するテンプレートを選択できます。<br />
<br />
<br />
=== Helpersフォルダ ===<br />
[[テーマに関する用語#テーマヘルパー|テーマヘルパー]]を使う為のフォルダで、ヘルパーファイルが入ります。ここに含まれたヘルパーはテーマ内から呼び出すことができます。<br />
<br />
=== imgフォルダ ===<br />
テーマで利用する画像が入るフォルダです。ここに入れた画像は<code>$this->BcBaser->img()</code>で呼び出す事ができます。<br />
<br />
<br />
=== jsフォルダ ===<br />
テーマで利用するjavascriptファイルが入るフォルダです。ここに入れたjsファイルは<code>$this->BcBaser->js()</code>で呼び出す事ができます。<br />
<br />
<br />
=== Layoutsフォルダ ===<br />
テーマで利用する[[テーマに関する用語#レイアウトテンプレート|レイアウトテンプレート]]を入れるフォルダです。「default.php」というファイルを作ると、それがこのテーマのデフォルトテンプレートとして利用されます。ただし、モバイル用のレイアウトは「mobile」というフォルダを作って、その中に入れます。スマートフォン用のレイアウトは「smartphone」というフォルダを作ってその中に入れます。<br />
<br />
<br />
=== Mailフォルダ ===<br />
baserCMSに同封される「メールプラグイン」のデザイン・レイアウトに関するファイルが入っています。通常はメールプラグインで利用する[[テーマに関する用語#コンテンツテンプレート|コンテンツテンプレート]]が入っています。<br />
<br />
メールプラグインで利用できるコンテンツテンプレートのファイルは以下の3つです。<br />
*index.php ・・・メールフォームの画面用。<br />
*confirm.php ・・・送信前の確認画面用。<br />
*submit.php ・・・送信後の送信完了画面用。<br />
<br />
なお、コンテンツテンプレートの他にメールプラグインで利用する為のビューファイルも入れることができます。<br />
<br />
<br />
=== Pagesフォルダ ===<br />
固定ページ管理で作成されたデータが保存されます。逆に、ここに作成された固定ページ用のデータを管理画面から読み込む事もできます。<br />
<br />
また、固定カテゴリ管理で指定できる固定ページカテゴリのコンテンツテンプレートの設置もこのフォルダです。具体的には「templates」フォルダを用意して、その中にコンテンツテンプレートを含めます。<br />
<pre><br />
/app/webroot/theme/(お使いのテーマ)/Pages/templates/<br />
</pre><br />
<br />
<br />
=== VERSION.txt ===<br />
テーマのバージョン情報を記載したテキストファイルです。一行目が読み込まれます。<br />
<br />
<br />
=== config.php ===<br />
テーマ名や説明文、作成者、作成者のURLを記載します。ここに記載された情報が、管理画面のテーマ管理上で表示されます。<br />
<source lang="php"><br />
<?php<br />
$title = 'baserCMS Wiki テーマ';<br />
$description = '非公式Wikiの専用テーマです。';<br />
$author = 'goichi';<br />
$url = 'http://wiki.bmani-lab.com/';<br />
?><br />
</source ><br />
<br />
<br />
=== screenshot.png ===<br />
テーマ管理で表示されるスクリーンショット画像です。PING画像を300px×240pxで作成します。<br />
<br />
<br />
== Ver.2系統のフォルダ構造 ==<br />
テーマのフォルダ構造は以下のようになっています。それぞれ個別のファイル、フォルダについての詳細は後述しています。<br />
<pre><br />
/テーマフォルダ/<br />
|-/blog/ ・・・ブログプラグイン部分に関わるファイル群が入ります。<br />
|-/config/ ・・・テーマブートストラップの為のファイルや、テーマの初期データ群が入ります。<br />
|-/css/ ・・・CSSファイルが入ります。<br />
|-/elements/ ・・・エレメントファイルが入ります。<br />
|-/feed/ ・・・フィードプラグイン部分に関わるファイル群が入ります。<br />
|-/helpers/ ・・・テーマ内で利用できるヘルパーやフックのためのファイルが入ります。<br />
|-/img/ ・・・画像ファイルが入ります。<br />
|-/js/ ・・・javascriptファイルが入ります。<br />
|-/layouts/ ・・・レイアウトテンプレートが入ります。<br />
|-/mail/ ・・・メールプラグイン部分に関わるファイル群が入ります。<br />
|-/pages/ ・・・固定ページファイルが入ります。<br />
|-VERSION.txt ・・・テーマのバージョン情報ファイル。<br />
|-config.php ・・・テーマの各種情報ファイル。<br />
|-screenshot.png ・・・管理画面で表示するスクリーンショット画像。<br />
</pre><br />
<br />
=== blogフォルダ ===<br />
このフォルダにはブログプラグインで利用されるファイル群が入っています。通常はブログで利用する[[テーマに関する用語#コンテンツテンプレート|コンテンツテンプレート]]が入っており、'''defaultフォルダ'''がそのままデフォルトのコンテンツテンプレートになります。<br />
<br />
ブログのコンテンツテンプレートでは、以下の4つファイルが使用でき、これらのファイルを編集することで、各部のデザインを変更する事が出来ます。<br />
*index.php ・・・ブログのトップページ用<br />
*single.php ・・・個別の記事表示用<br />
*archives.php ・・・記事の一覧表示用<br />
*posts.php ・・・サイトのトップページ等からブログ記事一覧を呼び出した際の表示用<br />
(なお具体的な編集については「[[ブログのデザイン編集]]」を参照してください。)<br />
<br />
また、コンテンツテンプレートの他、ブログプラグインで利用する為のビューファイルも入れることができます。<br />
<br />
<br />
=== configフォルダ ===<br />
テーマに同封する初期データを入れたり、[[テーマに関する用語#テーマブートストラップ|テーマブートストラップ]]を利用して、テーマ内で利用する関数や定数の設定、cakePHPの[http://book.cakephp.org/1.2/en/The-Manual/Developing-with-CakePHP/Configuration.html Configreクラス]を使う事ができます。テーマブートストラップについては、このフォルダ内に「bootstrap.php」という名前のファイルを作成し、通常のPHPの文法で関数や定数を定義できます。<br />
<br />
また、以下のフォルダとファイルを作る事によって、テーマのインストール時に展開される初期データを同封できます。初期データはCSVで入れておきます。なお、初期データの自動生成については、「[[テーマ管理]]」を参照して下さい。<br />
<br />
<pre><br />
/app/webroot/themed/(テーマのフォルダ)/config/data/<br />
</pre><br />
<br />
<br />
=== cssフォルダ ===<br />
テーマ内で利用するCSSファイルを入れておきます。ここに含まれるCSSの記述は一般的なものと特に相違ありませんが、背景画像などを指定する際は以下のような注意が必要です。<br />
<br />
テーマ内で使われる画像は「imgフォルダ」(後述)に入れることになります。通常のページ編集においては、画像は[[画像を表示する|$bcBaser-&gt;img();]]を利用して表示させることで、スマートURLをはじめ、ルーティングの問題に対応していますが、CSS内では関数が使えない為、テーマ内の画像を利用する際には、常に以下のような相対パスで記述を行う必要があります。<br />
<br />
<pre><br />
background-image: url("../img/hogehoge.jpg");<br />
</pre><br />
<br />
<br />
=== elementsフォルダ ===<br />
[[テーマに関する用語#エレメントファイル|エレメントファイル]]を入れておくためのフォルダです。このフォルダに入れられたファイルは、[[エレメントを呼び出す|$bcBaser-&gt;element();]]で呼び出すことが出来ます。<br />
<br />
<br />
=== feedフォルダ ===<br />
baserCMSに同封されるフィードプラグインに関するファイルが入ります。具体的には、フィードプラグインで読み込んだRSSフィードを、実際の画面上でどのように表示させるか、そのデザインやレイアウトを「テンプレート」として記述します。テンプレート名は「default.php」とすれば、デフォルトでこのテンプレートが利用されます。複数のテンプレートを設置した場合、管理画面の[[フィードプラグイン管理]]から使用するテンプレートを選択できます。<br />
<br />
<br />
=== helpersフォルダ ===<br />
[[テーマに関する用語#テーマヘルパー|テーマヘルパー]]を使う為のフォルダで、ヘルパーファイルが入ります。ここに含まれたヘルパーはテーマ内から呼び出すことができます。<br />
<br />
また、[[テーマに関する用語#テーマフック|テーマフック]]を利用する為のファイルも、このフォルダに入れます。その場合、ファイル名は「(テーマ名)_hook.php」とします。<br />
<br />
<br />
<br />
=== imgフォルダ ===<br />
テーマで利用する画像が入るフォルダです。ここに入れた画像は[[画像を挿入する|$bcBaser-&gt;img();]]で呼び出す事ができます。<br />
<br />
<br />
=== jsフォルダ ===<br />
テーマで利用するjavascriptファイルが入るフォルダです。ここに入れたjsファイルは[[javascriptを読み込む|$bcBaser-&gt;js();]]で呼び出す事ができます。<br />
<br />
<br />
=== layoutsフォルダ ===<br />
テーマで利用する[[テーマに関する用語#レイアウトテンプレート|レイアウトテンプレート]]を入れるフォルダです。「default.php」というファイルを作ると、それがこのテーマのデフォルトテンプレートとして利用されます。ただし、モバイル用のレイアウトは「mobile」というフォルダを作って、その中に入れます。スマートフォン用のレイアウトは「smartphone」というフォルダを作ってその中に入れます。<br />
<br />
<br />
<br />
=== mailフォルダ ===<br />
baserCMSに同封される「メールプラグイン」のデザイン・レイアウトに関するファイルが入っています。通常はメールプラグインで利用する[[テーマに関する用語#コンテンツテンプレート|コンテンツテンプレート]]が入っています。<br />
<br />
メールプラグインで利用できるコンテンツテンプレートのファイルは以下の3つです。<br />
*index.php ・・・メールフォームの画面用。<br />
*confirm.php ・・・送信前の確認画面用。<br />
*submit.php ・・・送信後の送信完了画面用。<br />
<br />
なお、コンテンツテンプレートの他にメールプラグインで利用する為のビューファイルも入れることができます。<br />
<br />
<br />
=== pagesフォルダ ===<br />
固定ページ管理で作成されたデータが保存されます。逆に、ここに作成された固定ページ用のデータを管理画面から読み込む事もできます。<br />
<br />
また、固定カテゴリ管理で指定できる固定ページカテゴリのコンテンツテンプレートの設置もこのフォルダです。具体的には「templates」フォルダを用意して、その中にコンテンツテンプレートを含めます。<br />
<pre><br />
/app/webroot/pages/templates/<br />
</pre><br />
<br />
<br />
=== VERSION.txt ===<br />
テーマのバージョン情報を記載したテキストファイルです。一行目が読み込まれます。<br />
<br />
<br />
=== config.php ===<br />
テーマ名や説明文、作成者、作成者のURLを記載します。ここに記載された情報が、管理画面のテーマ管理上で表示されます。<br />
<source lang="php"><br />
<?php<br />
$title = 'baserCMS Wiki テーマ';<br />
$description = '非公式Wikiの専用テーマです。';<br />
$author = 'goichi';<br />
$url = 'http://wiki.bmani-lab.com/';<br />
?><br />
</source ><br />
<br />
<br />
=== screenshot.png ===<br />
テーマ管理で表示されるスクリーンショット画像です。PING画像を300px×240pxで作成します。<br />
<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E5%8F%96%E3%82%8A%E3%81%9F%E3%81%84
ver4/テーマのバックアップを取りたい
2016-09-18T08:48:54Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのテーマはファイルで管理されていますので、管理画面から編集した情報(作成し...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのテーマはファイルで管理されていますので、管理画面から編集した情報(作成した固定ページを含む)は、FTP等でサーバーにアクセスし、テーマフォルダごとダウンロードすることでバックアップできます。<br />
<br />
##テーマフォルダの位置<br />
baserCMSのテーマは以下の場所に保存されています。<br />
/app/webroot/theme/<br />
バックアプしたいテーマをフォルダごとダウンロードしてください。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E7%B7%A8%E9%9B%86
ver4/テーマのデザイン編集
2016-09-18T08:47:55Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] テーマのデザインやレイアウトを変更する上で役立つ情報を掲載しています。(なお、こ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
テーマのデザインやレイアウトを変更する上で役立つ情報を掲載しています。(なお、ここに記載されている関数の詳細は「[[関数リファレンス]]」を参照してください)<br />
<br />
<br />
<br />
== テーマの場所 ==<br />
テーマは以下の場所に入っています。新たにダウンロードした場合は、以下の場所にいれることで管理画面が自動的に認識します。なおテーマに内包される各種フォルダとファイルの詳細は「[[テーマの構造]]」を参照してください。<br />
<br />
###Ver.3系統<br />
<pre><br />
/app/webroot/theme/<br />
</pre><br />
<br />
###Ver.2系統<br />
<pre><br />
/app/webroot/themed/<br />
</pre><br />
<br />
<br />
== HTMLはレイアウトテンプレートに記述 ==<br />
[[テーマに関する用語#レイアウトテンプレート|レイアウトテンプレート]]で調整します。(レイアウトテンプレートの設置については「[[テーマの構造#layoutsフォルダ|layoutsフォルダ]]」を参照してください。) <br />
<br />
レイアウトテンプレートと[[テーマに関する用語#エレメントファイル|エレメントファイル]]等との関係をイメージ図で示すと以下のようになります。<br />
<br />
<br />
レイアウトテンプレートに記述出来る内容を、わざわざ別ファイルにしてエレメントファイル化するのは、主に保守性やソースの可視性を高める為ですので、エレメントファイル化せずに全てをレイアウトテンプレート内に書き込む事もできます。なお、エレメントファイルの設置場所については「[[テーマの構造#elementsフォルダ|elementsフォルダ]]」を参照してください。<br />
<br />
ヘッダー部分のエレメントファイルと、フッター部分のエレメントファイルについては、それぞれ「header.php」「footer.php」という名前でエレメント化しておくと、これらを読み込む為の特別な関数<code>$this->BcBaser->header()</code>(Ver.2系統では<code>$bcBaser-&gt;header()</code>)と<code>$this->BcBaser->footer()</code>(Ver.2系統では<code>$bcBaser-&gt;footer()</code>)が使えるようになります。通常の<code>$this->BcBaser->element('header')</code>(Ver.2系統では<code>$bcBaser-&gt;element(’header’)</code>)や<code>$this->BcBaser->element('footer')</code>(Ver.2系統では<code>$bcBaser-&gt;element(’footer’)</code>)を使っても呼び出せますが、<code>$this->BcBaser-&gt;header()</code>や<code>$this->BcBaser-&gt;footer()</code>を使う場合、そこに[[テーマに関する用語#テーマフック|テーマフック]]を利用できます。<br />
<br />
<br />
<br />
=== モバイル・スマートフォンのレイアウトテンプレート ===<br />
記述の方法は基本的に変わりません。ただし、設置場所にルールが存在します。以下の場所に設置してください。<br />
<br />
####Ver.3系統<br />
<pre><br />
(モバイル)<br />
/app/webroot/theme/(テーマのフォルダ)/Layouts/mobile/<br />
(スマートフォン)<br />
/app/webroot/theme/(テーマのフォルダ)/Layouts/smartphone/<br />
</pre><br />
<br />
<br />
####Ver.2系統<br />
<pre><br />
(モバイル)<br />
/app/webroot/themed/(テーマのフォルダ)/layouts/mobile/<br />
(スマートフォン)<br />
/app/webroot/themed/(テーマのフォルダ)/layouts/smartphone/<br />
</pre><br />
<br />
<br />
== 画像、CSS、JSファイルの読み込み ==<br />
baserCMSではテーマを利用した際、画像やCSS、JSファイルの設置階層が深くなってしまいます。また、スマートURLの有無など、ルーティングの関係もあり、通常のHTMLタグでの読み込みが煩雑で面倒です。そこでテーマ作成・編集の場面において、それらのファイルを読み込む場合には、一般的にヘルパー(表示用のビューファイルで使われる関数)を利用します。<br />
<br />
画像の読み込みは<code>$this->BcBaser->img()</code>(Ver.2系統では<code>$bcBaser->img()</code>)、CSSは<code>$this->BcBaser->css()</code>(Ver.2系統では<code>$bcBaser->css()</code>)、JSファイルは<code>$this->BcBaser->js()</code>(Ver.2系統では<code>$bcBaser->js()</code>)を利用します。なお、各ファイルの設置場所については、[[テーマの構造]]を参照してください。<br />
<br />
<br />
<br />
<br />
==ウィジェットエリア ==<br />
[[ウィジェットエリア管理]]で管理できるウィジェットのレイアウトを変更する必要が有る場合、CSSのみで対応できるならば問題ありませんが、出力されるHTMLを変更する場合、baserCMSのコアフォルダからテーマ内の所定の場所に、ウィジェット用のビューファイルをコピーして、それを変更する事ができます。ファイルをコピーすることで、別々の場所に同機能の同名ファイルができますが、テーマフォルダ内のファイルが優先して読み込まれます。<br />
<br />
ウィジェット用のファイルは、もともと以下のフォルダに入っています。<br />
<br />
####Ver.3系統でのウィジェット配置場所<br />
<pre><br />
/lib/Baser/Views/Elements/widgets/<br />
</pre><br />
<br />
####Ver.2系統でのウィジェット配置場所<br />
<pre><br />
/baser/views/elements/widgets/<br />
</pre><br />
<br />
<br />
変更が必要なフォルダとファイルを、以下にコピーします。<br />
<br />
####Ver.3系統でのコピー先<br />
<pre><br />
/app/webroot/theme/(テーマのフォルダ)/Elements/widgets/<br />
</pre><br />
<br />
####Ver.2系統でのコピー先<br />
<pre><br />
/app/webroot/themed/(テーマのフォルダ)/elements/widgets/<br />
</pre><br />
<br />
なお、blogなどのプラグインに依存するウィジェット(月別アーカイブ一覧など)の変更は<br />
<br />
####Ver.3系統でのプラグインウィジェット<br />
<pre><br />
/app/webroot/theme/(テーマのフォルダ)/(プラグイン名)/Views/Elements/widgets/<br />
</pre><br />
<br />
####Ver.2系統でのプラグインウィジェット<br />
<pre><br />
/app/webroot/themed/(テーマのフォルダ)/(プラグイン名)/views/elements/widgets/<br />
</pre><br />
に変更対象ファイルを入れて編集します。<br />
<br />
<br />
<br />
== 変更をブラウザで確認する ==<br />
<br />
===サーバーキャッシュ===<br />
[[サーバーキャッシュ]]が残っていると、変更点が反映されないことがあります。その場合は、システム管理からサーバーキャッシュの削除を行います。<br />
<br />
なお、サーバーキャッシュは管理画面にログインしているユーザーは使用しないようになっていますので、最新のページが見えるはずです。しかし、そのせいでサーバーキャッシュが残っていることをサイト管理者や制作者が気が付かず、一般ユーザーは古い情報を見ている、という可能性も考えられます。変更をしたらサイバーキャッシュを削除することに注意してください。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E7%B7%A8%E9%9B%86%E3%81%AF%E3%81%98%E3%82%81%E3%81%AE%E4%B8%80%E6%AD%A9
ver4/テンプレート編集はじめの一歩
2016-09-18T08:46:42Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] 「テンプレート編集はじめの一歩」は、baserCMS初心者向けのテンプレート逆引きリファレ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
「テンプレート編集はじめの一歩」は、baserCMS初心者向けのテンプレート逆引きリファレンスとなっています。<br><br />
テーマ「nada-icon」を例にとって、テンプレートのどこを触ればいいのかを説明していきたいと思います。<br />
<br />
<br />
<br />
<br />
## 全体的なレイアウトの調整を行いたい<br />
### 全体のレイアウト<br />
まずはテーマの全体レイアウトについて説明していきます。<br><br />
レイアウト、エレメント、コンテンツの関係について理解してから、各エレメントやブログ、メールフォームの変更を進めていくことをおすすめします。<br />
<br />
テーマ「nada icons」の場合、全体のレイアウトテンプレートファイルはLayoutフォルダ内のdefault.phpとなっています。<br><br />
(/app/webroot/theme/nada-icons/Layouts/default.php)<br><br />
スタイルシート、画像はそれぞれLayoutsフォルダと並んでいるcssフォルダ、imgフォルダに格納されています。<br />
<br />
このレイアウトテンプレートによって、エレメント(ヘッダー、フッター、サイドバーなどのWEBページの部品となるテンプレート)とコンテンツ本体(管理画面で入力した固定ページやブログなどが出力されるエリア)の配置場所を決めています。<br />
<br />
[[ファイル:template_kousei.png|350px]]<br />
<br />
よって、「nada icons」でエレメントとコンテンツの配置を変えたい場合には、default.php を変更します。<br />
<br />
#### nada-icon の全体レイアウトとエレメントマップです。<br />
<br />
##### トップページの場合<br />
<br />
[[ファイル:all_layouts.png|400px]]<br />
<br />
##### 「会社案内」ページの場合<br><br />
default.phpの<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->content() ?><br />
</syntaxhighlight><br />
において、管理画面の「固定ページ管理」の「固定ページ一覧」にある「会社案内(about)」が表示されています。<br><br />
この「会社案内(about)」のファイルは<br><br />
(/app/webroot/theme/nada-icons/Pages/) 以下<br><br />
about.phpに存在します。<br />
<br />
[[ファイル:all_layouts_about.png|400px]]<br />
<br />
### 各エレメント・コンテンツテンプレートの変更について<br />
このようにnada-iconではヘッダーやサイドボックス、コンテンツ本体などが部品化されています。<br><br />
その中で例えばヘッダーに変更を加えたい場合、<br><br />
default.phpに[http://wiki.basercms.net/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/header ヘッダーテンプレートを出力する関数]である<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->header() ?><br />
</syntaxhighlight><br />
<br />
が記述されていれば、ヘッダーはdefault.phpに直接記述されているわけではなくエレメントとして部品化されている事がわかります。<br />
<br />
よって、<br />
(/app/webroot/theme/nada-icons/Elements/) 以下<br><br />
header.phpにヘッダーの変更を加えていく流れとなります。<br />
<br />
* レイアウトテンプレートの制作やエレメントテンプレートとしての部品化については[http://wiki.basercms.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E4%BD%9C テンプレート制作]も参考にしてみてください。<br />
<br />
* baserCMSの関数については[http://wiki.basercms.net/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9 関数リファレンス]を御覧ください。<br />
<br />
### スタイルシート、画像の編集、追加について<br />
スタイルシート、画像はそれぞれLayoutsフォルダと並んでいるcssフォルダ、imgフォルダに格納されていますので、<br />
こちらのデータを編集します。<br><br />
新しくスタイルシートや画像をレイアウトファイルに読み込む場合は[http://wiki.basercms.net/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/css cssを読み込む関数]や[http://wiki.basercms.net/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/img 画像を出力する関数]を使用します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->css(cssファイルパス) ?><br />
<?php $this->BcBaser->img(画像ファイルパス,幅や高さ等のオプション値) ?><br />
</syntaxhighlight><br />
<br />
<br />
### 参考資料<br />
* [http://wiki.basercms.net/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E6%A7%8B%E9%80%A0 テーマファイルの構造について]<br />
* [http://wiki.basercms.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 Webページの構成について]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E4%BD%9C
ver4/テンプレート制作
2016-09-18T08:44:35Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMSのテンプレートを作成するには、次の手順に従って作業を行います。 ## テーマフ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMSのテンプレートを作成するには、次の手順に従って作業を行います。<br />
<br />
<br />
## テーマフォルダを作成する<br />
<br />
まず、任意のテーマ名を決めて指定の場所にフォルダを作成し、そのフォルダをテンプレートを配置する「テーマフォルダ」とします。その中にテンプレートを作成していきます。CSSや画象、Javascriptも同じフォルダ内に配置します。<br />
<br />
<pre><br />
{baserCMSの設置フォルダ}/app/webroot/theme/{テーマ名}/<br />
</pre><br />
<br />
<small>※ テーマ名は、アルファベット(アンダースコアも可)で決めてください。</small><br />
<br />
**<span style="color:red">あらかじめ作成したテーマのフォルダをFTPでアップロードしておきます。(中身は空のままでかまいません)</span>**<br />
<br />
## テーマの設定を変更する<br />
<br />
* 管理画面にログインします。<br />
* メインメニューの「テーマ管理」をクリックします。<br />
* FTPでアップロードしたテーマが一覧に表示されていますので、選択ボタンをクリックし、テーマを選択します。<br />
<br />
## HTMLファイルを作成する<br />
<br />
通常の制作どおり、1ページの HTMLファイルを作成します。<br />
<br />
(例)HTMLファイル<br />
<br />
<syntaxhighlight lang="html5"><br />
<html><br />
<head><br />
<title><!-- タイトルを記述 --></title><br />
<meta name="description" content="説明文を記述" /><br />
<meta name="keywords" content="キーワードを記述" /><br />
<link rel="stylesheet" type="text/css" <href="/css/style.css" /><br />
</head><br />
<body><br />
<div id="Head"><br />
<!-- ヘッダー内容を記述 --><br />
</div><br />
<div id="Wrap"><br />
<div id="contensBody"><br />
<!-- コンテンツ内容を記述 --><br />
</div><br />
<div id="Sidebar"><br />
<!-- メニュー等を記述 --><br />
</div><br />
</div><br />
<div id="Footer"><br />
<!-- フッター内容を記述 --><br />
</div><br />
</body><br />
</html><br />
</syntaxhighlight><br />
<br />
## 静的ファイルを配置する<br />
<br />
CSS等の静的ファイルは、基本的にテーマフォルダの配下に次のフォルダを作成し、その配下に設置します。<br />
<br />
* 画像・・・「img」フォルダ<br />
* CSS・・・「css」フォルダ<br />
* Javascript・・・「js」フォルダ<br />
<br />
## レイアウトテンプレートを作成する<br />
<br />
レイアウトテンプレートとは、Webページの枠組みを記述するファイルです。 全ての Webページでの共通部分を含める事でメンテナンス性を高める事ができます。 このファイルを変更するだけで、あらかじめ用意されているブログや、メールフォームのレイアウトも変更する事ができます。<br />
<br />
* テーマフォルダの中に「Layouts」という名称のフォルダを作成します。<br />
* Layouts フォルダに、default.php という名称でファイルを作成します。<br />
* HTML の共通部分を抜き出し(コンテンツ本体以外)Layouts ファイルに記述する。<br />
* headタグ内(閉じheadタグの直前)に次のbaserタグを記述する。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->scripts() ?><br />
</syntaxhighlight><br />
* コンテンツを配置する部分に以下のタグを記述する。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->content() ?><br />
</syntaxhighlight><br />
* タイトルを配置する部分に以下のタグを記述する。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->title() ?><br />
</syntaxhighlight><br />
* description メタタグを記述する部分に以下のタグを記述する<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->metaDescription() ?><br />
</syntaxhighlight><br />
* keywords メタタグを記述する部分に以下のタグを記述する<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->metaKeywords() ?><br />
</syntaxhighlight><br />
* 外部CSS「style.css」を読み込む為に以下のタグを記述する ※ 読み込むファイルのフォルダ階層が変わっても、適切なURLを出力します。<br /><br />
<small>※ スラッシュから始まるルートパスを使えば通常のCSS読み込みタグでも問題ありませんが、テーマとして配布する場合は、設置フォルダの階層が変わる可能性があるので、必ず次のタグで記述します。<br /> ※ ファイル名(拡張子なし)のみを指定した場合、css フォルダ内のファイルとしてURLが自動出力されます。</small><br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->css('style') ?><br />
</syntaxhighlight><br />
* jqueryなどのjsを記述する場合は次のように記述します。<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->js('jquery') ?><br />
</syntaxhighlight><br />
<br />
<small> ※ 拡張子は省略できます。<br /> ※ あらかじめjsフォルダ内にjavascriptを配置しておく必要があります。</small><br />
* bodyタグの最後に、次の baserタグを記述する<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->func() ?><br />
</syntaxhighlight><br />
<br />
(例){baserCMSの設置フォルダ}/app/View/Layouts/default.ctp<br />
<br />
<syntaxhighlight lang="php"><br />
<html><br />
<head><br />
<?php $this->BcBaser->title() ?><br />
<?php $this->BcBaser->metaDescription() ?><br />
<?php $this->BcBaser->metaKeywords() ?><br />
<?php $this->BcBaser->css('style') ?><br />
<?php $this->BcBaser->css('colorbox/colorbox') ?><br />
<?php $this->BcBaser->js(array('jquery-1.7.2.min','jquery.bt.min','jquery.colorbox-min','jquery.corner','startup')) ?><br />
<?php $this->BcBaser->scripts() ?><br />
</head><br />
<body><br />
<div id="Head"><br />
<!-- ヘッダー内容を記述 --><br />
</div><br />
<div id="Wrap"><br />
<div id="ContensBody"><br />
<?php $this->BcBaser->content() ?><br />
</div><br />
<div id="Sidebar"><br />
<!-- メニュー等を記述 --><br />
</div><br />
</div><br />
<div id="Footer"><br />
<!-- フッター内容を記述 --><br />
</div><br />
<?php $this->BcBaser->func() ?><br />
</body><br />
</html><br />
</syntaxhighlight><br />
<br />
## コンテンツページを登録する<br />
<br />
ここでは、Webページを http://{baserCMS設置URL}/about/index として参照できるようにします。<br /> まず、事前にテンプレートフォルダ内に、「Pages」という名称のフォルダを作成し、アップロードした上で、<u>アクセス権を707(環境によっては 777)に変更しておきます。</u><br />
* 管理画面にログインし、固定ページ管理を開きます。<br />
* サブメニューのページカテゴリー管理メニューより「新規に登録する」をクリックします。<br />
* ページカテゴリ名欄に「about」と入力します。(URLのフォルダ名として利用されます)<br />
* ページカテゴリタイトル欄に「このサイトについて」と入力します。(Webページのタイトルとして利用されます)<br />
* 「登録」ボタンをクリックしてページカテゴリの登録を完了します。<br />
* 固定ページ管理メニューより「新規に登録する」をクリックします。<br />
* カテゴリ欄より「このサイトについて」を選択します。<br />
* ページ名欄に「index」と入力します。(URLのファイル名として利用されます。)<br />
* タイトル欄には「このサイトについて」と入力します。<br /><br />
<small>※ indexという名称のページを作成する場合、ページカテゴリ名とページ名を同じにするとタイトルタグやパンくずにおいてカテゴリ名を省略する事ができます。</small><br />
* 説明文欄に任意に説明文を入力します。(metaタグのdescriptionとして利用されます)<br />
* 本文欄に任意の文章を入力します。<br />
* 「登録」ボタンをクリックし、ページ登録を完了します。<br />
* 画面一番下の「保存前確認」ボタンをクリックして表示を確認します。<br />
* http://{baserCMS設置URL}/about/index のURLとして確認する場合は、編集ボタンをクリックし、公開状態「公開する」に変更して「更新」ボタンをクリックします。<br />
<br />
## ヘッダーなどの共通部品を部品化する(任意)<br />
<br />
Webページ上のヘッダーやフッターなどの共通部品は、「エレメントテンプレート」として部品化する事で、メンテナンス性を高める事ができます。<br />
<br />
(例)Webページのヘッダーを部品化する場合<br />
<br />
1. テーマフォルダの中に「Elements」という名称のフォルダを作成します。<br />
2. Elements フォルダの中に、「header.php」という名称のファイルを作成します。(ファイル名は任意)<br />
3. レイアウトテンプレートやコンテンツテンプレート内で、作成したヘッダーを呼び出すには呼び出したい場所に以下のタグを記述します。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php echo $this->BcBaser->element('header') ?><br />
</syntaxhighlight><br />
<br />
(例){baserCMSの設置フォルダ}/app/View/Elements/header.php<br /> ※ ヘッダーとフッターは特別で、$this->BcBaser->header() / $this->BcBaser->footer() で呼び出す事ができます。<br />
<br />
<syntaxhighlight lang="php"><br />
<!-- メニュー等を記述 --><br />
</syntaxhighlight><br />
<br />
(例){baserCMSの設置フォルダ}/app/View/Layouts/default.php<br />
<br />
<syntaxhighlight lang="php"><br />
<html><br />
<head><br />
<?php $this->BcBaser->title() ?><br />
<?php $this->BcBaser->metaDescription() ?><br />
<?php $this->BcBaser->metaKeywords() ?><br />
<?php $this->BcBaser->css('style') ?><br />
<?php $this->BcBaser->css('colorbox/colorbox') ?><br />
<?php $this->BcBaser->js(array('jquery-1.7.2.min','jquery.bt.min','jquery.colorbox-min','jquery.corner','startup')) ?><br />
<?php $this->BcBaser->scripts() ?><br />
</head><br />
<body><br />
<div id="Head"><br />
<?php echo $this->BcBaser->header() ?><br />
</div><br />
<div id="Wrap"><br />
<div id="ContensBody"><br />
<?php $this->BcBaser->content() ?><br />
</div><br />
<div id="Sidebar"><br />
<?php echo $this->BcBaser->element('sidebar') ?><br />
</div><br />
</div><br />
<div id="Footer"><br />
<?php echo $this->BcBaser->footer() ?><br />
</div><br />
<?php $this->BcBaser->func() ?><br />
</body><br />
</html><br />
</syntaxhighlight><br />
<br />
## ウィジェットを読み込む(任意)<br />
<br />
次の一行をテンプレート内の任意の場所に記述するだけで、管理画面のウィジェットエリア管理より、ウィジェット(パーツ)の追加や、場所の入れ替えなどが行えます。<br /> ブログ用のウィジェットや、Twitter のユーザータイムライン読み込みパーツの他、HTMLタグを貼り付ける為のウィジェットなどが提供されています。<br />
<br />
<syntaxhighlight lang="php"><br />
<?php $this->BcBaser->element('widget_area',array('no'=>$widgetArea)) ?><br />
</syntaxhighlight><br />
<br />
追加するには、管理画面にログインし、「ウィジェット管理」を開きます。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%AC%E3%82%A4%E3%83%89
ver4/テンプレートガイド
2016-09-18T08:43:23Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] <metadesc>baserCMSのテンプレートのフォルダ構成やカスタマイズ方法です。</metadesc> *テンプ...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
<metadesc>baserCMSのテンプレートのフォルダ構成やカスタマイズ方法です。</metadesc><br />
<br />
*[[テンプレートについて]] -baserCMSのテンプレートのフォルダ構成について。<br />
*[[テンプレート制作]] -baserCMSのテンプレートを作成について。<br />
*[[コアテンプレートのカスタマイズ]] -テンプレートのカスタマイズ方法として、コアファイルをテーマフォルダにコピーしてカスタマイズする方法をご紹介します。<br />
*[[テンプレート編集はじめの一歩]] -はじめて既存のテンプレートを編集される方向けのガイドです。<br />
<br />
[[Category:開発ガイド]]</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
ver4/テンプレートについて
2016-09-18T08:42:40Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] baserCMS のテンプレートは指定の「テンプレートフォルダ」に、ファイルの拡張子を 「<span...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
baserCMS のテンプレートは指定の「テンプレートフォルダ」に、ファイルの拡張子を 「<span style="color:red;">.php</span>」 として作成していく事となります。テンプレートフォルダの配置場所は、「[テンプレート制作][1]」を参照ください。<br />
<br />
テンプレートフォルダは、基本的に以下のようなフォルダ構成となり、それぞれ意味を持ちます。<br />
<br />
<small>※ 必要のないフォルダはなくても構いません。<br /> ※ この構成は、ベースのフレームワークである CakePHP に準拠します。</small><br />
<br />
* Elements/ Webページの部品を配置します。<br /> (ヘッダー、フッターを共通部品化した場合等)<br />
* Errors/ 404エラー等、エラー用のテンプレートを配置します。<br />
* Helper/ テンプレートを作成する上でのプログラムを配置します。<br />
* Layouts/ WEBページの枠組みとなるテンプレートを配置します。<br />
* Pages/ 固定ページのコンテンツを配置します。<br /> (通常は、管理画面で更新するとこのテンプレートに反映されますので直接編集する事はありません)<br />
<br />
この中で主に扱うディレクトリは、Layouts、Elements の2つとなり、部品化を行わない場合は、Elements も不要です。<br />
<br />
基本的な WEBページの構成例は右の図のようになります。<br />
<br />
[[ファイル:about_template.gif]]<br />
<br />
<br />
[1]: http://wiki.basercms.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E4%BD%9C</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88URL
ver4/スマートURL
2016-09-18T08:42:04Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] スマートURLとはbaserCMSで作成されたサイトのURLを、デフォルトのものより短くする機能で...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
スマートURLとはbaserCMSで作成されたサイトのURLを、デフォルトのものより短くする機能です。<br />
<br />
<br />
== 機能の概要 ==<br />
baserCMSではPHPフレームワークである[http://cakephp.jp/ CakePHP]を利用しています。これはCakePHPに限らずですが、多くのPHPフレームワークではそのURLにルールがあり、URLを解析することで、実行するクラスやメソッドを特定し、内部処理を行なって表示を出力しています。 その為、どのようなURLでも必ず共通して通過する処理があり、URLを表示すると以下の例のように「index.php」というファイル名がURLの中に含まれてしまいます。<br />
<br />
例)ページ名「about」を表示するURL<br />
<pre><br />
http://www.hoge.com/index.php/about<br />
</pre><br />
<br />
これではURLが長く不恰好になってしまいます。そこで、baserCMSでは「スマートURL」という機能を搭載し、この「index.php」というファイル名部分を消してしまうことができます。スマートURLをオンにした場合、上述の例は以下のようになります。<br />
<pre><br />
http://www.hoge.com/about<br />
</pre><br />
<br />
※ baserCMS 3.0.9 からは、初期状態でスマートURLが設定された状態でインストールされます。<br />
<br />
<br />
== 設定方法 ==<br />
システム管理のサイト基本設定にあるオプションからスマートURL利用の有無を設定できます。<br />
<br />
baserCMSの初期状態では、URLにおいて、baserCMSを設置したフォルダの配下に「index.php」というファイル名が含まれてしまいます。<br />
<br />
<pre><br />
(例)<br />
http://{baserCMS設置URL}/index.php/about/index<br />
</pre><br />
<br />
スマートURL機能とは、上記のようにWebサイトのURLの間に挟まってしまう「index.php」を除外し、通常のわかりやすいURL表示に変更する機能です。<br />
<br />
<pre><br />
(例)<br />
・スマートURLオフ:http://{baserCMS設置URL}/index.php/contact/index<br />
・スマートURLオン:http://{baserCMS設置URL}/contact/index<br />
</pre><br />
<br />
スマートURLを実現するには、次の項目を確認してください。<br /> ・Apache の Rewrite モジュールがインストールされていること<br /> ・.htaccess が利用できるように設定されていること<br /> ・apacheの設定で AllowOverride を On に設定されていること<br />
<br />
スマートURLの設定は、管理画面の「システム設定」より行えます。管理システムからスマートURLをオンにするためには {baserCMSの設置フォルダ}/.htaccess と {baserCMSの設置フォルダ}/app/webroot/.htaccess に、Webサーバ実行ユーザの書き込み権限が必要です。<br />
<br />
スマートURLの設定はサーバー環境に深く依存します。 「オン」に変更した場合、サーバーエラーとなり画面にアクセスできなくなる可能性もありますのでご注意ください。<br />
<br />
[動作確認済レンタルサーバー一覧][1]より各種レンタルサーバーの動作状況を確認できます。<br />
<br />
## 手動でスマートURLを設定する<br />
<br />
baserCMSはPHPが動作する全てのサーバーで動作できる事を目標としていますが、サーバーの環境によっては どうしてもアナログな作業が必要な場合があります。<br /> ここでは、その対応方法についてご説明します。<br />
<br />
**<span style="color:red;">「手作業での設定」が必要となるのは下記の場合です</span>**<br />
<br />
* インストール画面を開いた場合にCSSがリンク切れになり正常に表示できない<br />
* 管理システムでスマートURLをオンにした場合に「Internal Server Error 500」が発生してしまう。または、CSS が正常に読み込まれなくなり画面が崩れてしまう。<br />
<br />
### .htaccessの設定<br />
<br />
* 下記2箇所に設置されている .htaccess を開きます。<br /> {baserCMSの設置フォルダ}/.htaccess<br /> {baserCMSの設置フォルダ}/app/webroot/.htaccess<br />
* 各 .htaccess ファイルに、スマートURLのためのRewrite設定について解説の記述がありますので、解説文にしたがってRewrite設定を有効にして下さい。<br />
<br />
<small><br />
※ .htaccess は特殊なファイルなので、ファイルを開く際には、Terapad や EmEditor 等の、メモ帳以外のテキストエディタ(ソフトウェア)をご利用下さい。<br /> ※ サーバーによっては、RwriteBaseの設定値を見直す必要がある場合があります。うまくいかない場合は、[ユーザーズフォーラム][2]でご質問ください。<br />
</small><br />
<br />
### install.phpの設定<br />
<br />
* インストール画面を開く前に{baserCMSの設置フォルダ}/app/Config/install.php を開き次の行を追記し、サーバーにアップロードします。<br />
<pre><br />
Configure::write('App.baseUrl', '');<br />
</pre><br />
<br />
* インストール画面を開き、正常に表示されていれば完了です。<br />
<br />
[1]: http://basercms.net/hosting/index<br />
[2]: http://forum.basercms.net/ "ユーザーズフォーラム"<br />
<br />
== Rewriteモジュールと、.htaccessファイル ==<br />
スマートURLを利用するには、サーバー環境として2つのポイントがあります。一つ目は[http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html Rewriteモジュール]と呼ばれる、URLの内部書き換えや、サーバーの環境変数などに応じたリダイレクトを可能とするモジュールで、スマートURLもこのモジュールを利用してURLの書き換えを行なっています。<br />
<br />
二つ目は「[http://ja.wikipedia.org/wiki/Htaccess .htaccess]」というファイルです。これはディレクトリ毎にサーバーの設定を一部設定・変更する為のファイルで、スマートURLを使うためには必須のファイルです。<br />
<br />
スマートURLを利用するためには、上記のRewriteモジュールと.htaccessの両方が利用できる環境が必要です。利用できるかどうかはサーバーによって異なりますので、正確な情報はサーバー管理者に問い合わせてください。<br />
<br />
対応していないサーバーでスマートURLの設定を行うと、CSSが崩れたり、各ページを正常に表示できず「404エラー」が出る事があります。<br />
<br />
<br />
<br /><br /><br />
''テキスト寄贈:[http://hiniarata.jp/ 馬庭 吾一@株式会社ヒニアラタ]''</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%B8%80%E9%83%A8%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84
ver4/システム設定の一部が変更できない
2016-09-18T08:41:22Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] 管理画面の設定項目の一部が、選択できない状態になってしますことがあります。 ##簡...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
管理画面の設定項目の一部が、選択できない状態になってしますことがあります。<br />
<br />
<br />
##簡単インストールで発生<br />
レンタルサーバーが提供する[[簡単インストール]]を使用した場合、システム設定の一部が選択できない(灰色になる。グレーアウトしている)状態になることがあります。これは生成されたファイルのパーミッションに問題があるためです。適切な設定に変更すれば解決する場合がほとんどです。<br />
<br />
##install.phpのパーミッション<br />
FTP等でサーバーへ接続し、以下の場所にあるinstall.phpのパーミッションを600に変更してください。<br />
/app/Config/install.php <br />
再びブラウザで管理画面にアクセスすると、先ほどまでグレーアウトで選択できなかった項目が、選択できるようになっているはずです。</div>
183.76.75.203
https://wiki.basercms.net/ver4/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%8A%E3%83%93%E3%81%AB%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B
ver4/システムナビにメニューを追加する
2016-09-18T08:40:43Z
<p>183.76.75.203: ページの作成:「[このコンテンツは内容調整中です] 管理画面のシステムナビにメニューを追加する方法です。 {baserCMSの設置フォルダ}/lib/Baser...」</p>
<hr />
<div>[このコンテンツは内容調整中です]<br />
<br />
管理画面のシステムナビにメニューを追加する方法です。<br />
<br />
{baserCMSの設置フォルダ}/lib/Baser/Config/setting.php を参考に {baserCMSの設置フォルダ}/app/Config/setting.php を編集します。<br /> $config['BcApp']['adminNavi'] に追加するメニューの配列を設定します。<br />
<br />
例えば、「カスタマイズ」カテゴリを設けて、「hoge」コントローラーの「index」アクションへのメニュー「ほげ」を作成する場合、以下の配列を追加します。<br /><br />
<br />
<small>※ {baserCMSの設置フォルダ}/lib/Baser/Config/setting.php と {baserCMSの設置フォルダ}/app/Config/setting.php の内容はマージされます。</small><br />
<br />
<syntaxhighlight lang="php"><br />
$config['BcApp']['adminNavi'] = array(<br />
'custom' => array(<br />
'name'=> 'カスタマイズ',<br />
'contents' => array(<br />
array('name' => 'ほげ','url' => array(<br />
'admin' => true,<br />
'plugin' => null,<br />
'controller' => 'hoge',<br />
'action' => 'index')<br />
)<br />
)<br />
)<br />
);<br />
</syntaxhighlight><br />
<br />
すると、システムナビに追加したメニューが表示されます。<br />
<br />
[[ファイル:system_menu__large.jpg]]</div>
183.76.75.203