5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

カテゴリー: システム関連

  • 最近のとほほな話し、PCのBIOS画面が表示されない話し

    TeraStation ISが来て、iSCSIと通常のデータとネットワークを分けるためギガビットに対応したハブとLANカードを買ってきました。

    今使っているPCにLANカードを入れて起動してみました。すると起動したときのBIOS画面が出てきません。しかし、画面が写らないだけで起動できているようです。

    モニタとキーボードとマウスはでもう一台のPCと共有しているため、まずは切換機を疑います。切換機のケーブルを入れ替えてみます。しかし、別のPCが正常にモニタに表示されます。

    次は切換機のケーブルを疑います。表示できないPCに表示できているPCのケーブルをつなぎます。まだ表示できません。

    次に疑うのはディスプレイカードです。デジタルからアナログの変換コネクタを付けると色がおかしい。水色で表示されます。ついでに表示できるPCにもアナログから入力してみます。こちらは正常。

    しかし、色がおかしいPCのアナログのコネクタを触ると正常に色が出ます。続いてデジタルのコネクタを、今度はきちんとねじでねじ込んでみると今度はうまくいきました。

    何のことはないきちんとディスプレイのコネクタをねじで固定していないが原因でした。

    ここまではよくある話し。最後の落ちです。

    今回の目的のLANカードを入れた後、後ろのコネクタをよく見ると、もう一つLANポートがあるのを見つけました。つまり最初からこのPCには2つLANポートがあるのでした。

    新しくLANカードを買うこともありませんし、これまでのモニタが写らないというトラブルも起こりえないのでした。

    結局ハブからLANケーブルをつないで、BIOSで2つめのLANポートを有効にするだけで作業終わり。

    今回は無用なトラブルを起こしただけのことでした。力が抜けます・・・。

  • iSCSI TeraStaion IS を設定した話し

    以前、社内のサーバーをどうするかという話しをしましたが、Linuxサーバー + TeraStation IS にしました。新しもの好きといわれても仕方がないかも。

    Amazonに注文した TeraStation IS が届いたので設定しました。普通の量販店から手に入らないので、今回はAmazonで見つけました。在庫無しとなっていましたが、とても早く入手できました。今なら在庫があるようです。

    まずはIPアドレスの設定。初期設定ではDHCPで取得されています。ここまでは、付属のCD-ROMからiSCSI接続ツールからできます。これ以降は、Webブラウザから設定していきます。

    あとは、NTPの設定。サーバーはきちんと時間は合わさなければいけません。

    RAIDのメンテナンススケジュールと、障害が発生したときのメールの設定をしておしまい。後はデルからサーバーが届いてから行います。

    Windows PC(特にVista)からTeraStation ISにiSCSIで接続するのは、付属のiSCSI接続ツールを使えば簡単なようです。今回は、Linuxサーバーに接続してしまうので、使う機会はありませんが。

    SambaをLinuxサーバーのインストールしてファイルサーバーとして動かすよりも、サクッとQNAPを入れてしまったほうが簡単、安心、便利でおすすめ。ファイルサーバーだけではなくてIntelのCPUのQNAPなら、Dockerでいろいろとコンテナを設定してサーバーをたくさん立てられるしね。

  • リモートデスクトップで失敗してしまう話し

    青山オフィスあるPCにリモートデスクトップ接続がつながらなくなる。どうしてもそのPCでからサーバーにアップしなければいけないファイルがあるので、本日は青山オフィスまで行く。心当たりがある・・・。

    原因は、そのPCからVPNでサーバーに接続していて、リモートデスクトップ接続を切断してしまったのが原因。

    青山オフィスに行ってVPN接続を切断。無事にファイルのアップが完了。

    VPN接続のタイムアウトで勝手に切断なんてしてくれないのでしょうか?

    サーバー管理がうるさくなったせいか、直接サーバーにFTPで接続できなくなってきた。scpもsshで端末を利用できてしまうので使用禁止。これって意外と手間がかかるのです。

    VPNで接続してからFTPでファイルをアップしかできないので、サーバー上のサイト構築では苦労する。設定ファイルをいじるだけでも面倒。

    そこで利用しているのはWS-FTP LEという昔から使っている古いFTPクライアントソフトです。このソフトを使うとFTPで接続したリモートのファイルを、テキストエディタ(普段使っている秀丸)で編集できる。サーバー固有の設定ファイルはこれでいじってしまいます。

    もちろんサーバーの管理者権限をいただけるはずはないので、Apacheのhttpd.confやPHPのphp.iniの設定は、お手数ですがサーバー運用会社の管理者にお願いする。今回は大きなデータをデータベースに初期投入する必要はありませんが、もしある場合はお願いしなければいけません。管理者に嫌がれようが(実際には面倒らしくて嫌がれます)、こればかりしょうがない。

    著:大竹 龍史, 著:山本 道子
    ¥2,950 (2025/04/24 12:29時点 | Amazon調べ)
    著:Piro, 編集:日経Linux
    ¥2,178 (2025/04/29 16:34時点 | Amazon調べ)
    著:三宅 英明, 著:大角 祐介
    ¥2,970 (2025/04/24 12:29時点 | Amazon調べ)
  • QdmailでCakePHPのViewで送ると文字化けする話し

    現在、CakePHPのサイトを作成していますが、メールを送信する処理があります。今まですとmb_send_mail()を使ったクラスを用意していましたが、せっかくCakePHPを使っているということで、Qdmailというコンポーネントを使ってみました。

    PCに送るには問題なし。しかし、携帯電話宛のメールは文字化けします。

    調べてみると、cakeText()メソッドでViewを使うとUTF8で送信しているようです。Viewを使わず直接text()メソッドを使ってテキストで送ると、正常にiso-2022-jpで送ってくれます。

    Qdmailのサイトで調べて、charsetBody()メソッドでiso-2022-jpを指定してもだめ。テンプレートファイルをJISにしたら携帯電話で読めるようになるが、パラメータをアサインすると文字化け。1時間ほど悩む。

    Googleで「Qdmail cakephp 文字化け」で検索してみるとありました。ここのサイトでヒントが見つかりました。

    cakeText()メソッドの第5パラメータで iso-2022-jp を指定すればOK。Qdmailのマニュアルには見つかりませんでした。

    Qdmailのサイトには、非常に詳しくマニュアルが載っています。今回はこれを信じたのがいけなかった。ソースコードが読めるのなら、ソースコードを読まなければいけません。しかしQdmailのソースコードは、コメントが少ないので読みづらい。コメントの中にコードが埋まっている私とは大違い。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • 全角文字は2バイトではないのでした、という話し

    タイトルの件、考えてみれば当たり前なのですが、お客さんからの仕様で引っかかりました。ここでいう全角文字は、マルチバイト文字のこと。

    フォームに文字を入力する処理で、入力した文字の長さをチェックする処理が必要です。そこで文字長でチェックするか、バイトでチェックするか。

    これをCakePHPのバリデーションで用意しているmaxLengthのルールでチェックしたところ、何も考えずに内部コードのバイト長でチェックしていまいます。これをお客様から指摘されました。希望としては、全角文字を2バイトでチェックして欲しいとのこと。

    例えば、「あああ」は6バイトではなく9バイトとして判定されます。これは内部のコードがUTF-8だからです。CakePHPのバリデーションで正しく文字数で判定するには、maxLengthの処理をmb_strlen()で変更してあげます。詳細な対応方法は、こちらのサイトをご覧ください。

    ここで簡単な実験です。こんなコードと結果です。

    <?php
    $str = "あああ";
    echo(strlen($str)); // 9
    echo(mb_strlen($str));  // 9
    echo(mb_strlen($str, 'UTF-8'));  // 3
    echo(mb_strlen(mb_convert_encoding($str, 'SJIS', 'UTF-8'), 'SJIS')); // 3
    echo(strlen(mb_convert_encoding($str, 'SJIS', 'UTF-8')));  // 6
    ?>

    UTF-8のままですと、全角文字は2バイトにはなりません。しかも、正しく文字コードをしてあげないと正しい文字数になりません。

    一旦、シフトJISに変換してあげて、mb_stringではないstrlen()で全角文字を2バイトで計算してくれます。

    昔の人間ですと、どうしても全角=2バイト、半角=1バイトと考えてしまうのですが、この考え方は古いかもしれませんね。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • 社内サーバーの更新検討をした話し

    社内で使っているデルのサーバーは、ファイルサーバー、IMAPサーバー、AsteriskのソフトPDXのサーバーとして利用しています。メモリ1GBでディスク100GB4台をRAID5です。

    導入して4年目、多少トラブルがあったものの、とりあえず無事に動いています。

    しかし、いつ壊れるかもしれません。ファイルサーバーのバックアップは毎日取っていますが、安心してはいられません。しかも、そろそろディスクの残量がなくなってきています。

    そこで、サーバーの更新を検討してみます。条件としては、

    • ディスクは1Tバイト以上。
    • RAID構成で安全に。
    • メモリは仮想化されたサーバーを動かすので2MB以上。
    • 日頃メンテナンスで面倒がないこと。

    となります。現在のサーバー構成でメモリとディスクを増やして、デルで見積もりをしたら、30万近くになります。。

    代案として

    • Linuxのサーバーで構築するのをやめて、NASのTera Stationとを入れてしまう。しかし、これですと、IAMPとかAsteriskなどのアプリケーションが動かない。
    • NASのTera StationとLinuxサーバーを入れてしまう。そのときのLinuxサーバーはディスクは最小構成。ディスクはTera Stationにマウントする。Linuxサーバーが故障したら、OSだけ再インストール。でも、LinuxサーバーからTeraStationへのマウントはSMBでマウントするの? 遅そうですね。
    • 上のNASのTera Stationの代わりにiSCSIのTeraStarion ISを入れる。もし、ディスクが足りなくなったら、iSCSIの機器を追加していく。NASよりもパフォーマンスは上か? でも、iSCSI自体、新しい技術のためハードルが高いか? それにLinuxとの接続はBUFFALOも推奨していなさそうだし。
    • サーバー自体をパーツを買ってきて自作してしまう。でも、自作してしまうと故障したときに自分で面倒みなければいけないし大変かもしれません。

    お客様には、何台もTeraStationを薦めてきましたが、そろそろ自社でも導入しておいたほうがいいかもしれません。3番目がおもしろいかもしれません。

    さて、どうするか・・・。

    SambaをLinuxサーバーのインストールしてファイルサーバーとして動かすよりも、サクッとQNAPを入れてしまったほうが簡単、安心、便利でおすすめ。ファイルサーバーだけではなくてIntelのCPUのQNAPなら、Dockerでいろいろとコンテナを設定してサーバーをたくさん立てられるしね。

    続きはこちらから

  • リモートデスクトップ接続ができなくなったので対応した話し

    急に青山オフィスにあるPCへリモートデスクトップ接続ができなくなる。

    まずは疑うことは、ファイヤーウォール辺り。とりあえず無効にしたけどダメ。

    つぎに新しくインストールしたアプリケーション。昨日Google Chromeをインストールしていたので、アンインストールしてみる。変わらない。

    次はルーターの設定。VPN周りを確認。別に変更していない。何も変更していないので、接続できるはず。どうして??

    原因がわからないので、青山オフィスに行ってみる。

    何のことはない、ログオフしている途中でPCが止まっている。原因はMicosoft Updateでアップデートの途中でフリーズしている。ただそれだけ・・・。

    仕方ないので、Micosoft Updateで何かアップデートが見つかっても、通知するだけで、勝手にアップデートしないように設定しておく。

    Windowsは何かシステム変更あると、何でも再起動するのは困ります。

    ヤマハ(YAMAHA)
    ¥147,000 (2025/04/25 16:07時点 | Amazon調べ)
    ヤマハ(Yamaha)
    ¥39,800 (2024/01/08 10:01時点 | Amazon調べ)
    ヤマハ(Yamaha)
    ¥92,800 (2025/04/29 20:43時点 | Amazon調べ)

    拠点間や法人向けルーターは、ヤマハのルーターが信頼性があってお勧めしています。私もヤマハのルーターを使っています。

  • GoogleのWebブラウザ – Google Chromeを使ってみる話し

    新しもの好きかもしれませんが、GoogleのWebブラウザであるGoogle Chromeをインストールしてみました。

    とてもシンプルです。これが第一印象。

    IEやFirefoxにあったよく使う機能はどこにあるの? たとえばホームページに戻るボタン、ブックマークの移動・・・。

    これらは、オプション画面で設定すると使えます。反対に設定しないと使えない。

    ブラウザをプラットフォームにしている人、例えばメールはGmailしか使わない人とかはいいでしょうね。

  • RSSリーダーはThunderbirdが楽ちんなのですという話し

    他人様のブログのチェックなど、どうしていますか? いちいちサイトのURLを打ち込んでアクセスしているなんてしていませんよね? それともお気に入りに入れていますか? それともRSSリーダーなんて使っていますか?

    いちいち新しくRSSリーダーのアプリをインストールするのも面倒です。

    FirefoxのようなWebブラウザですと、RSSを用意したサイトを追加するのもマウスでできて簡単です。しかし、チェックするのは、メニューから選択するのも面倒です。何かしたいときにメニューから選ぶのは、意外と手間がかかります。

    私も最初はFirefoxでRSSを管理していましたが、見に行くのが面倒になりました。

    以前、紹介したrss2imapはRSSで更新したサイトを参照するには楽なのですが、サイトを追加するのは設定ファイルで追加しなければいけないのが面倒です。

    そこで、ThunderbirdのRSSリーダーを使ってみることにしました。ニュースとプログのためのアカウントと新規作成します。後は、RSSのURLを追加していきます。

    ここでポイントなのは、ある程度カテゴリでフォルダを作成しておきます。私の場合、「アマチュア無線」というフォルダを作成して、ここにアマチュア無線関係のRSSのURLを放り込んでおきます。ブログごとにフォルダを作成する必要がありません。

    サイトが更新されたらRSSで通知してくれますので、登録したサイトが新規メールのように表示されます。見に行くのは、一つのフォルダだけ。とても簡単です。

    私の場合、20サイトほどのRSSを、一つのフォルダに放り込んでいます。お試しを。

    追記(2022年1月27日)

    この記事の話しは、随分古い話なのです。今はFeedlyというWebサービスを使っています。Feedlyのほうが絶対に楽ちんなのです。

  • capictchaの画像のサイト名を消してしまう話し

    コメントの入力でスパムの標的にならないように、画像にぐにゃっとした文字列を表示して、これを入力させるcapictchaというものがあります。

    お客様の要望で、下のサイト名を消すように言われました。capictchaはKCAPTCHAというライブラリで生成しています。KCAPTCHAの情報を漁ってみましたがドキュメントが見つかりません。

    仕方ないのでKCAPTCHAのソースを眺めていたら、kcaptcha_config.phpで何か設定していることがわかりました。kcaptcha_config.phpのファイルを見たら、何のことはないコメントに

    # show credits
    $show_credits = false; # set to false to remove credits line. Credits adds 12 pixels to image height
    // $credits = 'www.captcha.ru'; # if empty, HTTP_HOST will be shown

    とあって、

    $show_credits = true;

    とするだけ。その他、画像の大きさなどが設定できるようです。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)