MacBook Air を2台所有し、1台をバックアップに使っているという贅沢なおっさんの続きだ。
あっちの大学に勤務している日にこの贅沢なおっさんから電話がかかってきた。本来のMacBook Airではなく、バックアップの方のMacBook Airで作業しているのではないか。という疑問だ。
本来のMacBook Air—-Thunderbolt/Power二股ケーブル—-Thunderbolt Display—-Thunderbolt ケーブル—-バックアップ用MacBook Air という接続だ。バックアップ用MacBook Air はターゲットモードで起動しておきCarbonCopyClonerで本来機のクローンを毎日定時に作成する。これにTimeMachine 用外付けHD、SuperDrive、プリンタがUSBケーブルで Thunderbolt Displayの背面のポートに接続する。という構成だ。プリンタがUSB接続なのはプリンタを共有したくないのだ。
孫が生まれ、その写真が送られてきた。あまりにもかわいいので、孫の写真をデスクトップの壁紙にしたわけだ。壁紙の設定は普通システム環境設定から行う。このおっさんはそんなことはあまりしない。Mountain Lion では、送られて来た写真を右クリックすると壁紙にするというメニューが出てくるのだ。だからクリックしちゃったのだ。
あるとき、本来の本来のMacBook Air を Thunderbolt Display からはずし、単体で起動したらデスクトップの壁紙が元のもので、孫の写真になってない。バックアップ機を立ち上げると元のデスクトップだ。へ?ではこれま作業していたのはバックアップ機だったのでは?と、混乱してしまったわけだ。
電話を受けた時、バックアップ機で動いていると言われたので、そんなはずはない、バックアップ機はターゲットモードになっているので、本来のMacBook Air が動いているかぎり、また再起動しない限り、起動ディスクにはならないはず… とは思ったもの、現物がないので、土曜日に行くからということにした。
土曜日、行ったら、贅沢なおっさんの言う通り、本来機単独で起動すると、 Thunderbolt Display-Clamshell モードで設定した壁紙にならない。 Thunderbolt Display接続で本来機の蓋を閉じないと、本来機も Thunderbolt Displayも壁紙は元のものである。この状態で本来機の蓋を閉じClamshellにすると、設定した孫の写真の壁紙になる。
この動作は本来の動作なんだろ。2つの画面のそれぞれの壁紙を設定したことになるのからだ。蓋をあけたときは自動的にミラーモードであり、Clamshellモードはミラーモードでも、2台のモニターを使っているモードでもないのだ。混乱するわけだ。Clamshellモードではビデオ出力は本体への出力をやめ、外付けディスプレイ専用になるのだ。解像度がちがうからな。壁紙については2台のモニターを使っていることになるんだろ。
さらに混乱したのは Thunderbolt Display背面に接続したUSB機器を認識できないことである。本来機に接続すると認識できる。
しかし Thunderbolt Displayに接続した外付けHDは、最初は認識していなかったが再起動でできるようになった。Canonのプリンタは認識できない、また管理者が最初に設定したときは Thunderboltケーブルが短いものであったのだが、これを配置の関係から長いものに変更してあった。この長い Thunderboltケーブルにも問題があるのかもしれない。組み合わせでうまくいかない可能性もある。
MacBook Air 単体でもCanonのプリンタを認識できないことが分かった。プリンタドライバを更新したりしたが、結局これは意味がなく、プリンタをUSB接続したまま、プリンタの方を再起動すると、MacBook Air でも Thunderbolt DisplayのUSBポートでも、認識できるようになった。
長い(2 m) Thunderboltケーブルがだめなのかは、きちんと検討していない。短いほうに変更したらうまくいったからだ。
テスト環境が自分の物ではないからな。
2台のMacBook Airは重ねて置くと加熱してファンがうるさい。そこで、ホームセンターでまな板が2枚入るスタンドを購入して持って行ってあげた。これでいいはず。これでディスプレイの近くにMacBook Airを2台置けるので Thunderboltケーブルも短いので済む。
PowerPointでコピペができないという問題は、OSを10.8に上げたためで、Office 2011をアップデートして解決した。
なんだかんだで2時間弱かかって、すべて解決した。系統的に調べて原因を追及していないから、参考にならないだろうな。
なんせ、こんな贅沢な使い方をしているユーザなんてめったにいないから、ネットでの情報が得られない。
「Mountain Lion Server」カテゴリーアーカイブ
OSX10.8サーバ その33 .htaccess
Mの更新(Mountain Lion OSX10.8サーバ) その33 .htaccess
directory によって.htaccess が使えるかどうかを設定するのはその15に書いた。.htaccessを有効にするとapache2は.htaccessを探しまわるので遅くなるともいわれているが、いまどきのサーバではたいしたことはない。
.htaccess で操作するのは認証が一番ポピュラーだろう。ip address とかで拒否するのはあまりやらないだろう。
.htaccess が有効かどうかは、公開するdirectoryが 例えば
/Users/[ユーザ名]/Sites
だったら、このdirectoryに置く.htaccessに
Redirect /[該当のdirectory]/ http://www.google.com
という1行だけを書く。http://example.com/[ユーザ名]/ にアクセスするとgoogleのページにリダイレクトされる。
パスワード認証
.htaccess ファイルを認証をかけたいdirectoryに置く。
中身を以下のように記述する。
AuthUserFile /Users/hoge/secret/.hoge-htpasswd
AuthGroupFile /dev/null
AuthName ” ”
AuthType Basic
require valid-user
AuthUserFile:ユーザ名とパスワードが書いてあるファイルを指定する。directory のSites は公開ファイルを置くところだからその外のユーザがFTPできるdirectoryにする。この場合はhogeというユーザのhome directory にsecret というdirectoryを作って、その中に.hoge-htpasswd というファイルにユーザ名とパスワードがあるよということになる。
AuthName ” “:の” “内にプロンプトに出てくるコメントを書く。日本語では文字化けするだろう。ブラウザの方でIDとパスワードを入れろというプロンプトになるから空白でもいい。
新しいパスワードファイルを作るために、/Users/hoge/secret で
sh-3.2# htpasswd -c .hoge-htpasswd [ユーザ名]
New password:
Re-type new password:
Adding password for user [ユーザ名]
sh-3.2#
-c のオプションで.hoge-htpasswdというファイルができるわけだ。さらにユーザを加えるためには-c を付けないで;
sh-3.2# htpasswd .hoge-htpasswd [ユーザ名2]
New password:
Re-type new password:
Updating password for user [ユーザ名2]
sh-3.2#
とする。
/Users/hoge/secret に.hoge-htpasswd というファイルができていて、開くとユーザ名はわかるがパスワードの部分は暗号化されているのがわかる。
OSX10.8サーバ その32 WordPress version up
Mの更新(Mountain Lion OSX10.8サーバ) その32 WordPress version up
WordPress のバージョンは現在3.5.1だ。ワンクリックでバージョンを上げることができるようになっているが、これまで、やったことがなかった。失敗するからである。
今回、新たに、解剖学、生理学、運動学のブログを立ち上げるにあたり、バージョンを最新のものにしたわけだが、これらのブログと4つも管理するためにはワンクリックでバージョンアップできるようにしておかないとつらい。書くブログには管理者がいるのだが、その管理者たちに教えるのが面倒だから管理者がすることになるからだ。
FTPでダウンロードし、解凍し、書き換え、古いファイルの削除が自動的に行われる訳だが、そのダウンロード場所はwp-content 内のupdateとかいうdirectoryを使って行われる。Wp-content内のdirectroyやファイルの操作の権限が合っていないと、ダウンロードできませんでした、古いファイルを削除できませんでした等のエラーでできない。
面倒だからwp-content 以下すべて権限を777にしてしまった。終了したら755に戻しておけば良い。戻さなくても良いかも。http://wpdocs.sourceforge.jp/ によれば;
wp-content/ のパーミッション
プラグインによっては、/wp-content/ ディレクトリをグループと他のユーザに対して書き込み可能にする必要がありますが、その場合プラグインのインストール時に説明があるはずです。具体的には、パーミッションは 755 か、もしくはそれ以上 (一部のホストでは 777) に設定される必要があります。
同様のパーミッションは、/wp-content/cache/ と、場合によっては /wp-content/uploads/ にも使用できます。
ということだ。
でWordPress本体のアップデートを行ったら、Mac の Chrome では問題ないがWin IE では正しく表示しない。ページは表示されるが中身がない、検索したがそんなページはないとか言って来る。同じ構成のブログを作るために、ローカルで複製したのをアップロードしたので、ページのリンクがまずいのかとも思い苦労した。なんてことはない、Allow Categories というプラグインがWordPressの新しいバージョンではまずかっただけだ。なんでこのプラグインを入れたか忘れた。使わないものはさっさと削除すべきだな。
OSX10.8サーバ その31 WordPress の新規作成
Mの更新(Mountain Lion OSX10.8サーバ) その31 WordPress新規作成
新たなブログをつくることになった。すぐ忘れちゃうのでまたメモだ。
データベースを作成する。
phpMyadmin (http://example.com/phpmyadmin/) にアクセスし root で入る.
Home で データベースのタグを開く。
データベースを作成する。
データベース一覧表が更新されて作成したデータベースがあるはず。これの「特権をチェックする」をクリックする。
該当データベースにアクセスできるユーザ一覧がある。新規作成のユーザを追加でできるウインドウでユーザを作る。
ユーザ名、パスワードを入力しホストはlocalhost とする。グローバル特権は「すべてチェックする」をクリックして、
すべての項目にチェックを入れ、ほかはデフォルトのままで「ユーザを追加する」をクリックする。
ユーザのタグのエージで新規ユーザができているのを確認する。
データベース名、ユーザ名、パスエワード、ホスト=localhost、をメモしておく。ついでにデータベースの接頭辞も
例えばwp_hogeblog とか決めておき、メモする。
これでデータベースができたのでphpMyAdminは終了。
WordPressのインストールダウンロード、解答したWordpress を名前を変えて(例;hogeblog)所定の場所にFTPでアップロードする。
ブログのURL(http://example.com/hogehoge/hogeblog/)にアクセスする。
「wp-config.php ファイルが見つかりません。」と行ってくる。当然だ。作った覚えは無い。
「設定ファイルを作成する」をクリックする。
注意書きがでてくる、「始めましょう」をクリックする。
パラメータ入力画面で、データベースの名前等はphpMyAdminで作成したもの(メモしたはず)を入力する.
「送信」をクリックする。
wp-config.phpファイルに書き込む事ができません。
手動で以下のテキストのwp-config.phpを作成しろ。
といってくる。
アクセス権777のwp-config.phpファイルをあらかじめアップロードしてもだめだった。すでに存在するから削除しろと言われる。
というわけで、ローカルにあるwp-config.sample.php をコピーして名前をwp-config.php とする。これをmi のようなエディタで開き、中身をすべて、表示されたテキストに置換する。保存する。linefeed がUNIXになっていること。アップロードする。
「インストール実行」をクリックする。
WordPres のようこその画面になるので 必要な事項を入力する。ブログの名前は後で変更できるが、最初のユーザはadminとして作成しておいた方が良い。
検索エンジンによるサイトのインデックスを許可する。 はどっちでもいい。検索されたくなかったらチェックを外す。
「WordPressをインストールする」をクリックする。
今作成したadmin というユーザ名とパスワードで「ログイン」する。
あとは自由にカスタマイズする。
##################
ローカルでWordPress をダウンロードしてDreamweaverでFTPでアップロードしたわけだ。ファイル数が多すぎ、あっちの大学からのネットのスピードが遅くてアップロードしきれないファイルが出て来たのだ。ファイル数が多いからなにがアップロードできなかったのかのチェックができない。めんどうだから先に進めたが、欠けてるファイルがあると当然のことながらブログを構築できない。最初は、何故出来ないのか悩んだ。
wp-config.phpが間違えているというのが当然のことながら一番疑わしい。
mcrypt がないからだ。
php が取り扱うメモリの割当がすくないからだ。これは割当を増やしたから問題ないはず。
どうしてもわからず、しょうがないからサーバでapahe2のエラーログを読んだ。そしたらあるファイルがないと言っている。そのファイルを探したらやっぱり無い。ほかにもアップロードされていないファイルが有る可能性がある。そこで、最終的には、サーバでWordPressをダウンロードし、所定の場所に名前を変えて置き、ローカルでも同じWordPressをダウンロードし、おなじように名前を変えて所定の場所に置いてDreamweaver でファイルの操作を行った。昨日の夕方はどうしてもわからず、今日の午前中やっと解決した。原因はネットのスピードでファイルをアップロードしきれないことにあるとした。Dreamweaverは警告しているのでFTPのログをちゃんと見れば良いはずだけどね。アップロードするファイルが大きい、多いときはCyberDuckの方がいいかもね。
OSX10.8サーバ その30 mcrypt
Mの更新(Mountain Lion OSX10.8サーバ) その30 mcrypt
phpMyAdmin を起動すると;
mcrypt 拡張がありません。PHP の設定をチェックしてみてください。
と注意メッセージが出る。mcrypt (暗号化処理のパッケージ)がインストールされていないわけだ。このパッケージをインストールするために、前回のMacPortsをインストールしたわけだ。
mcryptを検索する。
/opt/local/bin で
sh-3.2# ./port search crypt
aescrypt @0.7 (security)
A program for encryption/decryption.
….
php53-mcrypt @5.3.23 (php, security)
a PHP interface to the mcrypt library, which offers a wide variety of
algorithms
….
Found 286 ports.
と出てくるのでPHPのバージョンが5.3.15なのでphp53-mcryptをインストールすることにする。
sh-3.2# ./port install php53-mcrypt
—> Computing dependencies for php53-mcrypt
…..
—> Scanning binaries for linking errors: 100.0%
—> No broken files found.
sh-3.2#
とインストールされたようだ。実に簡単だ。
mcrypt.soのインストールされた場所を確認する。
/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so
にある。
PHP に認識させるために /etc/php.ini に加筆する。どこに書いたらいいのかわからないので、とりあえず、一番下の方に[mcrypt]というセクションがあるのでこのセクションの最後に、
extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so
と加筆した。webサーバを再起動する。phpMyAdminにアクセスする。
注意書きがなくなったことを確認した。
OSX10.8サーバ その29 Macports
Mの更新(Mountain Lion OSX10.8サーバ) その29 MacPorts
MacPorts とはMacOSXのアプリケーションパッケージをインストールするのに便利な道具だ。Appleが提供するアプリではなく、open sourceのアプリをインストールするのが楽になる。コンパイルなんかしたくない。
https://distfiles.macports.org/MacPorts/MacPorts-2.1.2.tar.bz2をダウンロードして解凍し、適当な所に置く。どこでもいいが、とりあえず/usr/local につっこんでおいた。
sh-3.2# cd /usr/localmacports-2.1.2 で
sh-3.2# ./configure
checking build system type… x86_64-apple-darwin12.2.0
checking host system type… x86_64-apple-darwin12.2.0
……
config.status: creating src/config.h
sh-3.2# make
===> making all in doc
……
===> making all in tests
make[1]: Nothing to be done for `all’.
sh-3.2# make install
===> making install in doc
……
Congratulations, you have successfully installed the MacPorts system. To get the Portfiles and update the system, add /opt/local/bin to your PATH and run:
sudo port -v selfupdate
Please read “man port”, the MacPorts guide at http://guide.macports.org/ and Wiki at https://trac.macports.org/ for full documentation.
と終了する。PATHを設定しろと最後に行っているので
~/.bash_profile に
PATH=/opt/local/bin:/opt/local/sbin:$PATH
MANPATH=/opt/local/man:$MANPATH
の2行を書き加えておいた。
/opt にすべてインストールされたことになる。
アップデートする。
/opt/local/bin で、
sh-3.2# ./port selfupdate
—> Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.1.3 downloaded.
—> Updating the ports tree
—> MacPorts base is outdated, installing new version 2.1.3
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated
とアプデートされた。
ports のリストの同期を行っておく。
sh-3.2# ./port sync
—> Updating the ports tree
sh-3.2#
MacPortsの基本的なコマンド
$sudo port selfupdate
MacPortsを最新のものにアップデートする。
$sudo port sync
MacPortsで用意されているportsのリストを更新する。
$sudo port install +<v_hoge>
をvariants<v_hoge>付きでインストールする。
例) pTeXのutf8版をインストールする。
$sudo port install pTeX +utf8
$port installed
インストール済みのツール一覧を表示する。
$port installed
インストールされているツールに関する情報を表示する。
例) $port installed pTeX
$port variants
のvariantsの情報を表示する。variantsとは、インストールできるソフトにつけることができるオプションのことである。
例) port variants pTeX
$port outdated
インストールされているportsの中に古いものが無いか調べ、もしある場合にはその古いportsを表示する。
$sudo port upgrade installed
インストールされている中で既に新しいバージョンが出ているportsを、一括でアップグレードする。この際、古いportsはinactiveな状態で残る。
$sudo port uninstall inactive
使われていない(inactiveな)portsを、一括でアンインストールする。
$sudo port deactivate
activeな状態のというportsを、inactiveな状態にする。アンインストールはされず、ディスク上には残る。
$sudo port activate
inactiveな状態のというportsを、activeな状態にする。
OSX10.8サーバ その28 Mailman
Mの更新(Mountain Lion OSX10.8サーバ) その28 Mailman
Mailman で新しいメーリングリストをページから作成すると、エラーとなる。実は出来ているのだ。しょうがないからリモートで入って、/usr/local/mailman で
sh-3.2# bin/withlist -l -r fix_url [新しく作ったメーリスの名前]
fix_url を import 中…
fix_url.fix_url() を実行中…
[新しく作ったメーリスの名前] のリストを読み込中 (ロック完了)
リストを保存中
最終処理中
として、リストを表示させ、それから新しいメーリングリストの設定を行った。
なんでだろ?
[解決] 2013.4.5
/usr/local/mailman/dataで確認すると
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-r—– 1 _mailman _mailman 49152 12 26 15:43 aliases.db
# chmod g+w aliases.db としたあと
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-rw—- 1 _mailman _mailman 49152 12 26 15:43 aliases.db
そんで
sh-3.2# newaliases
を実行した。要するに、aliases と aliases.db のオーナー、グループの設定はただしかったが、aliases.dbに書き込みができない状況だったのだ。ちゃんと-rw-rw—-になっていたと思ったのだが.
Mailman 設定のまとめのページに加筆しておいた。
OSX10.8サーバーその27 SMTP
Mの更新(Mountain Lion OSX10.8サーバ) その27-SMTP
SMTPサーバとしての設定
以前のOSXサーバでは、SMTPサーバとして利用の制限が、例えばip address で行うとかができたと思うが、今度のは設定するところがない。
Server.app のメールで認証のところしかない。自動とはなんだろ?すでにメールサーバとして動いているので設定を現状から変えたくない。
とりあえず、RBL.JPで第三者の中継チェックを行うとno relays accepted.となるのでいいんだろ。
スマホからのCGIアクセス
解剖学と生理学の国試問題を毎週、学生の携帯に送付し、正解と解説のページを作っているのだ。
約1年経過したので学生の反応を見るためアンケートのページを作成したのだ。
URLが長過ぎる
http://example.com/hoge/cgi-bin/anketo/anketo.cgi
なのだが、こんなに長いと学生はスマホから入力しない。
example.com に相当する部分は管理者のサーバではもっと長いのだが、これは短くできない。しかしそれ以下はaliasで短くできる。
そこで
http://example.com/anketo
でもいいようにしたわけだ。
Alias /anketo /Users/hoge/Sites/cgi-bin/anketo/anketo.cgi
の1行を/private/etc/apache2/extra/httpd-userdir.confに書き加えたわけだ。
これでパソコンのブラウザからは問題ないのだが、スマホからだとこのCGIプログラムで別ページを表示するようなときうまくいかない。
パソコンのブラウザだとhttp://example.com/anketo/anketo.cgiにアクセスするようになり問題ない。スマホだと
http://example.com/anketo.cgi にアクセスすることになってしまい、そんなページがないと表示されてしまう。なぜだ?
ともかくもう1行aliasを書き加えてなんとか逃げた。
Alias /anketo.cgi /Users/hoge/Sites/cgi-bin/anketo/anketo.cgi
だ。ま。最初のaliasをこれにすればいいんだけどね。
OSX10.8サーバ その26 CGIのパス
Mの更新(Mountain Lion OSX10.8サーバ) その26ーCGIのパス
#!/usr/local/bin/perlでパスを通す
フリーのCGIプログラムのperlの指定はしばしば #!/usr/local/bin/perl となっている。
このサーバのperlは #!/usr/bin/perl だ。 そこでシンボリックリンクでどっちでもかまわないようにした。
/usr/bin に
-rwxr-xr-x 1 root wheel 62992 Aug 15 15:26 perl
-rwxr-xr-x 1 root wheel 35584 Aug 15 15:33 perl5.10
-rwxr-xr-x 1 root wheel 35888 Aug 15 15:26 perl5.12
があるので /usr/local で sh-3.2# mkdir bin としてbinというdiectory を作り /usr/local/bin で
sh-3.2# ln -s /usr/bin/perl /usr/local/bin
sh-3.2# ln -s /usr/bin/perl5.10 /usr/local/bin
sh-3.2# ln -s /usr/bin/perl5.12 /usr/local/bin
と3つのシンボリックリンクを作成した。
/usr/local/bin に
lrwxr-xr-x 1 root wheel 13 Jan 28 11:08 perl -> /usr/bin/perl
lrwxr-xr-x 1 root wheel 17 Jan 28 11:09 perl5.10 -> /usr/bin/perl5.10
lrwxr-xr-x 1 root wheel 17 Jan 28 11:09 perl5.12 -> /usr/bin/perl5.12
の3つのシンボリックリンクがあることを確認した。
#!/usr/local/bin/perl とCGIプログラムの最初の行にperlのパスを書いても通ることも確認した。