Don’t know why, but away in Skype.

なぜだか分かりませんが、自分のスカイプはいつも退席中の状態になっています。

社長のパソコン(iMacだったり、MacBook Airだったり)がふと目に見えると、自分のSkypeが退席中になっていることがよくあります。

ふと社長のパソコンに目をやると。退席中状態に・・・

何分もパソコンに触ってなかったり、パソコンの電源を落としていて退席中になることはあります。

が。

勿論自分のパソコンはオンライン状態にしています。

自分はオンラインにしているにも関わらず、社長のパソコン(のみならず、恐らくクライアント様のパソコンでも)では自分は退席中の状態。

なんでこうなるんでしょうか。

取り敢えず、自分の状態をひとまず退席中にして、即座にオンライン状態に切り替えると、

退席中→オンラインを繰り返すと、社長のパソコンでもオンラインになってくれます。

社長のパソコンでもオンラインになってくれます。

うーん・・・なんでこうなってしまうのか、不思議です。

【WordPress】カスタムフィールドテンプレートのテーマ内foreach処理

先日、Wordpressのテンプレート内にカスタムフィールドテンプレートを用いて項目を表示するという案件がありましたが、テーマのアップグレードで消してしまいました…。備忘録がてらにコードを書いてみました。

繰り返しイメージ画像

Photo Repeat by Thomas Hawk.

先日、Wordpressのテンプレート「Twenty Fifteen」内にカスタムフィールドテンプレートを用いて項目を表示する、という案件がありました。

しかし、以前にそのコーディングをしたのですが、Wordpress のテーマをアップグレードしてしまい、その作業を無駄にしていまいました・・・

教訓!

親テンプレートは弄るな。子テンプレートを作れ。

(ただし、自作テーマの場合はこの限りではない)

ということで、今回の作業を備忘録していきます。

カスタムフィールドテンプレートのforeach処理

今回は「Twenty Fifteen」内に書くので、対象のPHPは「content.php」になります。

そして今回はさらに、このようにしたいと思っています。

  • レスポンシブしやすくするため、定義形式(DT-DL-DD)
  • もしもカテゴリーがrecruitだったらに限定
  • 該当項目が空白だったら、その項目は非表示
  • 複数行にも対応(しなくても良いところもありますが、纏めて対応)

・・・ずばりコーディングするとこうなります。

位置関係を言うと、div.entry-contentが来て、the_content・wp_link_pagesの処理が終わったあとの次です。

子テーマを作れ

今回泣く事になってしまった原因です。

取り敢えず、下記サイトを参照してサクっと作ってきました。

wordpress子テーマの作り方!style.css・各テンプレートファイル・function.php の設定手順 | ゆとり世代のブログ運営論
http://viral-community.com/wordpress/wp-child-theme-5818/

また作る事もあるかも知れないので、今回の style.css も備忘録がてらに貼っておきます。

Templateのところはディレクトリ名なので、テンプレート名 Twenty Fifteen と入れない様に注意が必要です。ここでも沼にはまってしまいました・・・。

WordPress のバーを少し透かしてみた

少し前の話になりますが、Wordpress の管理画面のバーを少し色透明にしてみました。

Wordpress Bar - Transparent

少し前のお話しになりますが・・・

WordPress 3.9 以降ですと、Wordpress のバーはフラットデザインの黒いバーになります。

今回お客様の WordPress のテーマを作るにあたり、ちょっとした遊び心でバーの色をちょっと透明にしてみました。

CSS

解説

  • Q. なぜ 783px 以上のメディアクエリーがあるのか?
    タブレット以下になると、Wordpress のバーは上部固定ではなくなってしまいます。そうなると半透明である理由がなくなってしまうので、783px 以上限定にしています。
    ただ position: fixed; を掛ければまたいい話なんですけどね・・・
  • あの長い 7 〜 13 行目のCSSは?
    上部バーから展開するプルダウンにも適用させるための CSS です。上部バーよりも若干明るく・薄くしています。

ようやく分かった。なぜ CPI の FTP サーバーでたびたび切断させられるか

これまで、CPIのFTPサーバーでファイルをアップロードしようとすると、たびたび接続が切断されたりしていました。なぜかというと、5つ以上同時に接続すると切断される仕組みになっていたからです。

サーバーに接続を閉ざされてしまう。。。

これまで、CPI の FTP サーバーでファイルをアップロードしようとすると、たびたび接続が切断されたりしていました。

なぜそうなるか、実は CPI のヘルプに書かれていました・・・。

同一IPから5つ以上同時接続すると切断される

同一 IP から5つ以上アクセスしている場合
同一 IP からの FTP アクセスは最大5つまでです。同一拠点(企業様など)からの同時アクセス時などにはご注意ください。

サポート|よくある質問 FTP サーバーに接続できません。:レンタルサーバーなら【CPI】

そして自分のFTPの設定を確かめてみたら・・・

Transmit の設定。同時接続数が、6になっていました。

6接続になっていました。そりゃあ切断されてしまいます。

今は半分の3接続にしてなるべく切断されないようにしています。

【追記】今はSSHで接続することもできる

2016年2月25日追記

今では、CPIでFTP接続だけではなく、SSHで接続することもできます。この方法では5つ以上のアクセス制限を受けるかどうかは分かりませんが・・・現状不自由なくファイル転送することが出来ています。

これに関するヘルプ情報がこちらです。

SSH(鍵認証) | SSH(鍵認証) | Online Help for ControlPanel
http://acesr.document.secure.ne.jp/tools/sshkeys/

【一個人の話】契約しなきゃ良かったロリポップずっと無料プラン

一度一定金額を払えばずっと使えるレンタルサーバーですが、レンタルサーバーについて学べば学ぶほど「契約するんじゃなかった…」と思うようになってしまいました。

前置き

会社ごとではなく、Nishimura 一個人のお話をします。

2年とちょっと前 – つまり2013年の頭 – まだ専門学校1年生だった頃、実際にホームページを通じて発信したい、そのために無料ホームページじゃなくてちゃんと契約してホームページを作りたい!と思うようになりました。

そこでどのレンタルサーバーを契約するか悩みましたが…

まだまだ Web に関して初心者だし、まずはロリポップ!でホームページを始めてみよう!慣れてきたり、PV数が増えてきたら別のレンタルサーバーに切り替えるとして・・・

ということでロリポップ!を契約しました。

それから色々後悔することになります。

ロリポップ!のWordpressが狙われる

もう日本の Web 業界では大ニュースになりましたね。

第三者によるユーザーサイトの改ざん被害に関するご報告 – 2013年08月29日 10時57分 / 新着情報 / お知らせ – レンタルサーバーならロリポップ!
http://lolipop.jp/info/news/4149/

ニュース – ロリポップ!レンタルサーバーに大規模攻撃、WordPress利用中のサイト8438件が改ざん
http://itpro.nikkeibp.co.jp/article/NEWS/20130829/501062/

幸いにも僕の WordPress が「Hacked by Krad Xin」となることはありませんでした。

けれどこんな事があったら・・・

ロリポップ!からしたら、再発防止に努めるとして、今まで以上に WordPress 周りをはじめ PHP・MySQL のセキュリティ強化に努めたと思います。けどそれでもロリポップ!やだな…やめたいな…と思う人も少なくなかったと思います。
僕もやめたいなと思っていた・・・矢先でした。

で・・・出た・・・『ずっと無料プラン』

【終了】先着1,000名様限定!『ずっと無料プラン』販売開始! / 新着情報 / お知らせ – レンタルサーバーならロリポップ!
http://lolipop.jp/info/news/4198/

簡単に言うと、ロリポップ!の当時最上級プラン『チカッパプラン』が、初回31,500円(税込み、初期費用込み)さえ払えばずーっと無料で使えるプランです。

取り敢えず10日間お試しを契約して、1週間くらいずーっと悩みました。…が、とうとう本契約を踏み切ってしまいました。何があっても情報を発信できるライフラインを1つ確保しておきたい、と思い。

lolipop-chikappa-keiyaku

しょ・・・“生涯”・・・

・・・後に気づきましたが、規約が怪しいのもありますが。

第8条 (利用期間)

・・・省略・・・

第8条の2(期限を定めない場合の特約)

・・・省略・・・

5.当社は、ユーザーの承諾を得ることなく、本サービスの内容の一部又は全部の、変更又は廃止を行うことができるものとします。当社は、ユーザーが利用期間を定めない契約に基づき利用しているプランを廃止する場合、既にユーザーが当社に支払った利用料金から、ユーザーが実際に本サービスを利用した日数に応じた利用料金相当額(当該プランの月額利用料金相当額を1ヶ月30日間として日割りした金額に、ユーザーが実際に利用した日数を乗じた金額)を差し引いた金額をユーザーに支払うものとします。但し、利用料金相当額が、既にユーザーが当社に支払った利用料金額を超える場合は、当社はユーザーに対して一切の返金等を行わないものとします。

6.利用期間を定めない契約に関して、第21条ただし書きに基づき当社がユーザーに対して損害を賠償する場合の上限は、当該契約にかかるプランの月額利用料金の12か月分相当額を賠償額の上限とします。

気づいてしまった。ロリポップ、レスポンスが遅い

そして僕は気付いてしまいました。
ロリポップは国内他社レンタルサーバーよりもレスポンスが遅かったのです。

※これは、Nishimura 個人の以下の環境下でのお話です。
・NTTぷらら 光プロバイダー(秋田)
・Amazon EC2 Windows Server(東京リージョン)
・Azure の Windows Server(西日本リージョン – 大阪)

具体的に言うと、2KB 程度の画像単体を読み込むのに必要な時間が、例えばさくらのレンタルサーバーでは平均0.02秒のところ、ロリポップ!では平均0.06秒掛かってしまっていました。

単に画像一枚読み込ませるだけなら何ら問題ないのですが、もしも1ページに様々な(容量の小さい)ファイルを50個読み込ませるとしたら?

単純計算で考えると、さくらのレンタルサーバーですと 0.02 秒 × 50 個 = およそ 1 秒掛かると予想されるところ、ロリポップ!では 0.06 秒 × 50 個 = およそ 3 秒 掛かってしまうのが予想されます。

実際は複雑な処理をするのでこれよりも時間は前後しますが…いずれにしろホームページを読み込むのに時間が掛かっていては、それだけでユーザーが帰って行っちゃう可能性が否めなくなってしまいます。

結論:ロリポップからは早めに卒業しよう

ロリポップ!はレンタルサーバーとはどういうものか?の勉強には最適だと思います。マニュアルやサポートも充実していますし、…けれどテクニカルなお話になればなるほどサポートが杜撰になっていく気がします(僕がサポートを受けた感想)。

僕個人の感覚なのですが、4ヶ月〜6ヶ月程度ロリポップに触れたら、もう卒業して他のレンタルサーバーに移るのがいいのかなと思います。

ただ移る際に、『予算これくらい』だとか『ロリポップ!のこの機能よかったなー・・・』あるいは『ロリポップ!のここが悪かったからこれをカバーしてくれるレンタルサーバーないかな・・・』などと思われるかと思います。

その際は、仕様がどうなっているか、お試しで使える場合は使ってみてレスポンスはどうなのか、しっかりと体験・勉強してサーバー移転をするのがいいかなと思います。

プログラマ・WEBデザイナーのみなさんへアンケートです。是非ご協力を!

[poll id=”1″]

[poll id=”2″]

[poll id=”3″]

[poll id=”4″]

[poll id=”5″]

WordPress のデバッグプラグイン。

Wordpress 内で具体的にどういう処理がされているかを「Query Monitor」プラグインで調べることができます。

例えば、Windows を使っている人は「タスク マネージャ」、

QueryMonitor0

Mac OS X を使ってる人は「アクティビティモニタ」を使ったり、見たことは何回かあると思います。

QueryMonitor1

パソコンが重いときは何が原因なんだろう…とこれで調べることがよくありました。

それの WordPress 版

そして、Wordpress でも、具体的にどういう処理がされて、どういうプラグイン・処理が悪さをしているかの判断に助かるプラグインを…、他の人(いや、会社?)のブログから初めて知りました。

WordPressのデバッグプラグイン「Query Monitor」をサイト制作・カスタマイズに役立てよう
http://liginc.co.jp/web/wp/plug-in/151347

自分も入れてみた

入れてみたら早速、ページ生成時間・メモリ・DBクエリの実行時間・実行したクエリ数の4つが表示されました。
0.67s は早いのか遅いのか・・・参考までに CPI サーバーで12個プラグインを有効にしています(恐らく個数だけの問題じゃないと思うが)。

QueryMonitor2

早速軽度のエラーが

Notice エラーが1つ、Deprecated エラーが1つ出てきました・・・。いずれも軽度なエラーなのですが、何なのでしょうか。調べてみます。

QueryMonitor3

WWWの有無は統一した方が良い

WWW にするかしないかに関わらず、どちらかには統一した方がいいです。Apache、Windows Server、それぞれの記述方法を備忘録ついでにまとめてみました。

http-www

WWW にするかしないかに関わらず、どちらかには統一した方がいいです。
そして、仮に WWW(www.example.comとか)に統一したとしたら、WWW じゃないほう(example.comとか)にアクセスされたらちゃんとリダイレクトしてあげるべきだと思います。

これは特に調べたわけじゃありませんが、どちらでもアクセス可能になりますと SEO 的にも分散されちゃってよくないかと・・・

ということで、統一の仕方の備忘録です。

 

そして大半の方(レンタルサーバー含)が Apache だと思いますが、Windows Server (IIS) の場合も併記しておきます。

Apache

WWWありに統一する

※ www.example.com は自身のドメインに置き換えてください。

WWWなしに統一する

※ example.com は自身のドメインに置き換えてください。

Windows Server (IIS)

WWWありに統一する

※ (www.)example.com は自身のドメインに置き換えてください。
※ 既存の web.config がある場合、それと統合するような形で記述してください。

WWWなしに統一する

※ (www.)example.com は自身のドメインに置き換えてください。
※ 既存の web.config がある場合、それと統合するような形で記述してください。

プログラマ・WEBデザイナーのみなさんへアンケートです。是非ご協力を!

[poll id=”1″]

[poll id=”2″]

[poll id=”3″]

[poll id=”4″]

[poll id=”5″]

Appleの電話サポートを受けるなら、iPhoneの「おやすみモード」解除を忘れずに。

「おやすみモード」使用中の場合、着信はならずすぐ不在着信扱いになってしまいます。サポートを受ける前にiPhoneを今一度ご確認ください。

「おやすみモード」使用中の場合、着信はならずすぐ不在着信扱いになってしまいます。

なぜかというと、

同じ人から3分以内に2度目の着信があった場合は通知します。

とiPhoneに書いていたからです。

逆を返すと、アップルのサポートは、いったん不在着信を受けると10分後にもう一回電話発信を試みます。ということは、iPhoneに書いていた『3分以内に2度目の…』ではなくなるため、また着信とならず(すぐ不在扱いとなり)サポートを受けられなくなる、という事態になってしまいました。

次回から気をつけます・・・

追記

この間、仕事関係でAppleのサポートに電話しましたが、1インシデントの解決に3時間も掛かってしまいました・・・長かった・・・

CPI サーバーで Internal Server Error になったらまず確認すること

まず最初に .htaccess に目に行きましたが、CPI のサーバーでは php.ini も一緒に直さないといけないということに、最初気付けませんでした…私的備忘録です。

1. .htaccessの記述に間違いがないかを確認する

何よりも第一。
記述をよく確かめたり、怪しい記述行をコメントアウトしたりなど・・・一般的に .htaccess を書き間違えていないかを確認する。

また、エラー起こる前の .htaccess があったら戻してみたり、
2つの .htaccess をテキスト比較ツール (difff.jp)などに貼り付けて何が違うか・どこの記述が間違っているかを確かめる。

2. 適切なPHPのバージョンになってるか?対応している php.ini をアップしているかを確かめよう

執筆時現在(2015年3月10日)、
.htaccess や php.ini をアップしないと既定で PHP 5.6 で動作するようになっている。

けれどそれだと困るアプリケーションもあるんだよな・・・
たとえば、

  • 古い WordPress
    PHP 5.6 × WordPress 3.6 の組み合わせで遭遇。管理画面が真っ白・・・
  • Research Artisan Lite
    PHP 5.4 で遭遇。管理画面の一部ページでエラーが吐き出されていました・・・

なので適切な PHP バージョン・php.ini を読み込ませる。

たとえば PHP 5.3.6 にしたい場合は CPI の公式ヘルプのうち項目3・4をする。
http://www.cpi.ad.jp/cms/wp/tips/ftp_install/

ほかの PHP バージョンにしたい場合は適宜読み替えて設定する。

そして重要なのが、PHP 5.5 未満の場合は php.ini の設定を忘れないこと!
(他のバージョンでも設定忘れちゃだめだけど、特に・・・)
そうしないと、Wordpress でテーマ・プラグイン編集中に真っ白になってしまうことがあるからな・・・

原因は、デフォルトのエンコーディングが EUC-JP になっているから、それを php.ini で UTF-8 にしなきゃいけないんだ・・・

追記:ひととおりZIPにして用意してみました

PHP 5.3、5.4、5.5の php.iniと.htaccessをZIPにして用意してみました。
http://www.ams.jp/staff_blog/wp-content/uploads/2015/04/CPI-Init-Files.zip

(2015年4月16日追記)

備忘録の後書き

初めてこのブログを執筆します西村と申します。
先月の下旬、これが原因でお客様のサイトをエラーにしてしまいました…

具体的にいうと、PHP 5.4 を動作させているのにも関わらず PHP 5.3 用の php.ini ファイルを読み込ませていたり、そういうことを知らずに PHP の読み込みバージョンを上げてみたり(5.3→5.4)…
これに気づくまでに完全復旧まで4〜5時間くらいを要してしまいました。

話は変わるのですが、僕自身はWeb系の専門学校を卒業してきました。
そのWeb担当の先生が言っていた愚痴を思い出しました。

「学校のサーバー EUC-JP 強いからな…この空間(ディレクトリ)を UTF-8 にしないといけない」

思い返せば学校のサーバーも CPI を使っていたのかな…なんて思いました。

最初の1記事目から専門的な記事になってしまいましたが。
Web ページを作る身として、まだまだ未熟なものではありますが、暖かく見守っていただければ幸いです。