Just System イメージ悪すぎ

#処理の待ち時間にざっと書いたので、乱文失礼。^^;

今朝、MacのATOKに更新があり、コンピュータも再起動させたら、こんな画面が

キャンセルとか、「今はしない」といった選択肢が見当たらない。まぁ左上の赤い丸印を押せば閉じることは出来るんだけど、問題はそれだけじゃない。

「ATOK Syncは無料でご利用いただけます」。ふむ。

ねんのためブラウザを立ち上げて確認してみると、ATOK 2011では「ATOK Sync アドバンス」を”1年間無料で”使えますとな。
けっ、やっぱり1年だけで有料じゃん。

あれ、昔はWebDavサーバを自前で用意すれば(他のクラウドサービスでも良い)、逃げ道にならなかったっけ?こんなページ (ATOK Syncを使って無料で辞書を同期する | penchi.jp)もあったよなぁ。

とよく見ると、バージョンが違う。
確かにJust Systemのページを見ると、2011の場合と、2010以前とで別れてる。

なるほど2010までにあった逃げ道を2011では塞いだのね。

Syncさせたきゃお布施を払えと。

DropBoxや、iCloudといったサービスに意地でも対抗したいのだろうか?金を取るだけのアドバンテージが見いだせない。
この人も半年前に全く同じ事を書いてる。「ATOK Sync:たいして回収できない月額料金を回収するためのコスト

会社がキーエンスに買収されて浮川さんが退社してから、どうもJustSystemの製品のこういう挙動、というかインターフェースというか。。。やらしくなったよなぁ。

 

CentOS の SELinuxを無効にする

CentOS インストール直後、
Apache の mod_aliasを使うと、

(13)Permission denied: access to /hoge/hoge denied

といったメッセージが出る。

ネット上に公開するサーバにはおすすめしないけど、
手物のVMWareで手っ取り早く動かしたいので、Slinuxを無効にする。

キーワードは”enforce”。

現在の状態を取得するには、

getenforce

Enforcingと表示されれば、SELinuxが有効になっている。

一時的に無効にするには、

setenforce 0

この状態で getenforce をすると、Permissive となる。この状態で、Apacheの動作確認などを行うことができる。

再起動したら設定が戻っちゃうので、無効のまま起動させるために、/etc/sysconfig/selinux を書き換える。

SELINUX=disabled

このファイルには、以下のように親切に書かれているので、書き換えるファイルさえわかれば迷わないはず。

# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.

CentOS の Apache にアクセス出来ない? iptablesか!

VMWareにCentosを入れて、yum でapacheを入れる。でもそれだけじゃアクセス出来ない。

CentOSのFirewall 、iptablesの設定を更新する必要がある。

まずは初期状態の確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain INPUTがフィルターの流れ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
つまりこの間に、httpやhttpsといった外部からつなげたいポートを許可する設定を書くって訳だ。

# /sbin/iptables -I INPUT 5 -p tcp –dport https -j ACCEPT
# /sbin/iptables -I INPUT 5 -p tcp –dport http -j ACCEPT

確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 ACCEPT tcp — anywhere anywhere tcp dpt:http
6 ACCEPT tcp — anywhere anywhere tcp dpt:https
7 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

よしよし。

設定を保存。

# /sbin/service iptables save

後からpostgresを許可したければ、こんな感じにすればいいのかな。

# /sbin/iptables -I INPUT 7 -p tcp –dport 5432 -j ACCEPT

vmshrink の最新版は何処?

「仮想の背中」さんが閉鎖されてからだいぶ経ちますが、「VMwareのディスク使用量を減らす – VMwareToolsがインストールされていない場合」のページは「vmshrink」でGoogle検索すると2番目に表示されるようですね。

HDDの容量が大きくなった昨今、vmshrink の必要性はかなり減ったとは思います。
また最近のVMwareのバージョンであれば、「仮想マシンのクリーンアップ」機能があり、これが同じような働きをしているのでは無いでしょうか?(検証したわけではないので間違っているかもしれません)

ですが、vmshrink などの開発は止まっちゃったのかな?とか、作者さんはご健在?といった疑問は残るわけです。

vmshrink.cの冒頭を見てみると、

	vmshrink.c
	virtual disk shrink utility

	Copyright (c) 2006 Ken Kato

とあります。これと「vmshrink」で検索したら、”それらしい”ページがサイトがあるじゃないですか。

VMware Command Line Tools – VM Back

このサイトのオーナーに関する情報を見つけるには至っていませんが、掲載されている内容からするに、 「仮想の背中」の後継のサイトとみて良さそうです。

Memo:ディレクトリ内のファイル数を数える

どんどん蓄積されるファイル群の期間ごとのファイル数を知りたくて、いつものようにこんなコマンドを打ったんだけど、ファイル数が多いと時間がかかるのよね。そこで調べたら、速度比較までして検証しているサイトがあった。 ディレクトリ内のファイル数を速く数える(Linux,ext3,ls,find,wc)。そこにも書かれているけど、find はいろいろ使えるので、メモ。

ls コマンドは通常ファイル名でSortが発生するので、普通に使ったのでは遅い。だから単にlsと打ったのではだめ。

ls . | wc -l

ls のソートを止めるには、オプションの -f を使う。

ls -f . | wc -l

一番高速なのが、find コマンドを使う方法。

find . -type f | wc -l

Unable to copy the users Xauthorization file.

メモ。サポート環境の整備のためにリモートデスクトップ接続。

LAN1 -(INTERNET)-> LAN2 -(VPN)-> LAN3

ちと面倒な接続で、LAN3には外部から直接アクセスできないので、LAN2内のPCを経由する必要がある。というわけで、中継用のPCとして、ライセンス云々が面倒な事にならないUbuntuなノートを用意。

順調にリモートデスクトップを使っていたのだが、パッケージ管理の様に管理者権限が必要とされるアプリケーションを起動させようとすると、エラーメッセージが表示される。

Unable to copy the users Xauthorization file.

で、このエラーメッセージで調べたところ、ubuntuにwindows7からリモートデスクトップ接続したときのメモというタイトルでそのまんまの記事を発見!オリジナルはUbuntuのフォーラムの[ubuntu] xrdp user permissions problem – Ubuntu Forums

touch ~/.Xauthority
chmod 600 ~/.Xauthority

あっさり解決できて良かった。

Lionのイメージはダウンロードとインストールの間にコピーしておけ?

一昨日の夜、ダウンロード販売が開始されたOS X Lion。

今年の頭に買ったMBPに突っ込んだのですが、インストールが終わったら、ダウンロードしてきたインストーラーが見当たらない。

「Install Mac  OS X Lion.app」という、約3.7GBのアプリケーションがダウンロードされるんだけど、どこ行った?

リアルタイムで呟いてみたけど、似たような情報は無し。周囲にはそこまでホットな人は居ないし、ホットな人はみな目の前のLionに釘付けだったろうからね :-)

念のためにとっておいたバックアップから古いOSで起動して、再度Lionをダウンロードしてみました。
パッケージの内容を表示させてみたところ、

Contents -> SharedSupport -> InstallESD.dmg が 3.74GB占めていることが判明。名前からしてもこれがLionのイメージなんだろうな。
Installesd.dmg で検索すると、案の定いっぱい情報が出てくる。

8月には、USBに入ったLionが販売されるようだけど、別途費用が発生するようだ。
流れに従っていくと、勝手に消されるイメージ。HDDがクラッシュしたら古いOSのインストールから始めなくちゃいけなくなるけど、それがAppleの考える、今回の戦略なのかな?

zf.shが使えなくてはまった。

メモ

  1. 最新のzf.zipをダウンロードして解凍。
  2. /usr/local に、zend/share/ZendFramework/ を作成。
  3. 解凍したZF一式をここにコピー。
  4. sudo ln -s /usr/local/zend/share/ZendFramework/bin/zf.sh /usr/bin/zf
    sudo ln -s /usr/local/zend/share/ZendFramework/bin/zf.php /usr/bin/zf.php

ここまでやって、コマンドラインからzfを実行してみたところエラーがでた。

***************************** ZF ERROR ********************************
In order to run the zf command, you need to ensure that Zend Framework
is inside your include_path.  There are a variety of ways that you can
ensure that this zf command line tool knows where the Zend Framework
library is on your system, but not all of them can be described here.

The easiest way to get the zf command running is to give it the include
path via an environment variable ZEND_TOOL_INCLUDE_PATH or
ZEND_TOOL_INCLUDE_PATH_PREPEND with the proper include path to use,
then run the command “zf –setup”.  This command is designed to create
a storage location for your user, as well as create the zf.ini file
that the zf command will consult in order to run properly on your
system.

Example you would run:

$ ZEND_TOOL_INCLUDE_PATH=/path/to/library zf –setup

Your are encourged to read more in the link that follows.
Zend_Tool & CLI Setup Information
(available via the command line “zf –info”)
* Home directory found in environment variable HOME with value /Users/hoge
* Storage directory assumed in home directory at location /Users/hoge/.zf/
* Storage directory does not exist at /Users/hoge/.zf/
* Config file assumed in home directory at location /Users/hoge/.zf.ini
* Config file does not exist at /Users/hoge/.zf.ini

To change the setup of this tool, run: “zf –setup”

ふむ。
確かに、include_pathに、zendのライブラリを追加登録してないからね。でもこのメッセージを見ると、ホームディレクトリに.zf.iniを作れば良さそうだな。

ZEND_TOOL_INCLUDE_PATH=/usr/local/zend/share/ZendFramework/library zf –setup

を実行してみたところエラーも無く表示された。

ZF Command Line Tool – Setup
—————————-

Current Paths (Existing or not):
Home Directory: /Users/hoge
Storage Directory: /Users/hoge/.zf/
Config File: /Users/hoge/.zf.ini

Important Environment Variables:
ZF_HOME
- the directory this tool will look for a home directory
- directory must exist
ZF_STORAGE_DIRECTORY
- where this tool will look for a storage directory
- directory must exist
ZF_CONFIG_FILE
- where this tool will look for a configuration file
ZF_INCLUDE_PATH
- set the include_path for this tool to use this value
ZF_INCLUDE_PATH_PREPEND
- prepend the current php.ini include_path with this value

Search Order:
Home Directory:
- ZF_HOME, then HOME (*nix), then HOMEPATH (windows)
Storage Directory:
- ZF_STORAGE_DIR, then {home}/.zf/
Config File:
- ZF_CONFIG_FILE, then {home}/.zf.ini, then {home}/zf.ini,
then {storage}/zf.ini

Commands:
zf –setup storage-directory
- setup the storage directory, directory will be created
zf –setup config-file
- create the config file with some default values

一番最後zf –setup config-file、これが .zf.iniの作成だな。直前の命令の最後にconfig-fileを追加してみたところ、

NOTE: the php include_path to be used with the tool has been written
to the config file, using ZF_INCLUDE_PATH (or other include_path setters)
is no longer necessary.

Config file written to /Users/hoge/.zf.ini

良さそうだ。
中身を見ると、

php.include_path = “/usr/local/zend/share/ZendFramework/library”

。。。
これでいいのかな?
念のため、

php.include_path = “./usr/lib/php:/usr/local/zend/share/ZendFramework/library”

として上書き保存。

これでzfがローカルな環境でzfが使えるようになった。

OSXのWEB共有、このzf (PHP) 、sqliteで、Webアプリケーションの開発ができるな。mysqlやpostgresもosxにインストールしてしまえば、vmwareが不要になりそうだな。
だが後数日でLionがでるようだから、それが落ち着いてからにしよう。

date.timezoneを設定する

VMWareを使ったLinuxのテスト環境を作ったのだが、timezoneに関するPHPのWarningがうるさいので、対策メモ。

コマンドラインから、次のように入力すると、

php -r ‘phpinfo(); | more’

1ページ目に以下のようなWarningが表示される。

PHP Warning:  phpinfo(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead in Command line code on line 1

phpをディストリビューションのものを使っていれば出てこないんだろうけど、最新のバージョン& Zend Framework をyum管理で楽したい場合、外部リポジトリを使うことになり、多分同じ問題が出るんだろうな。

date.timezone か、date_default_timezone_set()関数を使って設定する必要がある。とな。

/etc/php.ini の中に、コメントアウトされた date.timezoneがあるので、コメントを解除して、値をセット。

date.timezone = Asia/Tokyo

Apacheを再起動すればOK

速いには速いんだが…

SSDに換装したMacBook Pro。電源を入れると、Appleならではの「ジャーン」という起動音と光学ドライブの音がして、それほど待つ事も無くOSが起動する。ここまでは非常に快適。

普段家で使うときはNASに頻繁にアクセスするので、電源が入っているときはマウントしっぱなしのことがおおい。むしろ起動したら自動的にマウントしておいてほしい。
だからWindowsでいうスタートアップに、NASをマウントする設定を追加したんだが。。。

有線LANで接続していても、起動時にIPアドレスが確定してネットワーク通信ができるようになる前に、このスタートアップ項目が実行されてしまうらしく、起動時のマウントに必ず失敗する。

もう少し待ってくれても良いようなものだけど、それはユーザーの勝ってだよな。
どれだけ待てばいいのか?
マウントしようしたけど、ネットワークつながってなくね?
ってことに対する反応だから、正しい挙動だと思う。
これがWindowsだと、エクスプローラがしょっちゅう応答不能になるように、馬鹿正直に待ち続けるんだよな。

むしろスタートアップのマウントのタイミングを数秒遅らせるべきか。