PHPExcelのXMLWriter.phpエラー


PHP Fatal Error: Class 'XMLWriter' not found in 
/***/Classes/PHPExcel/Shared/XMLWriter.php on line 44

PHPでエクセルファイルを生成するPHPExcelを使おうとして上記エラーが発生した時の対処法です。

# yum install php-xml

GMOクラウドVPSでphpMyAdminを使う


今度立ち上げる新サービス用に、GMOクラウドVPSを契約しました。
http://vps.gmocloud.com/

インストールパッケージでLAMPPパックを選択すると、すぐにWEBサービスが始められる環境が整っているのですが、phpMyAdminがありませんでした。まあ、別環境で開発してVPSにデプロイするだけなら不要ですが、今回はVPS上で開発も行うため、phpMyAdminも必須です。yum -y install phpmyadmin でインストールしました。

すんなりインストール成功し、別サーバーで稼働しているデータをインポート。動作確認です。
ところが、SELECT句を実行してみると、件数は表示されるものの、一覧は表示されません。
PHP上からSELECT句でテーブルを参照すると、ちゃんと表示されるので、インポートは正常に行われている模様。
おそらく、GMOクラウドVPSのMySQLバージョンが最新すぎて、yumで入るphpMyAdminがちょっと古めなので、そのへんに原因がありそう。

で、このへんを参考に最新のphpMyAdminを入れてみました。phpMyAdmin自体のインストールは成功しましたが、ワタシの環境でも「phpMyAdmin – Error The json extension is missing. Please check your PHP configuration.」エラーは発生。おそらくGMOクラウドVPSユーザーでLAMPパッケージを選択した人、はみんなここでエラーが出ると思います。yumからjsoncをインストールしました。

jsonc

 

GMOクラウドVPSで躓いたのはここくらいです。あとはフツーのLAMPですね。

 

 

 

自宅用にインターネットFAXのD-FAXを契約してみた


名称未設定-1

自宅でFAXを受け取る必要が出てきたのだが、今更FAX機を設置するのも嫌なので、インターネットFAXを契約してみた。

お客さんが自分のFAX番号にFAX送信すると、送信内容がメールで届く仕組みだ。文書はメールに画像ファイルとしてメールに添付されてくる。(TIFかPDF形式)

早速自分宛てに1通送信してみたが、普通にFAX受信した用紙をスキャナで取り込んだみたいなTIF画像が添付されてきた。

20140413_122324_203 (1)

 

これは使えるな。TIFで届くとスマホで閲覧するときに不便だから、PDF変換オプションは付けた。
これで自宅でのFAX受信環境は整った。大体このネット時代に、FAXで送りたいと言われること自体めったにないのだが、事情によりFAXでしか送れないお客さんのためにわざわざFAX機を置くのは避けたい。そんな時にD-FAXはいい。

D-FAX

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もまだ売ってるから、買うときは間違えないようにねー。

お問い合わせ

桶シスへのお問い合わせはこちら。

Close