WordPress管理画面が重い時の対処法


/etc/hostsファイルに、自分のドメインが名前解決できるよう記述する。


127.0.0.1   okesys.net
127.0.0.1   child1.okesys.net
127.0.0.1   child2.okesys.net

/etc/hostsファイルはワイルドカードが使えませんので注意。マルチサイト環境を構築している場合は、全ての子サイトのURLを記述してください。

WordPressで特定のユーザーだけ固定ページでビジュアルエディタを利用できないようにする


例えば制作業者はHTMLを直接コーディングしたいのでビジュアルリッチエディタを殺しておいて、クライアント側担当者にはWYSIWYGで使ってもらうようなケースに有効。
クライアント側担当者がビジュアルリッチエディタで固定ページのHTMLの記述を開くと崩れる場合があるので注意。

ただまあ、ありがちなのは「会社概要」「沿革」なんかを制作業者が固定ページにHTMLで書いて、クライアントは投稿ページでブログを更新する、なんつうパターンなので、それほど問題にならないかもしれない。

functions.php

//ユーザーhogeだけは固定ページでビジュアルエディタを利用できないようにする
function disable_visual_editor_in_page(){
	global $current_user;
	get_currentuserinfo();
	if($current_user->user_login == 'hoge'){
		global $typenow;
		if( $typenow == 'page' ){
			add_filter('user_can_richedit', 'disable_visual_editor_filter');
		}
	}
}
function disable_visual_editor_filter(){
	return false;
}
add_action( 'load-post.php', 'disable_visual_editor_in_page' );
add_action( 'load-post-new.php', 'disable_visual_editor_in_page' );

Linux上のPHPからSQL Serverに接続するとき、VARCHAR型の最大長は255バイトまで


PHPからSQL Serverに接続するとき、VARCHAR型の最大長は255に制限されてしまうので注意!
たとえSQL Serverで型を「varchar(2000)」としていても、mssql_fetch_fieldで調べると
Data type=>CHAR
Max length=>255
となっています。

これを回避するには、SQL Serverで「TEXT型」を選択します。
TEXT型なら64512文字まで使えるようです。

参考:

http://www.makizou.com/php/function.mssql-field-length.html

PHP が使用している API(MS DbLib C API)の制限により、 VARCHAR フィールドの長さは 255 までに限定されます。それ以上のデータを保存したい場合は、かわりに TEXT フィールドを使用します。

jQuery.ValidateをAJAXのPOST送信で使う


$(function(){
 $('#dialog').dialog({
  autoOpen: false,
  width: 800,
  height: 700,
  title: '送信フォーム',
  modal:true,
  resizable:true,
  buttons: {
   "送信": function() {
    if(confirm("送信してよろしいですか?")){
     if ($("#FRM").validate().form() == true) {
      var params = $("#FRM").serialize();
       $.ajax({
        url: "http://www.hoge.com/post.php",
        type: "post",
        data: params,
        async: false,
        cache: false,
        error: function(a,b){
         alert(b);
        },
       success: function(response) {
       }
      });
      $(this).dialog("close");
     }
    }
   }
  }
 }
}

12行めの書き方が、普通のmethod=”post”の時とは違うので注意されたい。
jQuery.UI のdialogと  jQueryのserializeと AJAXのPOST送信と jQuery.validateの併用方法。
よく使う黄金パターンなので、自分メモ。

さくらのVPSをApacheのバーチャルホストとWordPressのマルチサイトで使い倒す


さくらのVPSがラインナップ一新されて、新料金プランになりました。
かねてより「さくらのVPS 512 」を使用中でしたが、同じ金額でスペックが大幅に上がったため「さくらのVPS 1G」に乗り換えました。

その際、折角なのでApacheのバーチャルホストとWordpressのマルチサイトを1つのさくらVPS仮想マシンに設定し、月額980円でApacheのウェブサイトとWordpressサイトを同時に複数ホスティングできる環境を作ったので、自分メモ。

OSインストール

OSはさくら標準のCentOS6(64bit)を選択。なんだかんだで癖がなく使いやすいOSです。
ぐぐればインストール手順解説はいくらでも見つかりますが、今回もいつも使わせていただいているServer Worldさんでいきます。

ただし、Server Worldさんの記事では、iptablesは停止せよとしか書いてないので、ファイアウォール設定だけはコムギドットネットさんを参考に。

OSインストール→セキュリティ設定→WEBサーバーインストール→PHPインストール→MySQLインストール→phpmyadminインストールな流れで進めます。さくらのCentOSはyumのリポジトリも有名ドコロは設定済みなので、yum -y install … でスイスイインストールが進んでいきます。

Apacheのバーチャルホスト設定

いよいよバーチャルホスト設定です。名前ベースのバーチャルホストなので、1つのIPアドレスに複数のドメイン名をぶら下げます。httpd.confでServerNameとServerAliasを設定してやり、ドメインごとに別々のディレクトリを参照させます。

具体的な手順はブログのようなものを参考にさせていただきました。
今回の事例では、 /var/www/html/public_html以下にドメインごとのフォルダを作成しました。

ポイントは、 /var/www/html/直下にファイルを直接置かないこと。
なぜなら、ここにはあとでWordpressをインストールするからです。

WordPressのインストール

wordpressのインストールを進めます。公式サイトからアーカイブをダウンロードして解凍。wp-config.phpを編集したらフォルダまるごとアップロードします。(大量なのですごく時間がかかります。)MySQLにユーザーとDBを作成したらブラウザからinstall.php にアクセスして、最終処理です。簡単ですわー。
手順はいつも公式を参考にしてます。

先程ふれたように、Wordpressは/var/www/html/ にアップロードします。wordpressを複数ドメインで使う(マルチブログ化)するためには、ドキュメントルートにインストールされている必要があるからです。

WordPressをマルチブログ化する

普通にインストールされたWordpressは1つのドメイン名でしか使えません。これを複数のドメインに対応させるには、Wordpressのマルチブログ化を行います。

wordpressでは、サイトを

  • サブドメイン方式
    xxx.hogehoge.com
    yyy.hogehoge.com
  • サブディレクトリ方式
    www.hogehoge.com/xxx/
    www.hogehoge.com/yyy/

の2つから選べますが、マルチブログ化できるのはサブドメイン方式だけです。そして、表示方式はサイト運用開始後からはもう変えられません。ですので、必ず初めからサブドメイン方式を選択しておいて下さい。

詳しい手順については WordPressのマルチサイト機能で複数のブログを管理する がわかりやすいです。

 DNSサーバーの設定

ドメイン名は安くて安心なVALUE DOMAINで取得してます。
取得したドメインの設定画面を開き、

a * xxx.xxx.xxx.xxx
mx @ 10
txt @ v=spf1 ip4:xxx.xxx.xxx.xxx ~all

と書き換えています。まだメールサーバーは立ちあげてないので、今のところ2行目は不要ですが。
すべてのドメイン名で同じIPへ飛ばしてやればいいので、WPサイト、非WPサイトに関わらず使用する全ドメインの設定を書き換えます。あとはDNS情報が疎通するまでしばし待つ。。

上記で、通常サイトとWordpressサイトを独自ドメインでいくつでも(限界はありますが)ホスティングできる環境が作れました。
このブログも上記のやり方でさくらVPS上のWordpressで稼働しています。同じWordpress上にもう一つ別のドメインもぶら下がってますし、非WPの通常サイトも稼働しています。月額980円でここまでできるとは。

個人がちょっとサイトを作りたいときに1つもっておくと超便利ー。一家に1VPSすな。

WordPress管理画面に「プラグイン」メニューが表示されない時の対処法


ユーザー権限が「管理者」なのにWordpress管理画面に「プラグイン」メニューが表示されない時の対処法。

特権管理者ユーザーでログインし、[管理メニュー]-[設定]-[ネットワーク設定]の[メニュー設定]から[管理メニューを有効化]にチェックを入れる。この設定を見落としていてちょっと悩んだので自分メモ。

 

AppleTV(第3世代)レビュー


先日発売されたばかりのAppleTV(第3世代)を購入しました。
最近周りの人にAppleTVを説明することが多くて疲れるので、現在のsbtnのAVまわりを図解してみまんた。

上記構成で、ほぼ問題なく過ごせています。自分の場合、AppleTVでストリーミングラジオを流している時間が長いので、ラジオの選局時以外はレグザの電源は切れていることが多いです。

以前はノートPCのイヤホン出力からスピーカーにアナログ入力していたのですが、これが音質に関しては最低限というレベルでした。まあ、PCの内蔵スピーカーよりはマシという程度。
AppleTVに変えてから、光デジタル端子でスピーカーに接続するようになり、音質は大幅に向上しました。まあ、音源がネットラジオということで、所詮圧縮音源なのですが、ビットレート高めのチャンネルであれば、ながら聴きには十分な音が得られます。「地デジ番組はくだらないからテレビつけたくないけど無音は寂しい」と数年前から聴き始めた海外ネットラジオですが、ここにきてやっと完成形の環境になりました。

あとは、ノートPC上のiTunesライブラリー・iPhone内の曲も、AirPlay経由でスピーカーから鳴らせます。手持ちのライブラリはアルバム100枚くらいですが、無線でいい音できけるのでこれもいいですね。

まあ今後の課題としては、地デジ・ブルーレイの音声もスピーカーから出力できれば完璧かなと。
地デジ番組はともかく、映画はいい音で聞きたいですからね。実はこれはTSUTAYAでDVDメディアをレンタルしないでAppleTV上からiTunesのレンタルを利用すれば解決するのですが、iTunesの映画レンタルはちょっと高いね。。ちょっとだけなんだけど微妙~ぅな価格設定されとる。うまいのう。

ジョブズが生前「テレビを再発明する」と言って開発したAppleTVですが、Apple社の他の製品と比べるとあまりに無名。なんでこんな便利な製品が売れないんだろうか考えるに、何ができる製品かがわかりにくいっていう理由ではなかろうかと思われ。

第3世代AppleTVのUIは生前ジョブズが却下したデザインだったとか。まあそれでもいいや。
テレビにもう一度命を吹き込むデバイスが、いまならたったの8400円。第2世代のAppleTVもまだ売ってるから、買うときは間違えないようにねー。

原村というパラダイス


中央自動車道諏訪南インターから15分のロケーションにある高原リゾート地、原村についてそろそろ一言言っておこうか。

昭和50年代にペンションビレッジが開発されて以来、日本におけるペンションという宿泊形態のスタンダードを確立したと言っても過言ではない原村。

ペンションといえば「オーナー夫妻の気取らないおもてなし」「手軽な料金」というイメージだが、原村のそれも例外ではない。これまでに3件のペンションに宿泊したが、どこも寛げるし食事は美味しい、そして安い。

ただ一つ懸念されるのはハードの古さ。それも雰囲気だからと割り切れるなら問題ないが、古くくたびれたペンションも中にはある。オーナー夫妻が団塊世代で、子供が跡を継がないペンションでは、設備投資に積極的になれないのだろう。

今回利用したペンションは、オーナー夫妻が子育て真っ最中であり、設備も新しい。こういう施設も中にはある。

それでは、原村の楽しみ方を紹介しよう。

泊まる

原村と言えばペンション。前述のようにハードの古い施設もあるが、少々のことは気にしない。クラシック・フォーク・レゲエに特化した音楽系ペンション、自動車マニア系、ペット系など、特色を打ち出しているペンションもある。ペンションビレッジは第一と第二があるが、第二だと自然文化園まで歩いてすぐなのでいい。1泊2食付き\8k~\10k。

遊ぶ

原村のメインスポット「八ヶ岳自然文化園」。ここに来なければ原村にくる意味はない。ここでは何もしてはいけない。レストランリーベで飲み物を頼んだら、ボケーっとして八ヶ岳の絶景を楽しむ。飽きたら、芝生の広場を散策。そしてまるやち湖に移動。これで半日もつ。子どもが小さいならおもしろ自転車もいい。(20分300円)映画「いま会いに行きます」ロケ地。

食べる

夕食・朝食はペンションで出るので、ここでは昼食スポットを紹介しよう。諏訪南IC近くのレストラン ペチカは気取らない洋食屋だが、原村を代表するグルメスポット。原村ビギナーにはぜひ立ち寄って欲しいものです。迷ったらガーリックハンバーグをオーダー。

風呂

原村村営 もみの湯。地元の人と観光客が仲よく利用する温泉施設。おしゃれさは皆無。だが湯は絶品。その上夜間は300円と、お財布にもやさしい。

ショッピング

鉢巻道路という自動車CM撮影のメッカ(天気が良ければ富士山が見える)を経由して30分で、八ヶ岳リゾートアウトレットへ。目の肥えた首都圏の客が相手なので、モノはいいが、夏は混んでいる。屋根がないので雨なら行かなくていい。

(番外編)移住

原村が最近熱心なのは、都会からの移住者誘致。東京から2時間というアクセスと豊かな自然は、リタイア世代の移住先としてアピール度が高い。だが、冬場は氷点下20度の厳しい暮らしに、公共交通機関は皆無という現実も知った上で、冷静な判断が求められる。都会の家を売って原村で物件を買うことは出来ても、その逆はできない。

移住希望者向けに年4回の現地見学会がある。春夏秋冬すべて見てから決めて下さいということだ。

とにかく村全体が醸し出す緩さが、原村最大の魅力。積極的に何もしないというスタンスと、少々のことは許せる心の広さをもって、ぜひ原村を楽しんでみてください。ちなみにペンションビレッジ内はソフトバンク回線は圏外です。バッテリー節約のため、iPhoneは機内モードで。

技評ウェブサイトの「CakePHPで高速Webアプリ開発」サンプルプログラムでエラー発生中..


第6回 CakePHPで作るToDoアプリをやってます。

Viewに入力フォームを追加

<p><?php echo $html->input('Task/content', array('size' => '40')) ?>

Controllerにaddアクションを追加

function add() {
if (!empty($this->data)) {
if ($this->Task->save($this->data, true, array('content', 'created', 'modified'))) {
$this->flash('タスクが追加されました', '/tasks');
return;
}
}
$this->redirect('/tasks');
}

あとはモデルへの値が渡されてきているかチェック、モデルへのデータの追加とフィールドのホワイトリスト、簡易な完了メッセージ表示、$this->dataに値がないか,saveに失敗したときはリダイレクトなどを追加して、テスト書き込みやってみる。

f:id:sbtn:20100529160537g:image

おや、なんか文字化けしてエラーになってる。

phpMyAdminで確認すると、ちゃんとaddされてるんだけどねー。

ちょっと気持ち悪い。原因を調べよう。。。

追記

原因はよくわからいけど、DBのaddは成功してるんだし、気にしないで先に進むことにした。

Controllerを下記のように書き換えて、add後は/tasksにリダイレクトさせることに。

function add() {
if (!empty($this->data)) {
if ($this->Task->save($this->data, true, array('content', 'created', 'modified'))) {
//$this->flash('タスクが追加されました', '/tasks'); //←コメントアウト
//return;
$this->redirect('/tasks'); //←追加
}
}

SQLServer2005 バックアップデータからのリストア 自分メモ


ちょいとアホなSQL文を実行してしまい、開発中のDBのあるレコードを消去してしまった。SQLServer2005のエージェントサービスでバックアップを定期的に取っていたので、ここから復旧しようと試みたが、やり方が分からなくて焦った。次回のために自分メモ。

f:id:sbtn:20090718223752p:image

[タスク]-[復元]-[データベース]と進んで、「ページの選択」でオプションをクリック。

「既存のデータベースを上書きする」をクリックしないと、エラーをはいてリストアに失敗します。

桶狭間情報システム

© 2024 Copyright OKESYS. All rights reserverd.