ヤバイヤバイ

自前サーバのphp更新しようとしてバックアップ取って作業したら本番サーバやった。

しかも失敗してて慌ててバックアップに差し替え。

いや〜思い込みってのは恐ろしいもんです。

ssh時プライベートipは必ず確認しよう。

AWSのCloudFrontに既存のWordPressサイトを組み込ませる

ここみててなるほどと思ったので試してみた。

WordPressサイトをCloudFrontで配信する
http://qiita.com/Ichiro_Tsuji/items/38592e737257cb45ca13

で、
AWSのCloudFrontに既存のWordpressサイトを組み込ませるのにちょいと試行錯誤してみた。

目標:現サイトのドメインでcloudfrontに接続させる。

現サイトはsub.hoge.comとした場合の流れ。

  1. httpconfのVirtual Hostから、ServerName”sub.hoge.com”を”sub-cloud.hoge.com”に変更
  2. serverをリスタート
  3. Route56のhostzoneに”sub-cloud.hoge.com”を追加、EC2のIPを指定
  4. wordpressのsite URLを”sub-cloud.hoge.com”に変更
    先のURLではhomeURLも変更とあるけど、変更したらログインできなくなったのでそのままでやってみている。
  5. cloudFrontのオリジンに”sub-cloud.hoge.com”を追加
  6. cloudFrontのCNAMEsを現サイトの”sub.hoge.com”に変更
  7. Route56のhostzoneに”sub.hoge.com”をエイリアスに変更、cloudFrontのDomainName追加

これでとりあえず稼働中。
爆速や!

AdvancedCustomField:wordpressでカスタムフィールドを使って投稿に紐づいた動画を取得して一覧で表示させる。

WP_Queryを作ってwp_oembed_getでコードを出力、あわせて出力コードを加工する感じ。
あとはレスポンシブをどうするかやなぁ。
にしてもAdvancedCustomField便利だなぁ。

$args = array(
			'post_type' => 'hoge',  // カスタム投稿タイプの名前
			'meta_key'=>'movie_url',     //カスタムフィールドのフィールド名
			'meta_value'=>'null', //カスタムフィールドの値
			'meta_compare' => '!=' //空ではない
		);
	$the_query = new WP_Query($args);
	/*movie_urlの含まれるカスタム投稿から動画のみ抽出 */
	if($the_query->have_posts()){

	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		get_the_title($post->ID);
		$url = get_field("movie_url", $post->ID);
		$embed_code = wp_oembed_get( $url, array( 'width' => 320 ) );//とりあえずembedタグ上でサイズを決めておいた
		$embed_code = preg_replace("@src=(['\"])?([^'\">\s]*)@", "src=$1$2&showinfo=0&rel=0", $embed_code); //コードを整形、第二引数でお好みのスイッチつける
		echo $embed_code;
	endwhile;

参考
WordPressで、カスタムフィールドが特定の値の記事のリストを作成する

wp_oembed_get:WordPress私的マニュアル

Modify Youtube Oembed URLs to remove showinfo and more

横スクロールが必要なデカイ画像のときに重宝したjQueryプラグイン

どうにもこうにもでかい画像にイメージマップ仕込むといううことになって、
スマートフォンならピンチなりで拡大したりドラッグできたりと、直感的な操作ができるけど、
PCだとキーボードとマウス組み合わせて動かさなきゃなので使いづらいことこの上なし。
なんかええ方法ないかいなと探っていると見つけた。ドンピシャ。

【JavaScript】ドラッグ可能な横スクロールを実現するkinetic.js【プラグイン】
http://davetayls.me/jquery.kinetic/

開発元はこちら。
http://www.p-nt.com/technicblog/archives/140

AWS S3をネットワークドライブ扱いにしたいので覚書

 

AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFAで2段階認証
http://qiita.com/yoshidashingo/items/cd206daca0596659b440

Mac OS X Yosemiteでyas3fsを使ってS3をマウントする
http://qiita.com/mmizutani/items/69687c88386e7eb12bb7

AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティング

AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティング

WordPressの画像ファイルをS3に保存する(メディア機能連携)

WordPressの画像ファイルをS3に保存する(メディア機能連携)


https://dogmap.jp/2013/03/01/nephila-clavata/

concrete5からアップロード

concrete5 CMSのファイルアップロード先をAmazon S3に指定する

AWSの課金が始まった。

無料試用期間一年経って、Amazon Web Servicesの課金がスタート。
で、トータル52ドルと15セント。
現在の契約はEC2、RDSともにmicroInstance。
5ドメインを運用している。

以下内訳。

AWS Service Charges $52.15
Data Transfer $0.34
Elastic Compute Cloud $20.65
RDS Service $24.97
Route 53 $2.53
Simple Notification Service $0.00
Simple Storage Service $0.01
CT to be collected $3.65
GST to be collected $0.00
US Sales Tax to be collected $0.00
VAT to be collected $0.00

正直やすいか高いか良うわからんね。

wordpressをダンプで移行時、Call to undefined function wp_register_plugin_realpathエラー

wordpressをダンプで移行時、Call to undefined function wp_register_plugin_realpathエラーが起きた。

ググって見るとAdvanced Custom Fieldsプラグインにてレジストされたプラグインを利用している場合に発生するようなので、移行元のMysQLからダンプ準備する際にプラグインをいったんはずし、ダンプ作成。

その後移転先にエクスポート、改めてプラグインを有効にすることで回避可能ー。

dreamhostのone-click installsにしてやられた

dreamhostのone-click installsはDBも一緒にセットアップしてくれる上、
アップデートも自動でしてくれるので頼もしいのだけど、
Dreamhostに設置しているCMSのインストールディレクトリを先日軒並み変更していたら、
当然のごとく自動アップデートは登録されたディレクトリに対してアップデートかけるわけで。

個人管理のサイトが軒並み初期化。

ということで、Dreamhostのone-click installされたリスト確認して
自動アップデートはNotifyだけにして、
今後は手動で。

dreamhost one-click installs
Dreamhost one-click instals

まあ、このリスト画面でインストール先変更とか出来ればええのやけど、
それはそれでまずいわな。

まあ、手動で戻せばいいのやけど、問題はそのもどさなならん数やな……

ほえほえ

Googleアナリティクスのアドバンスフィルタで正規表現を使う

業務の中でgoogleAnalyticsの集計時にアドバンスフィルタ使うことがあるのやけど、
抽出条件がややこしいと、条件を一杯追加する形になってめんどくさかった。

で、正規表現使えないのかと調べると、やっぱり使えた。
プルダウンで正規表現一致を選択すればいいのやった。
googleanalytics_Regex

あとはカンペみて式考える。
アドバンス フィルタ 正規表現

アイキャッチ画像に外部サービスから直接展開させる

アイキャッチ画像に外部サービスから直接展開させる
http://wordpress.org/extend/plugins/remote-images-grabber/

基本的に登録したアドレスから画像を自サイトにもってくるプラグイン。
なのでアイキャッチに追加したい場合、一度画像ダイアログ表示して、
grabber経由でサイトにダウンロード。
その後メディアライブラリタブから該当する画像を表示させてアイキャッチに設定。

解説
http://www.dekipaso.com/info/thumbnail-for-excerpts.html

つっても毎回登録するのはめんどくさいので、投稿から自動取得するものないかと
探すとこちらが。
auto post thumbnail
http://wordpress.org/extend/plugins/auto-post-thumbnail/
201208現在Fixされているかもしれなけど、3.4上でバグ顕在化とのこと。

facebookページにコンテンツ追加する方法 覚書


facebookからiflame内コンテンツ連携するのはhttpsでの接続が必要。

アプリのiflame内での追加に関して仕様変更。
現状はアドレスから直接打たないと追加できない形に。
http://www.koikikukan.com/archives/2011/12/15-015555.php

https://www.facebook.com/dialog/pagetab?app_id=アプリのID&display=popup&next=接続先URL

wordpresのリダイレクトプラグインを不許可にする必要

WordPress側でテンプレート用意(リンクはさせない場合)
?fb=facebookで読み込むテンプレート指定

/******* facebook ファンページ内用 ******/
if($_GET[“fb”] == “facebook”) {
//facebook iframe用テンプレートを読み込み
get_template_part( ‘facebook_iframe’ );
exit();
}

facebook_iframeテンプレートを用意する。
場合によってヘッダー、フッター、CSSを準備。

そんなこんなでまさぐってみた。
http://www.facebook.com/pages/DMT/198730220168420

CPIサーバーでphpを動作させる:解決

CPIにて幾つかサイト運用開始したのやけど、自由に扱うにはちょいと作法がいる。
参考:PHPを動作させる
http://hanazono-news.blogspot.com/2010/08/cpiphp.html
htdocsのルート上でhtaccessとして以下記述しておく。

PHPを動作させる
AddHandler x-httpd-php528 .php

php.iniを追加できるように
suPHP_ConfigPath /home/アカウント/html/

もいっちょ念のためファイルのアクセス拒否
<Files ~ “^(\.htaccess|\.htpasswd|php\.ini|.*\.sql|.*\.log|.*\.cron|.*\.inc|.*\.phps|.*\.yml)$”>
deny from all
</Files>

あとはmod_rewriteのおまじない
Options +FollowSymLinks

これでよし。

wordpressにて日本語の入力ができない:解決

サーバーによってはmbstring.internal_encodingがEUCになってる場合があり、
そんな時はutf8のエンコードのwordpressからは日本語登録ができない模様。
解決策としてはphp.iniでmbstring.internal_encoding= UTF-8
を設定してやる。
※htdocsディレクトリでphp.iniが置ければの話し。
無理ならhtaccessで試すこと。
でも、他のプログラムが走ってたら解決策は変わるやろな。

参考
http://ja.forums.wordpress.org/topic/100
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%92%B0%E5%A2%83php.ini%E8%A8%AD%E5%AE%9A

DreamhostにPimcoreインストール

気になったのでPimcoreをインストールしてみた。

インストレーションガイドの流れで特に問題なしやけど、WEBインストーラ起動すると
環境チェックで弾かれるのでDreamhost側で
PHP modeはPHP 5.3 fast modeに変更。

いやー、全然使い方分からんが、これからすな。

で、インストレーションガイドの流れで設定したcronがエラーを吐くので調べたところ、

chdir(__DIR__)

でこけている模様。__DIR__がphp5.3からとのことやけど、なんでやろ?

まあ、

$current_dir = dirname(__FILE__);
chdir($current_dir);

として回避した。
エラーは返さなくなったけど、実行できてんのやろか。
アップデートの度に更新せなならんのかな。