concrete5.7(関連)

さくらスタンダードにて、concrete5の複数サイトを運用

さくらスタンダードにて、concrete5(5756)を複数インストールする

QA詳細は、本家フォーラム『レンタルサーバーにもうひとつconcrete5をインストールしたい
をご参照ください。
http://concrete5-japan.org/community/forums/beginner/post-12589/

/www/ 以下でサイトを作っていると思いますが、
複数ドメインでするとなると

/www/DOMAIN1
/www/DOMAIN2
/www/DOMAIN3
/www/DOMAIN4
/www/DOMAIN5
/www/DOMAIN6


[手順]
(前提)ドメイン6個が、キチンと設定され、URLを入力して、アクセスできること。
/www/DOMAIN1/ 以下に index.html とか適当なファイルをおいて、
http://DOMAIN1/index.html として、表示されることが、
6ドメインで確認できていることが前提です。

1)フォルダを作ります。(できていると思いますが・・・)
2)データベースも管理ページから、6個作成します。(できていると思いますが・・・)

3)concrete5のインスール用圧縮ファイル concrete5.7.5.6.zip (2016/01/31現在)をダウンロードして、
各フォルダにアップします。
※管理画面からは容量の問題でできませんので、ftpツール等でアップロードしてください。

これを各ドメイン用フォルダに1個づつ実施します。なので、6回ですね。
以下こんな感じ
/www/DOMAIN1/concrete5.7.5.6.zip
/www/DOMAIN2/concrete5.7.5.6.zip
/www/DOMAIN3/concrete5.7.5.6.zip
/www/DOMAIN4/concrete5.7.5.6.zip
/www/DOMAIN5/concrete5.7.5.6.zip
/www/DOMAIN6/concrete5.7.5.6.zip


■■■■■(追記ここから)■■■■■

★重要なことを思いつきました。
※(注意)の通り、手順で示した、

/www/DOMAIN1/concrete5.7.5.6.zip
/www/DOMAIN2/concrete5.7.5.6.zip
/www/DOMAIN3/concrete5.7.5.6.zip
/www/DOMAIN4/concrete5.7.5.6.zip
/www/DOMAIN5/concrete5.7.5.6.zip
/www/DOMAIN6/concrete5.7.5.6.zip

は、NGです。

『/www/DOMAIN』 までが同じなのがさくらでは(おそらく)致命的です。
なので、ご指摘の奇妙な動作になるのだと思います。

www以下のフォルダ名、質問用で実際は違うのでしょうが、
この事例が、さくらスタンダードでは、だめなことが多いです。

DOMAIN のみ同じで、最後の数字だけ違うは修正してください。

/www/aiueo.jp/concrete5.7.5.6.zip
/www/kakikukeko.jp/concrete5.7.5.6.zip
/www/sasisuseso.jp/concrete5.7.5.6.zip
/www/tatituteto.jp/concrete5.7.5.6.zip
/www/nani-nuneno.com/concrete5.7.5.6.zip
/www/hamayarawa/concrete5.7.5.6.zip

とか、フォルダ名が途中まで同じとかしないでください。
わかりやすくされたいなら、ドメイン名のフォルダでもいいです。
がしかし、ドメインが途中まで同じなら、注意が必要です。

フォルダ名を変更すると、再度、ドメイン設定から、パスとの関係を修正してください。
修正後、DNSへの反映に多少時間がかかるかもです。(新規ではないので、すぐかどうか未確認)

●上記にのようにしていただくと、『パス』の問題は解決するかもです。

>これまで www/DOMAIN/パス←このパスを設定することが、
>設定していれば、「www/DOMAIN/index.php/install」に進める。
>設定していないと、「Index of / 」が表示される。、そこから入っていくことはできますが、
>なんだかその手順はおかしいと感じてパスを設定しています。これでOKでしょうか。

この『パス』と質問用に変更されていますが、これこそが、※(注意)に記載の通り、
どんなパスにしたかによっても、挙動が変わったりしますので、注意が必要です。

★上記のドメインにひも付けするフォルダ名修正(ドメイン設定での修正)、不要な『パス』の削除

■■■■■(追記ここまで)■■■■■


4)さくらのサーバーコントロールパネル、ファイルマネージャーを立ち上げます。
 (※さくらをご利用なら、ご承知だとは思います)

5)/www/DOMAIN1/ フォルダ内、concrete5.7.5.6.zip (※これ以外にファイルがないことを確認)
右クリック、『リモート解凍』を選んで解凍する。

6)すると、/www/DOMAIN1/concrete5.7.5.6/ とフォルダが作成され、さらにその中には、
application, concrete, packages, updates フォルダと、index.php, LICENSE.TXT,robots.TXT
のファイルができます。

7)/www/DOMAIN1/ 内の解凍元ファイル concrete5.7.5.6.zip は削除します。

8)6)の4フォルダ、3ファイルを、上位階層にすべて移動します。
9)concrete5.7.5.6 フォルダは空になったので削除します。

10)これで、各ドメイン、http://DOMAIN1/index.php にアクセスして、インストールを開始します。
11)5)〜10)を後5回同様に繰り返す。


★ドメイン[.tokyo]に関して(補足)

 →DNSの反映に時間がかかっただけでした。
 おおむね、24時間で反映しますが、72時間を要したみたいです。

>という設定です。
>なぜ .tokyo だけヒット(ドメインでのアクセスができない)しないのか・・・(-_-;)

●『ドメイン設定』について、ひも付けするフォルダ名とドメインを設定しても
反映されないということでしょうか?

(※たいへん申し訳ございませんが、『ドメイン検索』との記載がわかりません。
検索エンジン等で、ドメインを直接検索して、表示されないということでしょうか?
多分、違うと思いますので、上記のひも付け作業のことをおっしゃっていると推測して、
以下記載します。)

もしそうなら、フォルダ名に「-」,「_」をやめたり、全く違う名称にしていただくのがいいかもしれないです。
そして、ドメイン名 *******.tokyo ですが、

(さくらのサポート情報)マルチドメインの設定

これで、実施されて、ひも付け処理ができないということでしょうか?

★ドメインを取得されたのが、さくらでない(tokyoは多分他社かと・・・)ならば、取得先の管理ページとかで、ネームサーバーを
さくらへ変更する必要がございます。

それでも、ダメなら、tokyo に関して、すみませんが、当方ではちょっとわかりかねますので、
さくらのサポートセンターにご確認ください。(お力になれず、すみませんでした。)


>別件ですが、6サイトともプリティURLの設定をしました。
>「/(この部分は空欄でOKですか?)」ですが、現在空欄です。
>これは関係してくるものでしょうか?

●サブドメインなら、ここに追加必要ですが、ドメインそのものですので、/ (ご指摘の空欄)でOK
だと思います。 concrete5 5.7系はプリティーURLをONにすれば、自動で記載してくれるので,
特には問題はないです。

5.7系のElemental テーマをクローンコピーして改造する準備の方法

5.7系のElemental テーマをコピーして改造する準備の方法

これだと、アドオンを追加するだけでできるので便利かもですね。

Elemental テーマをコピーして改造する準備の方法
http://concrete5-japan.org/community/forums/design/post-10827/#msg12064

[手順]
(1) concrete5.7.5.2にログインします。
管理画面→concrete5を拡張→他のテーマを入手

(2) Cloneamental を検索します。
Cloneamentalをクリック、『無料::ダウンロード』の「ダウンロード」をクリック

「パッケージが正常にダウンロードされました」がでればOK

(3)管理画面 → ページとテーマ から、Cloneamentalに切り替える

★テーマファイルの在処

(cocnrete5のドキュメントルート)
/application/files/tmp/1447786195/cloneamental/themes/cloneamental/
の配下です。

※テーマのパッケージのバージョンとかによっては、1447786195は適宜変わるかもです。

確認のため、page_theme.php を比較しておきます。
namespace 当然、通常のテーマ位置にあるのと、パッケージとして追加したので、記述は異なります。

public function getThemeName() { ...

は、テーマ名と、説明(Description)は異なります。

あくまでパッケージのテーマですので、やはりキチンと勉強するには、私的には通常の方法がいいですね。(テーマをパッケージ化する方法がわかります)

ちょっとオリジナルとの差を見ながらカスタマイズするにはいいかもです。
お好みで、トライしてみてください。

さくらインターネットで、concrete5 (5.7.5.2) の[sitemap]ページと[sitemap.xml]の対策

さくらインターネットで、concrete5 (5.7.5.2) の[sitemap]ページと[sitemap.xml]の対策

さくらインターネットで 起こることで 他のホスティングでは起こりません。
concrete5 5.7系において、『サイトマップ』ページのurlを 通常「sitemap」としますよね。

 しかしながら、さくらインターネットは、mod_rewriteが特殊な設定となっていて、
ないフォルダ名(sitemap/)があると、勝手に、拡張子を付与する機能があります。

ここでは、存在する(sitemap.xml)にします。とうか、されます。

なので、http://sample.com/sitemap/ とすると、mod_rewriteを設定していても、5.6系ではうまく、転送できたものが5.7系ではできません。
(※おそらく、プリティーURLのロジックがかわったせいでしょう)

最も、『サイトマップ』のページのURLを「sitemap_page」とかにすればいいんですけれど。2015/10/07現在、調査&トライ中ですが、いい方法が見つかっていません。^^;

あと考えた方法として、あまりカッコはよくないですが、index.php/sitemapにしてもいいならできなくはないですが、これも、mod_rewriteだけでは、ちょっとわかっていません。試験的に、以下のようにやってみました。

手順)concrete5 (5.7.5.2)の『管理画面』→『システムと設定』→(SEOと統計)『URLとリダイレクト』

プリティーURL
URLから index.php を除く
(.htaccess ファイル向けのコードはdefaultのまま。に以下赤行を追加)

RewriteEngine On
RewriteBase /
RewriteRule ^sitemap\.xml$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]

カノニカルURL
http://sample.com/
SSL URL は空白(※利用される方は、適宜)

URLリダイレクト
カノニカルURLでのみ表示します。(チェックをはずす)

手順2)concrete5のドキュメントフォルダに「sitemap」とフォルダを作成。
その中に、index.phpを設置。
内容は以下、

<?php
header("Location: ../index.php/sitemap"); /* ブラウザをリダイレクトします */
/* リダイレクトする際に、これ以降のコードが実行されないことを確認してください */
exit;
?>

 あまりカッコがよくない(第一、SEO的にどうなの?)ですので、あくまで備忘録だと思って記載しています。
もしわかる方がいらっしゃれば教えてください。

(concrete5 5.7)のテーマを作成する::エレメンタル(Elemental)カスタマイズの準備

(concrete5 5.7.5.2)のテーマを作成する
エレメンタル(Elemental)カスタマイズの準備

教科書サイトは、以下を使用しています。
HTMLテンプレートをconcrete5テーマに変換する
http://concrete5-japan.org/help/5-7/developer/designing-for-concrete5/building-a-concrete5-theme/converting-an-html-template-to-a-concrete5-theme/

(重要)まず最初に、管理画面からすべてのキャッシュをオフにしてください。

こうしておかないと変更がわからなかったりしますので注意です。
※5.7系では、Bootstrap(ブートストラップ)のファイル拡張子 *.less のキャッシュ設定もありますね。5.7系では、キャッシュ設定が細かくできるようになっていますね。

『テーマ CSS キャッシュ』

無効 - LESS ファイルを使ったテーマを開発している場合に適しています。
有効 - ウェブサイトを高速化するのに役立ちます
『LESSの出力を圧縮』
無効 - 出力されたCSSをデバッグするのに適しています。
□生成されたCSSファイルのソースマップを有効にする
有効 - ウェブサイトを高速化するのに役立ちます

●基本全てを無効にしておきましょう。

※教科書サイトでは、記載ないですが、エラーも表示するようにしておきましょう。

管理画面 → システムと設定 → (サーバー設定一覧)デバッグ設定 → エラーを表示
■サイトユーザーにエラー情報を表示

一般的なエラーメッセージを表示するには無効化する
エラー詳細
エラーメッセージのみを表示
■エラーのデバッグ出力を表示

 重要で公開すべきでない情報を表示しかねないため、構築時のみに使用してください。

ドキュメントルート/application/themes

urbanic

と言うフォルダ名にしました。

テーマのディレクトリ (例. ドキュメントルート/application/themes/urbanic/)にthumbnail.png ファイル (120x90) を作成してください。管理画面で表示されるテーマのサムネイル画像です。
次に、description.txt ファイルを作成してください。最初の行にテーマの名前を、次の行に説明を書きます。
※ちなみに、エレメンタル(Elemental)のthumbnail.pngのサイズは、360x270です。
 (120x90)以上で、360x270サイズまででもいいということでしょうね。


エレメンタル(Elemental)テーマのカスタマイズの準備
(※elemental でフォルトのテーマのカスタマイズ。)

いきなり、エラーがでました。
が、エラーの内容から、おそらく、5.7で導入された、名前空間が影響しているのでしょうね。

Elemental テーマをコピーして改造する準備の方法
http://concrete5-japan.org/community/forums/design/post-10827/

katz515さんの記事の通り。

※ただし、フォルダ名も規則に則り変更する必要があります。
※が、しかし、

@import "../../../css/build/core/include/mixins.less";

@import "../../../../concrete/css/build/core/include/mixins.less";

Call to a member function hasPageThemeGridFrameworkOffsetClasses() on a non-object
のエラーが発生します。

※挙動をみるため、cssのフォルダ名を変えたり、権限を無効にしたりと、意地悪テストをしたためかと思われます。

★メンバー関数のオブジェクトがない。

 設定は合ってるけど。
 仕方ないので、一旦、テーマを既設のElemental テーマに戻し、カスタマイズ用を削除、再インストールすると、正常に機能しました。

ブートストラップ系の オブジェクトが認識しなくなったのだろうね。
ファイル止めたり、意地悪してたから。


★テーマの説明が変更した値になっていない。

参考までに、素のテーマを再度いれてみた。 例)xyz
ちゃんと、xyz フォルダに、thumbnail.png ファイル (120x90) と description.txt
description.txt の中身

1行目:xyz
2行目:xyz はテストのテーマです。この説明ちゃんと表示されるかな? 2015/09/16 Theme

これで、最低限のテーマができる。
これはきちんと表示されているね。

ということは、? エレメンタル

★Bootstrapの入ったDefaultテーマである『エレメンタル(Elemental)』は、主要な修正をしたければ、クラスを再構築するため、テーマの削除、インストールが必要です。

これで、きちんとファイルが変更されました。

※description.txtを使いたいなら、page_theme.php のクラスメソッドをコメントアウト削除します。
これはサイトに記載がありません。

(追記)2015/10/02
陥りやすい落とし穴
http://concrete5-japan.org/help/5-7/developer/designing-for-concrete5/building-a-concrete5-theme/common-pitfalls/

に以下の注意がありますので、コメントにせずファイルをバックアップして、
不要メソッドは削除したほうがいいですね。
カスタマイズするときに異常になる恐れがありますね。

PageThemeには、空のメソッドを残さない

page_theme.phpの変更箇所
--------------------------
protected $pThemeGridFrameworkHandle = 'bootstrap3';
/*
public function getThemeName()
{
return t('Elemental');
}
public function getThemeDescription()
{
return t('Elegant, spacious theme with support for blogs, portfolios, layouts and more.');
}
*/
--------------------------

page_theme.phpにてconcrete5の公式日本語サイトの検索窓で確認しますと、

5.7 オリジナルテーマについて
http://concrete5-japan.org/community/forums/5-7-x/post-9081/

Elementalに戻せなく成ってしまいました
http://concrete5-japan.org/community/forums/design/post-11161/

ということは、エレメンタル(Elemental)をベースとしたテーマのカスタマイズは、
初心者には、結構難易度が高いということなのでしょうか?

私もまだ、未確認ですが、構築予定のサイトは、やはりカスタマイズでしょうかね。

★方法として、ご提案できるのは、一度、簡単なBootstrapを利用したサイトを構築して、
(concrete5 5.7を利用しない)学習するのも案としては、いいかもです。

それで、できたサイトを、持ってくるのもありです。
エレメンタル(Elemental)だと、組み込まれたグリッドシステムを
使えるからいいのかな?
要検証です。(2015/09/16現在)

------------------------- 引用 ここから -------------------------
こちらのスレッドは確認したのですが、状況が違うようで解決しませんでした。
前述のエラーが出た後は、applicationディレクトリ配下に作成したオリジナルのテーマフォルダを削除しても、解決しません。
また、application/themes ディレクトリ自身をGitのローカルリポジトリにしていたので、
オリジナルテーマが動作していた頃のコミットに戻しても、事象が解決せず、
concrete5そのものを再インストールすると、(当然ですが)一旦、エラーが出なくなります。
再度、オリジナルテーマを「有効」にした直後、同じ事象が出てしまいます。
オリジナルテーマのディレクトリ配下になんらかの問題があると思うのですが、
過去に動作が確認できていたcommitログのバージョンに遡っても、事象が出てしまうので、困っております。
再度、一から、テーマを記述して、どこに原因があるのか冷静に調べてみたいと想います。
------------------------- 引用 ここまで -------------------------