Ubuntu 16.04 で最新の xrdp をビルドした

最近、X11RDP-o-Matic を使うと、ビルドエラーになってしまって、最新の xrdp に更新できません。
なんとかならないかなと色々調べてみたら、launchpad で Ubuntu 向けのビルドを見つけました。

https://launchpad.net/ubuntu/+source/xrdp

Ubuntu 16.04 で、開発中の 17.04 向けの最新パッケージをビルドできれば良いなと考えて、調べてみたら以下のページを見つけました。

http://gihyo.jp/admin/serial/01/ubuntu-recipe/0152

上記記事にほぼ従ったのですが、不足パッケージについては debian/control の内容を参考にしたり、ビルドを行ってエラーになったら対応する事を繰り返したほうが良さそうです。

そういえば、ipv6 を無効にすると xrdp が起動できませんでした。
ローカルの Xubuntu でハマってしまいました、
コンパイルオプションに “–enable-ipv6” が指定されているのが原因です。
どうしても ipv6 を無効にした状態で xrdp を使いたい場合は、ビルドする前にファイルを修正して、コンパイルオプションを指定している行を削除します。

Raspberry Pi 3 model B に Xubuntu 16.04 をインストール

子供へのサービスで、ちょこっと大阪日本橋のシリコンハウスというお店へ行ってきました。
子供の目当てはLEDネームプレート。パソコンを使って好きな文字列を登録して遊んでいる。
なかなか面白いものです。

さて、モノのついでと言ってはなんですが、ここまで運転してきた自分への慰労の意味もあり、以前から欲しかった Raspberry Pi を購入しました。
特に目的は決まっていないのですが、いじっているうちに何か見つけると思います。
まずは手に入れて、失敗したり、限界を感じたりする事自体が楽しいと期待しています。

Xubuntu 16.04 のインストールに関しては、以下を参考にしました。
Ubuntu Weekly Recipe 第421回 Raspberry Pi3とXubuntu 16.04 LTS

準備するもの
・システムのインストール作業用のパソコン(Xubuntu 16.04)
・microSDHC 16GB or 32GB
・Raspberry Pi 3 Model B
・HDMI接続可能なモニタ(デジタルテレビ)
・USBキーボード + マウス
・LANケーブル
・HDMIケーブル

.xz 形式の解答は xz コマンドで出来るようです。
ダウンロード/ にダウンロードした場合、SDカードが /dev/sdb の場合は以下のようにすれば、インストール完了です。

その後、GParted を使って、システムパーティションを 4GB を残して拡張してから、SWAP パーティションを作成しました。

Raspberry Pi に microSDHC カードを挿入ます。
Xubuntu の起動時には GUI による言語の選択や地域の設定と若干の追加インストールがあるので、モニタとキーボード・マウスとLANケーブルを接続しておきます。
最後に microUSB 端子の電源を差し込めば起動です。

言語の選択、地域の選択、ユーザー名・ユーザーID・パスワードの設定を行うと、アップデートが実行されますが、アップデートはリポジトリを国内のものに修正してからの方が良いと思われるので、キャンセルした方が良いようです。

ログイン画面が表示されるので、ログインして「ターミナルエミュレーター」を起動します。
そして、以下のコマンドでスワップパーティションを有効にしてファームウェアを更新します。

以下を追加。

再度ログインして「ターミナルエミュレーター」を起動して、コマンドを実行します。

以下のように修正。

xrdp で xorgxrdp を使う – ビルド編

さて、遅くなりましたが、予告していたビルド手順です。
ビルドは以下の環境で行いました。

・Xubuntu 16.04 amd64
・X11RDP-o-Matic

以上です。

次は設定です。

xrdp で xorgxrdp を使う

現在、xrdp のバックエンドには、以下があります。

・VNC — VNCサーバーをバックエンドとして使う
・X11RDP — 自前で構築した X11 サーバーをバックエンドとして使う
・xorgxrdp — ドライバ経由でシステムの X11 サーバーを使う

現在は、ビルドも早く、最新の X11 環境を利用できる xorgxrdp へシフトしつつあるようです。
インストールして試していますが、解像度を 24 ビットに設定すれば、安定して快適です。

次の投稿でビルドについて、その次の投稿で設定について説明する予定です。

ビルド編

Ubuntu で EUC-JP の PostgreSQL データベースを作成する

システムに EUC-JP をインストール

データベース作成

参考:
Ubuntuでja_JP.EUC-JPを使用する – World Wide Wonderful
仕事SPOT: PostgreSQLのinitdbと違うロケールでDB作成

SSHのセキュリティー設定

/etc/security/access.conf 編集

/etc/pam.d/sshd 編集

/etc/ssh/sshd_config 編集

いまさらPHPで文字化け。

いまさらですが、最近またPHPでの文字化けに遭遇したのでメモしておきます。

そもそもなんでいまさらPHPでの文字化けに遭遇したのか、なんですが、最近では Ajax が当たり前になって、ページの一部を帰す場合が多いんです。
その際にサーバによっては、ページの一部だけが文字化けしてしまいました。
「サーバによって」の部分が重要で、PHPかApacheの設定が異なっているためだと推測出来ました。

結局、Apacheの設定では「AddDefaultCharset」、PHPの設定では「default_charset」が原因でした。
特にPHPの設定である「default_charset」について理解するには、PHPの動作を理解する必要があります。

PHPは常にheader情報の「Content-Type」を出力するようで、その際に「default_mimetype」と「default_charset」を用いる仕様となっています。
デフォルト値は「text/html」と「」(空→charset無し)となっています。

結局、Ajaxでページの一部を帰す場合には
header( ‘Content-Type: text/html; charset=UTF-8’ );
か、または
ini_set( ‘default_mimetype’, ‘text/html’ );
ini_set( ‘default_charset’, ‘UTF-8’ );
としてからコンテンツを出力すべきです。

今後はアプリケーションの設定ファイルで後者(ini_set)を採用していこうと思っています。

やはり Apple Store は怖い

Apple Store でハッキングが横行して、多くのユーザーが払い戻しなどの措置を受けているそうだ。

これは予想できた問題で、それゆえ自分は iPad などに手を出さなかった。
Apple Store でクレジットカードを使う場合、クレジットカード情報を登録する必要がある。
その後はワンクリックで購入し放題だ。危なすぎる。

他人にクレジット枠いっぱい使われても生活に支障のない方にしかおすすめしない。