Entry

急にログインできなくなった話

freoの引っ越し作業中、何故かログイン出来なくなる現象が起きた。
ログイン画面が真っ白でソースにも何も無い。
色々とアップロードしなおしたりデータベースも空にしたりと試行錯誤したのち、解決。

template_cディレクトリを空にした後にログイン画面を出し、新たに作成されたファイルを開いたところ、

<?php /* Smarty version 2.6.27, created on 2013-11-23 **:**:**
         compiled from internals/login/default.html */ ?>

これしか表示されなかったので、実際のテンプレートファイルを見たら容量0だったという次第。
おそらくバックアップを取った際にダウンロード失敗したとかその辺のミスだと思われる。
また同じことをしでかさないように記録しておく。

あーびっくりした…。

freo丸ごとサーバ引っ越しの話

ロリポップ→チカッパ→ロリポップチカッパプランと、長らくロリポップサーバを使ってきましたが、
いろいろありましてコストパフォーマンスを見直した結果、別のレンタルサーバを利用することにしました。
独自ドメインのネームサーバ変更などもあるため、とりあえず実行してみたところ、
少々つまづいたのでメモっておきます。

手順
  1. freoに標準装備されているエクスポート機能を使い、全体をエクスポート
  2. FTPツールでfreoディレクトリまるごとダウンロード
  3. config.phpを新しいサーバに合わせて書き換える
      (設置URLを新サーバの独自ドメイン未使用URLにする)
  4. 新しいサーバにfreoディレクトリ丸ごとアップロード
      ※libs/pluginsの中身はアップロードしないor一時的に空にする
  5. libs/pluginsが空の状態でindex.php/setup
  6. libs/pluginsの中身をアップロード
  7. index.php/各種セットアップが必要なプラグイン/setup
  8. 再度index.php/setup
  9. インポートしたのち、動作確認して完了
      ※バージョンアップは、動作確認が終わってから
  10. config.phpの設置URLを独自ドメインに戻す
  11. ドメイン管理サービスでネームサーバ更新
      ここから72時間かけて少しずつ浸透していくため、記事を書く際は気をつける
      (新サーバのテンプレートに隠しメモを書いておく等)
トラブルシューティング
通常セットアップできたのに、Table 'xxx.ccfreo_users' doesn't existとか出る
プラグインのセットアップ忘れてない?
(カウンタ、人気コンテンツ、拍手)
そのプラグインのセットアップができない
libs/pluginsが空の状態で1からやりなおしてみる。
(データベースも空っぽにすること)
個別セットアップが必要なプラグインがわからない
公式サイトで「setup」で検索し、index.php/■■/setupの記述を探す。
[多分あってる一覧]カウンタ、ショッピングカート、注文管理、サークル管理、拍手送信、フォーム管理、メニュー登録、メッセージ登録、イラスト投稿、人気コンテンツ、ブログパーツ管理、プロフィール拡張、タスク登録、なぞなぞ認証
インポート成功してるはずなのに表示されない
config.phpのテーブル名のプレフィックス変えてない?
変えてたら戻す。
変えたものを使いたければエクスポートしたファイルをUTF-8N編集できるエディタで開いて一括置換すればOK。
メモ

他のスクリプトも、いったん仮URLにして動作確認後戻したほうが良さそう。
パーミッションにさえ気をつければなんとかなる。
フルパスもサーバの仕様に合わせて変更すること。


メンテナンス画面を用意して、裏で作業…とやってみたのですが、
あらかじめ新サーバに置いちゃえばいいじゃん!とまとめながら気づきました。
片方だけ先にやっておいて良かった。
作業中の手書きメモが物悲しいです。

バージョンアップもしなくちゃいけないな…。

freo思いっきりカスタマイズ設置備忘録

このところしばらくTYPのfreo化をやっておりました。

一番大変だったのはhtml→WDPログ形式の変換でした。

  1. 使用エディタが時期によって違うのでタグの入れ方も違えばタグそのものも違うため、まず統一させる
  2. そもそも大文字小文字がバラバラだったのでEmEditor試用期間を利用してマクロによる一括変換
  3. <font>タグを<span>にしてスタイルシートにする
  4. (段落の行間指定が%表記だと色々おかしくなるのでcssファイルでspanだけでもline-height: normal;にしておく)
  5. 日付とタイトル前後にタブを入れ込む(タグ順序が違うので一気にやらず様子を見ながら)
  6. 1日1行のデータにする(改行を一括で消したら半角スペースが消えるケース発生)
  7. WDPログ形式に変換後、テキスト統合ソフトで全部統合したのち、エクセルでindex.logを作成
  8. インポートテスト後、選り抜き作業をしてもらう
  9. 全部まとめたらインポートして確認できたら終了
  10. 最初からMySQLのエクスポートファイルを見てそっちでやっても良かった気がする

以下自分用freo設置おぼえがき。


導入プラグイン


雑感&小ネタ

コメントもトラックバックも使わないのにfreoを導入したのは、自分で使っているからです。
ですが、配布テンプレートを使用せず発注どおりの見た目にするというのは初めてでした。
結果必要なものまで削ってしまったと思われます。

基本レイアウトをジャジャからもらい、そこに必要なものをコピペ。その繰り返しで大丈夫でした。
ちなみにトップのお知らせ欄は通常インフォメーション機能、右メニューがページ呼び出しです。

ページ一括表示プラグインでサブカテゴリまで読み込まない方法がわからなかったので、ゲームレビューではダミーを作ってます。

root─┬レビュー┬長編┬星みる*1
   │    │   └ドラクエII
   │    │
   │    ├イロイロ┬ゲームバトン
   │    │    ├ストII
~~~~~~~~~~~~~~~~~~~~~
   └長編┬星みる*2┬01
      │     ├02
      │    ├03...

*1がダミー。*1と*2は同じ内容で、*2の中身を呼び出す目次が書いてあります。
ページの目次機能やパンくずリストが使えませんが、もともと無かったものなので支障は無いかと。
要するにレビューより下しか表示されないので、隠すべくレビューと同じ層に置いたれ、という話でした。


あと拍手でセレクトボックスや選択済みラジオボタンなどを使用すると、メッセージ有り扱いになってしまうので「もっと送る」ボタンのみもうひとつつけてみました。

↓元のソース

<form action="{$freo.core.http_file}/clap" method="post">
 <fieldset>
  <legend>お礼メッセージ送信フォーム</legend>
  <input type="hidden" name="freo[token]" value="{$token}" />
  <input type="hidden" name="plugin_clap[title]" value="{$smarty.post.plugin_clap.title}" />
  <dl>
   <dt>メッセージ</dt>
   <dd><textarea name="plugin_clap[text]" cols="50" rows="5"></textarea></dd>
  </dl>
  <p><input type="submit" value="もっと送る" /></p>
 </fieldset>
</form>

↓セレクトボックスを追加

<form action="{$freo.core.http_file}/clap" method="post">
 <fieldset>
  <legend>お礼メッセージ送信フォーム</legend>
  <input type="hidden" name="freo[token]" value="{$token}" />
  <input type="hidden" name="plugin_clap[title]" value="{$smarty.post.plugin_clap.title}" />
  <dl>
   <dt>メッセージ</dt>
   <dd><textarea name="plugin_clap[text]" cols="50" rows="5"></textarea></dd>
  </dl>
 <p>セレクトボックス:<select name="plugin_clap[option][example3]">
<option value="">選択してください</option>

<option value="送られるもの">選ぶもの1</option>
<option value="送られるもの2">選ぶもの2</option>
</select>
</p>
<p><input type="submit" value="もっと送る" /></p> </fieldset>
</form>

↓拍手のみボタンを追加してみる

<form action="{$freo.core.http_file}/clap" method="post">
<fieldset>
<p><input type="submit" value="もっと送る" /></p>
</fieldset>

</form> <form action="{$freo.core.http_file}/clap" method="post"> <fieldset> <legend>お礼メッセージ送信フォーム</legend> <input type="hidden" name="freo[token]" value="{$token}" /> <input type="hidden" name="plugin_clap[title]" value="{$smarty.post.plugin_clap.title}" /> <dl> <dt>メッセージ</dt> <dd><textarea name="plugin_clap[text]" cols="50" rows="5"></textarea></dd> </dl>  <p>セレクトボックス:<select name="plugin_clap[option][example3]"> <option value="">選択してください</option>
<option value="送られるもの1">選ぶもの1</option>
<option value="送られるもの2">選ぶもの2</option>
</select> </p> <p><input type="submit" value="メッセージ送信" /></p> </fieldset>
</form>

これで無駄にメッセージを送らずに済みます。
もっとスマートなやり方があるかどうかは気にしない。

初歩的なことではあるんですが、誰がどこでつまずくかなんて想定しきれないので書き留めておいて損をすることは無いかなーということで。
どこかの誰かの参考になれば幸いです。 

freoのエントリー書き出しプラグインを日付順にソートしたい

でも自力では改造できない。どこをどう変えればいいのかわからない。
というわけで、見つけたのがこちら。

eccube 2.11 Smartyの配列をソートできるようにする

上記に従い、モジュールを“freo設置ディレクトリ/libs/smarty/plugins”に放り込みます。

あとは、エントリー書き出しプラグインのテンプレートにある

 <!--{foreach from=$entries|smarty:nodefaults item='entry'}-->

<!--{foreach from=$entries|smarty:nodefaults|@sortby:'#datetime' item='entry' }-->

にしてしまえば日付順ソート完了。

freo設置でつまづいた点

諸々初心者なので、わかるひとには意味のわからないつまづき方をしてると思います。
自分用奮闘記。

登録編集画面の文字が妙に小さく表示されてしまった。

freoの登録編集画面の文字が小さくなってしまうのを解消するには

上記ページを参考に、該当ファイルを覗いてみたところ、そもそも“js/common.js”の設置パスを変え忘れていました。
(デフォルトでは“freo”ディレクトリ内に設置するようになっている)
同じ事を2回やらかしてしまったので、この先同じ事を繰り返さないように書き留めておきます。

※自分用追記
サブドメインを後から指定するので、ドメイン以下の設置パスでない時は文字が小さくても気にしないこと。


ページタグを選ぶと“Warning: Division by zero in /*****/libs/freo/internals/page/default.php on line 488”と出る。

“Warning: Division by zero”でググると「0で割ろうとしてるよ!注意!」というようなことはわかった。
488行目に何があるか見てみた。

$page_page = ceil($page_count / $freo->config['view']['page_limit']);

何やらこの“/”は文字通り、割り算のようで。
要するに“/”以降のconfig設定?の数値が0になっているので、0での割り算が発生してるという話ですね。

設定を見返してみたところ、設定管理>表示設定>表示件数>ページの1ページの表示件数が0になってました。
いつの間に…。

ということで他と同じように試しに10件にしてみたところ、エラーは起きませんでした。良かった!


ページ表示してるときにエントリータグクラウドが表示されなかったりカテゴリの数字が0になる。

どうも表示される場所が固定されるとかで、共存できないっぽいです。
しょうがないのでページ表示のみのユーティリティだけ置くことにしました。

libs/freo/plugins/config.category_count.phpなどの設定ファイルに、表示させたいプラグイン名を書けば良さそう。

//displayファイルの読み込み設定
define('ccfreo_PLUGIN_CATEGORY_COUNT_LOAD_DISPLAY', 'default,entry,category,view');

ここに

//displayファイルの読み込み設定
define('ccfreo_PLUGIN_CATEGORY_COUNT_LOAD_DISPLAY', 'default,entry,category,view,page');

こう追記したところ、表示されました。めでたしめでたし。

ページイメージ分類別表示プラグインにも同じように表示させるには、"page_image_categorized"を追加。他プラグインでも対応可能。

※その場合、テンプレートのdefault.htmlに{include file='utility.html'}と書き足す必要あり。


ping送信プラグインの導入関連

Ping 送信 Plug-in

ソースのコピペは<? ~ ?>にすること。

ロリポップでのPEARとXML_RPCの導入は以下を参考にしました。

ロリポでPEAR

WEBからののPEARインストール

余談ですが、投稿時に重くなるので取り下げました…。

Pagination

  • Newer
  • Older
  • Page
  • 1