tsukalogo0000


alt

joomlaバックアップ&再構築

最近バックアップが取れてなかってそろそろローカルで再構築しておこうと思っていたやさき…
今回、ハッカーにサイト攻撃されバックアップに踏み切るきっかけができた(笑)
●単純には、以前書いた通りデータベースのマスターを元のサーバー管理画面から抜き出して、joomlaのファイルはFTP経由で移動させるだけ念のためにちゃんとバックアップされているか確認のためPCのXMAPPコントローラーで一度稼働させプレビューさせて本サーバーに上げて行く。


《joomla!のMEMO》

joomaのインストール(基本作業とMAPPに再構築)
http://ameblo.jp/tsukapiko/entry-10854923259.html

joomlaのPHPベースのMySQLデータをエクスポート&インポート/アメンバー限定
http://secret.ameba.jp/tsukapiko/amemberentry-10855604960.html

XMAPP(MAPP) によるローカル環境にjoomlaを再構築
http://tsukapiko.minibird.jp/index.php/webdesign/joomlacms/180-mampaxampp.html

サイトがハッキングに(対応と処置・joomlaのVerアップ)/アメンバー限定
http://secret.ameba.jp/tsukapiko/amemberentry-11222587023.html


■記載漏れ及び高度な注意点


◎本来joomlaCMSも各ページのリンクは相対パスで自動リンクしていくもんだが一部記事やテンプレート、カスタムモジュール内など、jQuery等、絶対パスで書かないと機能しなかったりする。当然、ローカルで展開したりサーバーが変わるとリンク切れを起こすので入れ変える際、注意が必要。

◎joomla!テンプレートのフォルダ名をオリジナルから任意に変更したらデーターを移行した時に管理画面で上手く認識しない様だ。この事でデフォルテのテンプレートのhtmlとcssが蹴られてスタイルやメニューがバラバラになる。

◎以前にも書いたが、XMAPPをMacのローカルで動かした時にMySQLのみグリーン点灯するがアパッチが稼働しない場合はMac→web共有を切る

●2MB以上のデーターベースを移動する方法


データベースは大抵容量制限がかかっていて、2M以上インポート出来ない。その際、BigDumpダンプ(http://www.ozerov.de/bigdump/)を使うBigDumpは、PHPベースのMySQLインポートツール1つのSQLファイルサイズがかなり大きくても大丈夫なようだが(このサイトは現在約30MB)エクスポートするSQLファイルはいろいろな制約がある。

《1》 BigDumpのダウンロード

BigDumpのページの右にある「BigDump ver. 0.34b (beta) 」をクリック。


《2》 BigDumpの設定

ダウンロードしたアーカイブを展開し中にあるbigdump.phpをドリームウエーバー等のエディタで開き、データベースに接続するための以下の情報を編集します。
// Database configuration。

$db_server = 'localhost';
$db_name = '';
$db_username = '';
$db_password = '';
それぞれの設定内容は次のとおり
  • $db_server:データベースサーバ
  • $db_name:データベース名
  • $db_username:データベースユーザ名
  • $db_password:データベースパスワード
また、文字エンコーディングの設定もある。
// Connection charset should be the same 
as the dump file charset (utf8, latin1, cp1251, koi8r etc.)
// See http://dev.mysql.com/doc/refman/5.0
/en/charset-charsets.html for the full list
// Change this if you have problems with non-latin letters
$db_connection_charset = '';
 
UTF-8を設定する場合は次の文字を挿入。
$db_connection_charset = 'utf8';
$db_connection_charsetの設定はインポート実行で データが文字化けした場合のみこの設定を行う、 データベースを一旦削除・再作成して再実行するといい。 特に書き込まなくてもたいてい問題はないようだが、 取りあえずUTF-8は設定しておいていいだろう。


《3》 bigdump.phpの起動

bigdumpフォルダ(名称任意)内にbigdump.phpとアップロードさせたいdbをディレクトリに入れたらブラウザからbigdump.phpにアクセス、データベースの設定が正しければ次のような画面が表示。


データベースの設定が正しくない場合は次のような表示になる。


《4》 SQLファイルのアップロード

もし、SQLファイルのサイズがそれほど大きくなければ、bigdump.phpを使ったアップロードも可能らしい。アップロードするには、4項で表示されているbigdump.phpのフォームからSQLファイルを選択し、「Upload」をクリック。これでbigdump.phpと同じディレクトリにSQLファイルをアップロードします(この操作ではインポートは実行されない)。


アップロード可能なファイルサイズは、サーバによって上限が異なるらしい。FTPによるアップロード、またはbigdump.phpを使ったアップロード、いずれの場合も、アップロードしたファイルは次のように表示される。


ここでは1ファイルのみですが、複数のSQLファイルをアップロードすればすべて表示される。


《5》 インポート実行

表示されたSQLファイルの一覧にある「Start Import」をクリックすれば、インポートを開始。

次のように表示されればインポート完了。実行ラインやクエリー数、バイト数などが表示される。


インポート完了後、画面下にある「Start from the beginning」をクリックして最初の画面に戻る。
このとき、絶対にブラウザの「戻る」で戻らない事(インポートが再実行される)。 
一覧の右側にある「Delete file」をクリックすれば、サーバ上のSQLファイルを削除し、再実行を防ぐ(削除されないケースもあるらしい)。


※データーベース名が重複しても、エラーが出るので注意が必要。
さらに注意すべき問題として、joomlaを新規インストールすると、データベースを読み込まず、既存のデータベースを一旦消去して、新たにインストールするとデータベースを認識する。


《6》 インポート時のエラーについて

「Start Import」を実行したあと、以下のエラーが発生する可能性がある。


このエラーの原因は、1回にINSERTするときの行数が300行以上ある場合。ファイルサイズの小さいSQLファイルでも、1つのINSERT文に300行以上の内容が含まれていると、このエラーが発生する可能性がる。このエラーを回避するには、phpMyAdminからエクスポートするときに、「作成するクエリの最大長」の値を変更します。minibirdは、デフォルトで50000になっているので、この値を300などに変更してエクスポートこれで1回のINSERT文が300行以内になる。


この値について、例えば10などを設定しても、1つのINSERT文に1レコードの情報が入らなくなるということはない。尚、マスターのデータベースを消去する前に値を変えて
出力をしないとインポート出来ず取り返しがつかない事に…

小粋空間phpMyAdminでインポートできない大きなファイルを一気にインポートできる
http://www.koikikukan.com/archives/2012/04/04-000300.php

phpMyAdminからうまくSQLファイルをインポートできなかったのでBigDumpを試してみた
http://bambooo.jp/tips/1457.html

●バックアップにJoomlaPackを使う。

joomla管理画面のインストールからzipファイルを読み込んでコンポーネントからコンパネを出したら、何も考えずバックアップを押すだけ。




本来は、出力先や圧縮方法などの細かい設定があるみたいだけど、そのままで大丈夫だった。



そしてそのデータを圧縮状態でエクスポートしたら完了。dbデータもすべて格納されているみたい



ただそのままhtdocs=ディレクトリ内にフォルダの中身を移動してもサイトが復元されないーおそらくファイル自体は正確にバックアップされてるのだろうけどなんかのファイル情報が欠損もしくは違っているのだろう…
やはり、ftpから手作業コピーの方が、その都度確認ができるからこの機能は気休め及び応急処置程度で考えていた方がいいだろう。

joomlaの道しるべJoomlaPack - サイトを丸ごとバックアップ
http://www.joomlaway.net/extension-new/70-access-a-security/backup/923-joomlapack.html

Joomla CMSの使い方で困ったら Goyat
http://goyat.info/faq/the-news/120-joompack-warning.html

 

alt

Facebook“いいね”と“シェア”ボタン設置
ソーシャルメディア中でTwitterとfacebookは最低でも押さえておきたい。特に、Facebookは自分のウォールにメモ程度にチェックする“いいね”ボタンと自分のウォールと友達にもニュースフィールドで公開する“シェア”ボタンがあるのでその辺も考えてうまく連動したいもの。実は最近この2つは統合され表向きは全く同じ機能となる。しかし根本的な相違がある、つまり“いいね”ボタンを押しコメントを入れるとニュースフィールドにまで反映されるのが新しい機能なのだが、本来軽い気持ちでクリックしたいボタンのハズ。しかもコメントの誘導がやや不親切。
片や“シェア”ボタンはしっかり外部にポップアップが出るし、“いいね”は同じユーザーが複数ボタンが押せないのに対して“シェア”ボタンは何回でも押せるので、廃止されないのならば用途に応じては押す側も押される側も意外と使いやすいボタンなのでは?と思ってる。
little_shotaro's blog参考→http://www.littleshotaro.com/archives/291

 

■現在の“いいね”ボタン設置方法
まずfacebookにログインした状態でFacebook開発者 アプリに登録するなかなかこのアプリの登録や新しいアプリケーションの作成って良く解らない…
  • ①アプリケーションを作成→アプリ名を設定
  • ②左WebsiteメニューでサイトURL、とドメイン名を入れる
  • ③設定したアプリを開きアプリIDを控える
  • Like Button – Facebook開発者にて必要な情報を挿入
    ※左のメニューから様々なタイプが選択できる。
  • ④Get Like Button Codeではボタンのスクリプトのコード
  • ⑤Get Open Graph Tagsではメタ情報のタグが出る
  • ⑥それぞれを自分のサイトに挿入する
以上が大まかには以上の流れ

 

■joomla!プラグインでの設置方法
自分の場合、運営サイトがjoomla!になるので、plg_facebooklikeandshare_1.5_v3.7プラグインで作成する事に。

●www.compago.it/software/41-compago-software/308-facebook-like-and-share-buttons-plugin-joomla-16.html
上記サイトから管理画面経由でダウンロードした後、プラグインでContent - Facebook Like And Shareをクリック英語版なのでパラメータ設定が良く解らないが?

  • General Plugin Settingsで“いいえ”“シェア”ボタンの表示、非表示を行う
  • Select a language codeはボタンの言語だが、japaneseにしても日本語にはならず
  • Enable on Article view……一般記事に反映
  • Enable on FrontPage view……フロントページに反映
  • Enable on Section view ……セクションページに反映
  • Comments box colors scheme……ボタンのバックカラー処理
  • Container ……なしからdivやpの定義付けができる
  • CSS style……細かい指定が可能
※いいね、シェアボタンもコメントボックスの設置も意味は同じ さらに細かい設定を拡張パラメータで行い、微調整はjoomla!のCSS設定で最終的に修正する。ただ、Facebookの“いいね”ボタンはコンテナーの中に隠れてしまって表示されるのと、“いいね”にコメントは必要ないと判断したのでこのプラグインは使用せずシェアのみ使う事に…“いいね”ボタンはスクラッチでカスタムHTMLのモジュールとして埋め込みTwitterのコードと共に並べて設置した。

■twitterとfacebook“いいね”ボタンのコード

●CMSなので表示されたページを自動取得するコードを書いている

<table width="300" align="left" style=border="0" cellpadding="10">
<tbody>
<tr>
<td width="150">
<a href="https://twitter.com/share">ツイート</a>
<script type="text/javascript">// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
if(!d.getElementById(id)){js=d.createElement(s);js.
id=id;js.src="//platform.twitter.com/widgets.js"
;fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// ]]></script>
</td>
<td width="100" align="left" >
<script type="text/javascript">
 var url = encodeURIComponent(location.href);
 document.write('<iframe src="http://www.facebook.com/plugins/like.php?
href=' + url + '&amp;width=100&amp;layout=button_count&amp;show_faces=false&amp;
action=like&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" 
style="border:none; overflow:hidden;width:120px;height:23px;
" allowTransparency="true"></iframe>');
</script>
</td>
</tr>
</tbody>
</table>
この辺は管理的にはやや複雑になってしまったが、なるだけ全て横並びかつコンパクトにしたかったが為。又“いいね”ボタンのコメント表示がこのプラグインでは非表示に出来なかった。joomla!はこんな感じだが、MTや特に早くからブログパーツをぶら下げていたWordpressなんかはもっと簡単だろう。

 

一般的なソーシャルボタンの設置は以下を参照に

ソーシャルボタン設置方法まとめ→http://design-spice.com/2011/08/09/social-button/

ソーシャルメディアに共有するボタンの設置方法→
http://creazy.net/2010/09/howto_setup_social_media_button.html#section_facebook

OGPの設定について→http://helmetz.net/webdesign/2011/11/facebookogp.html

OGPの活用術→http://blog.livedoor.jp/gx_socialmedia_lab/archives/2624886.html

※OGPとは簡単に言うと「このウェブページは何のことを書いているか」という情報を、プログラムから読める形で HTML に付加する記述方法のこと。

 

 

alt
インデックススライダーメニュー
jQueryでインデックスメニューをクリックすると下にその説明分がスクロールしてきてさらに内容のリンクをクリックするとページに飛ぶというもの。演出としては効果がない事はないが回りくどい仕掛けだけに必要かどうかは不明ですね。実はここのjQueryもjoomla!の記事内にメタ情報でスクリプトをそのまま書いて載せているのだけど、つい編集機能で保存してしまうと、禁止タグが消されてしまってjavascriptも消されてしまいエラーや動作不良が起こる。かといって禁止タグを削除しない様にしたらタグの間違いを探すのも面倒だし… 以前は、様々な検証やタグ同士の干渉を調査する為に、記事に書いていたjavascriptだけど事前にカスタムHTMLでjQueryを作っておいて任意のモジュール名”slidermenu”を作り、そのモジュール{ loadposition slidermenu }を下記の様に読み込めば簡単に間違いなく処理できる。ただ同じ要素のタグ同士が入るとこれまた干渉して機能しない。(例えば、この記事にスクリプトを直接書いたものとその後にロードポジデョンでjQueryを動かそうとすると駄目だった。そこがflashと違って気難しい所だ)


 

alt

エラーページをカスタムで作る

オリジナルのエラーページを作成して、親切に誘導する。
下記が通常のjoomla!エラーページです。かすかにインデックスページにリンクがある。

●作り方は簡単でまず、普通の記事を作りエラーページの内容を盛り込む。
●そして401〜403〜404〜500までの各種エラー内容を記載し誘導文を入れる。
●仕上がったページのIDを控えておく



●error.phpファイルの更新
/joomla/templates/現在使われてるテンプレート名/error.phpを作ります。
内容は次のようにする。
<!--?php
if(($this--->error->code)== '404'){
header('Location: index.php?option=com_content&amp;view=article&amp;id=172');
exit;
}
?>
 

article&id=172の部分はさっきメモした記事IDを入れます。もし作ったエラーページのIDは172なら header('Location: index.php?option=com_content&view=article&id=172');にします。

 

alt

MAMP & XAMPP

スノーレパードにはローカルでCMSを走らせた事なかったのでバックアップもこめてMAMPをインストールして構築しようと… しかしどうやってもjoomlaのインストール画面のデータベース照合画面からエラーが出てまったく進めなくなってしまった…。MySQLのヴァージョンだのjoomlaのインストールVer.やMAMPのヴァージョン(最新は2.0.2→1.9.6.1)に落としてみたり完全にハマってしまったところで、はたと10.5以上からはXAMPPが使える事を思い出して使ってみる事に…

joomlaの道しるべ設定編→
http://www.joomlaway.net/tutorial/15x/163-15x-install/1251-joomla-install-for-xampp-lite.html

XAMPPのダウンロードサイト→http://www.apachefriends.org/jp/xampp.html

●ここがXAMPPの管理画面 http://localhost/xampp/ 私ははMacなんでforMacからダウンロード。


●ローカルの階層はこんな感じ HD>XAMPP>xamppfiles>htdocs>joomla(仮称) このjoomlaフォルダにjoomlaの解凍したデータもしくは引っ越しして持ってきたjoomlaデータを掘り込む。ここでconfiguration.phpデータのデータベース名とパスワード等の照合は注意が必要。


●このアドレスでローカルのサイトが見れる http://localhost/Joomla/
さっそく上記アドレスから起動。いつものjoomlaのインストール画面へ… すると、しょぱなのチェックですでにconfiguration.phpにてutf8のエラー警告が発せられいた〜なんだかMAMPより親切。 画面の指示通りデータベース、パスワードを入れて進んでいくと最後にconfiguration.php内のソースも画面の下に出てきてこの内容でディレクトリ内に入れてくださいとばかりに親切にナビゲートしてくれた〜。 どうやら今回のインストールエラーはスノーレパードのHDセキュリティが利いていてインストール時、configuration.phpに書き込みが出来なったという訳だった。マイッタ。

▼XAMPPでjoomlaをインストールしていった場合のエラー表示


▼MAMPでは同じインストール画面でエラー表示が出ない。

このまま進んでいくと最後の画面でconfiguration.phpのデータ入力ソースが出る。


▼MAMPのデータベース入力画面でパスワードとデータベース名を入れて次の画面へ


▼最初MAMPにインストール時に出たエラー


なかなか、いつもやり慣れていなとつまずきがち。MySQLのデータベースのインポートは元の空データベース名はインポート用でエクスポートしてきた名前に合わせてインポートすべし。そしてconfiguration.phpデータでデータベース名を変更。この辺はMySQL自体親切なのでやはり文字関連とデータベース容量が多い場合が大変だ。


XAMPP ControlでApacheのインジケータがレッドからグリーンに変わらない原因の一つは、Web共有が切れている場合がありますね。

 
<< 最初 < 1 2 3 4 > 最後 >>
2 / 4 ページ