WP4.7になったら500エラーでアクセスできなくなってた。

僕はWordpressの自動アップデートを有効にしてるんですが、その自動アップデートの影響でアクセスできなくなっていたのでその解決のメモ。

エラーログから検索して、Topic: READ THIS FIRST WordPress 4.7 Master List « WordPress.org Forumsに行き着きました。

僕の場合プラグインに原因があったようで、提示されている解決策の「全てのプラグインを無効化する」で解決しました。とはいえ、管理画面にすらアクセスできないので別の方法で無効化し今度は逆にひとつづつ有効化していき原因を突き止めました。

手順

  1. プラグインを無効化する(無効化したいが、管理画面にアクセスできないので以下の2つの方法がある)
    • DBを直接いじる
    • SFTPで接続してプラグインのフォルダ(/wp-contents/plugins)を一時的にリネームする
  2. 無効化したら、管理画面にログインしプラグイン管理のページに移動する。ここの段階でフォルダをリネームした場合は元に戻して画面をリロード
  3. ひとつづつプラグインを有効化してみる
  4. ダメなのに当たったら、アップデートするか保留する

以上

レンタルサーバではじめるモダンなDrupal8環境

目的

Composerを使ってDrupalを管理したいし、できる環境を見つけておきたい。

けど、レンタルサーバってそれぞれ制約が違う
ソースコードで全てを管理しておけば楽なのでそうしたい。
中級者向けくらいの記事かなと思ってます。

レンタルサーバ探し

AWSとかHerokuとか使えばいいんだけど、そうじゃないケースもあったので探して見ました。最初の候補はさくらインターネットでスタンダードプランを試したけど、Drupal8が素直にインストールできなさそうだったのでやめた。サーバの制約で.htaccessとかを書き換えるとかはないかな。
次はXserver。結論から言えばここを試用中で、その詳細は以下から。
Read more レンタルサーバではじめるモダンなDrupal8環境

買ってよかったガジェット2015 MDR-EX31BN

買ってよかったガジェット2015はワイヤレスノイズキャンセリングステレオヘッドセットMDR-EX31BN。同僚の田中さんの真似をした。

MDR-EX31BN | ヘッドホン | ソニー は色々自分の希望を満たしてくれて一万円以下はリーズナブルだと思う。

  • ノイズキャンセル機能
  • ワイヤレス
  • 音質そこそこ
  • 通話可能

多分後継機が出ても買うと思う。価格.com – SONY MDR-EX31BN (B) [ブラック] 価格比較

良いところ

ワイヤレスは良い。仕事をしてて急に立ち上がったりウロウロしてもケーブルで引っ掛けることを気にしなくて良い。ノイズキャンセルも良い。背後で掃除機かけていても気にならないレベル。

良くないところ

本体のクリップのちからが弱くてTシャツとか、胸ポケットか襟がない服の時は辛い。電池の残量がわかりにくいし、突然切れる。アプリとかに警告出して欲しい。通話機能はおまけ。カナル型のイヤホンのせいで自分の声がこもって聞こえるので違和感がある。

おすすめする人

外界から遮断された方が仕事の効率が上がる人。自宅やカフェなどで仕事する人。

Elastic Beanstalkで504返してきたのはELBのタイムアウトの設定が短かったから

DrupalをElastic Beanstalk環境にインストールしている時に、インストールプロファイルで長めの処理をさせたら時々エラーが出るようになった。

An AJAX HTTP error occurred. HTTP Result Code: 504 Debugging information follows. Path: http://ebgeminifirst-prod.elasticbeanstalk.com/install.php?profile=gemini_first&locale=en&id=1&op=do StatusText: GATEWAY_TIMEOUT ResponseText:

そんな時は、ELBの設定のConnection Settings: Idle Timeout: 60 secondsを適切な値に変更すれば良い。

Elastic Load Balancing のトラブルシューティング: HTTP エラー – Elastic Load Balancing

HTTP 504: Gateway Timeout

説明: リクエストがアイドルタイムアウト期間内に完了しなかったためロードバランサーが接続を閉じたことを示します。

原因: アプリケーションの応答が、設定されているアイドルタイムアウトよりも長くかかっています。

解決方法: HTTPCode_ELB_5XX および Latency CloudWatch メトリックスをモニタリングします。これらのメトリックスに増加があった場合は、アイドルタイムアウト期間内に応答しないアプリケーションが原因である可能性があります。タイムアウトしようとしているリクエストの詳細を確認するには、ロードバランサーのアクセスログを有効にし、Elastic Load Balancing によって生成されたログの応答コード 504 を確認します。必要に応じて、バックエンドのキャパシティーを増やしたり、設定されているアイドルタイムアウトを長くしたりして、時間のかかるオペレーション(大容量ファイルのアップロードなど)が完了できるようにします。

GooglePlay版Nexus5でSWR10での動作を確認した

とりあえず問題なく動いてるっぽい。

なんでわざわざ書いてるかと言うと、日本版のソニーモバイルのサイト”SmartBand SWR10 | ソニーモバイルコミュニケーションズ“では対応機種にNexus5が含まれていなかった。
発売日にビックロの店員さんからソニーモバイルの営業さんに確認してもらった所、使えないっぽいと電話があった。

対応機種(グローバルサイト)

Compatibility – other brands
LG Nexus 5, LG Nexus 4, Samsung Galaxy Note III, Samsung Galaxy S4, HTC One, HTC One M8

動作条件

Requirements
Android 4.4
Bluetooth® 4.0 Low Energy (BLE)
Lifelog app
Smart Connect app
SmartBand host app

SmartBand SWR10 Specifications – Activity Tracker – Sony Smartphones (Global UK English)
Read more GooglePlay版Nexus5でSWR10での動作を確認した

JetpackのJSONAPIプラグインでWordPressにアクセスする

access-with-jetpack_jsonapi
正確にはJetpackと言うプラグインの中のひとつの機能という位置づけですが、ちょっとおもしろそうにだったので実験。

デフォルトでONになってた気がするけど、不要ならOFFにしておいた方が良いかも。アクセスはWordpress.com経由で来るっぽいのでアクセス元を特定しにくいだろうし、取得できるデータはとても再利用しやすいから悪意があったら悪用し放題ですね。
Read more JetpackのJSONAPIプラグインでWordPressにアクセスする

ネット越しにXdebugでリモートデバッグ

ちゃんと理解してないかもだけどメモ。

リモートデバッグと言われると、借りたVPSとかでも今までと同じようにデバッグできると思ってたけど、それは違ったみたい。

おそらく同じネットワーク内にいるか、それっぽくしないとダメな様子。

すぐ思いつくのはVPNだけどセットアップが手間だな〜と思ってたけどSequel ProみたいにSSHトンネルで接続ってどうなんだろと思って調べてみたらできた。

$ ssh -R 9000:localhost:9000 username@dev.example.com

Read more ネット越しにXdebugでリモートデバッグ

Meteor jsの今(2013-07-03)について

png

日本でもリリースされた2012年にはすこし盛り上がってた様子で、2013年の4月には東京でMeetupがあったようです。しかし現在、検索できる形で観測する限りユーザは増えておらずもったいないな〜思い“Meteorの今”についてこの記事でアピールしていこうと思います。

まず、日本語でMeteorについて検索してみると辿り着くおすすめ記事三本

そしてこの記事では、naoyaさんの当時のMeteorに対しての“まだ微妙なところ”を引用しつつ現在 0.6.4はどう変わったのかという話しにしたいと思います。

前提としておそらく当時のバージョンは0.4.1より低いと思われます。

以下、Meteor.js – naoyaのはてなダイアリーからの引用

“できたばかり” という感じは否めない。たとえば Minimongo によるモデルには認証の仕組みが全くない。Minimongo はクライアントサイドで操作もできる上にそれがサーバサイドにも反映される。なのに認証がない = アプリケーションに保存された全データをクライアントでいじり放題、ブラウザの Console からでも操作できる。つまり、まだまともなデータベースアプリケーションを作れるフェーズではない (認証がない点については、ドキュメントにもそう書いている)。 認証だけでなく、そもそも Minimongo の機能がちょっと少ない。

Meteor 0.5.0より認証機構が用意され

Meteor.allow

Meteor.deny

によって権限のコントロールが可能になりました。通常のパスワード登録に加え、Google、Twitter、Facebook、GitHubなどのoauthのパッケージも追加され

{{loginButtons}}

とテンプレートに記述するだけでユーザ認証が可能になりました。

Reactive Programming しようとすると、モデルの操作含めクライアントサイドにコードが集中していってサーバサイドではほとんど何もしないということが多い。それはそれで一見良いようで、そうするとせっかくバックエンドに node.js が控えているのに、node_modules をうまく活用できなかったりする。例えばモデルから find() で引っ張ってきたデータの加工に md5 な処理を加えよう・・・サーバサイドだったら md5.js を npm install して require すればいいところ、実はクライアントサイドにコードを書いているのでそういうわけにいかない。モジュール開発が活発な node という一番良いところがスポイルされてしまっている

Meteor 0.6.0からMeteorのパッケージ側からはNPMを

Npm.require

で利用できるようになったようです。さらに2013/6/15にComplete NPM integration for Meteor – MeteorHacksでユーザ側からもりようになりました。

「しょうがないので md5.js とかインターネットで見つけてきて script タグで読み込ませるか・・・」と思っても、Dirty Hack なしでうまくそれを実現できる方法がない。そういう細かいところの作り込みがまだまだ。この辺は時間が解決するとは思うけれども。

上記の通り解決されたと思われます。

Reactive な要件を満たすためにもフルスタックにしているんだろうというのはなんとなく想像できるのだけれど、たとえば npm ではないパッケージ管理システムを自前で持っていたり (その分、フレームワークによりモジュールを簡単に統合できるようになっているのだけど)、Minimongo しかり、さすがにいろいろ作りすぎている。この作り込み具合でまともにプロダクションで利用できるレベルを維持しようとすると、開発コミュニティが相当活発になる必要があってそこは結構リスクだと感じる

これは今でも続いている問題だと思います。しかし、ソフトウェア開発がホットな投資対象: JavaScriptフレームワークMeteorにAndreessen Horowitzが$11.2M | TechCrunch Japanという話もありとりあえずは大丈夫なのかと。

以上、引用とコメント終わり。

と言うことで、Meteorはかなり使える状況に近づいてきたとおもいます。一年前に触ってそれっきりの方も、これから触ってみようと言う方もMeteor楽しいですよ!

おしらせ

日本語でもMeteorについて雑談がしたい思い、なかったのでMeteorの日本語ユーザコミュニティを作ってみました。ぜひご参加ください。Meteor JP – Google+

リンク