「Mountain Lion Server」カテゴリーアーカイブ

贅沢なおっさんの続き

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時間弱かかって、すべて解決した。系統的に調べて原因を追及していないから、参考にならないだろうな。

なんせ、こんな贅沢な使い方をしているユーザなんてめったにいないから、ネットでの情報が得られない。

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のパスを書いても通ることも確認した。

OSX10.8サーバ その25 FTPの設定

Mの更新(Mountain Lion OSX10.8サーバ)ーその25 FTPの設定

まだFTPの設定がよくわかっていない

Server.app からFTPのペインを出す。
共有のプルダウンからカスタムを選び、FTPのルートディレクトリを選択する。Macの場合、共有ポイントと呼ぶ。
/Users
にする。ユーザがFTPを使うのはWebページのdirectoryつまり/Users/[ユーザ名]/Sites/ だからだ。CarbonCopyClonerでHDをまるごとバックアップしているが、くれぐれもバックアップのHDの方を選択しないように。
アクセス権限は、ほかの全員は「読みだしのみ」にする。
クライアントがFTPでアクセスしてくると/Users以下のdirectoryに全部アクセスできちゃう。
ユーザ毎にユーザのhome directoryをroot directoryと指定する方法がまだわからない。
クライアントはFTPソフトでアクセスするとき、root directoryとして/[ユーザ名]/ と指定しするように伝える。上のdirectoryにいけて、他の人のhome directoryがみえちゃうけど。ま、他の人のhome directory にあるdirectoryで他人に見えるのはSitesだけでSitesにあるファイルは基本的にweb公開ページだから、とりあえずはいいだろ。
とりあえず、現在動いているWebページのメインテナンスが必要だからこうしておく。

FTP root directoryを新たにつくり、その中に各ユーザのdirectoryを作り、その中に各ユーザのsitesのエイリアスを置けばばいいのかも。そうすれば、FTPクライアントソフトでのroot directoryの指定を /[ユーザ名]/ あるいは /[ユーザ名]/Sites/ とするように指示すればいい。FTPクライアントソフトで上のdirectoryでアクセスしても他のユーザのSitesしかみえないようになる。

ファイル共有の項目はFTPとは別でAFPとかSMB、WebDAVでのファイル共有のことらしい。

もうちょっと、勉強する必要があるな。

OSX10.8サーバ その24 メールの自動転送

Mの更新(Mountain Lion OSX10.8サーバ)ーその24 メールの自動転送

メールの自動転送

これまで、何回もやったのに、覚えていない。メールの自動転送は;

転送設定したいユーザのホームディレクトリに「.forward」というテキストファイルを作成し、転送先のメールアドレスを書く。例えは、ユーザ「hoge」宛てのメールを「hogehoge@example.com」に転送したい場合は、ファイルに「hogehoge@example.com」と書く。転送先が複数ある場合は、カンマで区切るか、改行する。
これだと、サーバに残らないので、残すためにはバックスラッシュのあとにアカウント名を書く。

hoge
hogehoge@example.com

.forwardのownerはrootのままでいい。

Server.app のユーザからメールオプションを編集 メールの処理 転送 を選択して自動転送するとローカルに残らない。

sudo serveradmin command mail:command = getAutoForward
を実行するとユーザの GUID と自動転送されているアドレスのリストを返すらしい。

$ sudo serveradmin command mail:command = getAutoForward
mail:1080C8CF-5432-4302-B3B7-0EEFB79106AD:fwdAddress = “my-userID-1@example.net” mail:2DD1FB33-340F-408F-8C2A-D77B0A2431C7:fwdAddress = “my-userID-2@example.net”

というのがhttp://support.apple.com/kb/HT5032?viewlocale=ja_JPに書いてあった。
しかし、実行すると一度Server.app で設定したのが返ってくる。自動転送をキャンセルしてもだ。更新されてない。なんだこりゃ?
.forward で設定した転送設定は反映されていない。

MikeのAvatars

ブログ投稿者のアイコン–avatar– の設定方法

1) MacOSX10.8 MountainLion Server ではデフォルトのページが

/Library/Server/Web/Data/Sites/Default 内のファイルだから、このdirectoryにavatars というdirectoryを作り、この中に顔写真なり、好きなアイコン(avatar)をいれておく。とりあえずパーミッションは777にしておいた。

2) 該当ブログのプラグインにAvatar Plugin を入れる。バージョンは11.1 になって有料になっている。昔はただでバージョン8.1が古いサーバにあったので、それを使うことにする。

3) Avatars というプラグインがでてくるので有効化する。

4) ユーザにAvatarsという項目ができるからAvatars in posts: 欄に/avatars と入力し、各ユーザの Local の欄に /avatars/[アイコン名] を入力し、保存するをクリックする。Avatar の欄に正しく表示されたらOK。

avatars-1

 

5) アイコン(avatar)を挿入したいところに

<?php echo get_avatar($post->post_author, $size = ’60’); ?>

とかを挿入すればいい。

OSX10.8サーバ その23 Blog(WordPress)の移転

Mの更新(Mountain Lion OSX10.8サーバ)ーその23 Blog(WordPress)の移転

Blogの移転

以下はサーバ上で実施している部分とリモートで実施している部分が混ざっている。すべてリモートから実施できるが、その手順ははぶいてある。

ホーム


http://wpdocs.sourceforge.j/WordPress_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
にしたがう。

これまでのブログを丸ごとバックアップする。
これまでのブログからエクスポートを実行してデータベースの記録をファイルとして保存する。

/etc/php.ini を書き変えてより大きなファイルを取り扱えるようにしておく。

/etc/php.ini の
465行目 memory_limit 128M (これはこのまま)
740行目 post_max_size 8M → 128M
891行目 upload_max__filesiza 2M → 128M
に書き変えて置く必要がある。

WordPress パッケージをダウンロードして、解凍。

wordpressというフォルダになる。
サーバー上に、WordPress 用のデータベースと、そのデータベースへの全アクセス権・編集権を持つ MySQL ユーザを作成。
wp-config-sample.php ファイルの名前を wp-config.php に変更。
テキストエディタで wp-config.php を開き、wp-config.php ファイルの編集記事の説明に従いデータベース情報と秘密鍵の値を記入。

以下のxxxxxxxの部分をあらかじめ決めておく・メモして置く必要がある。

/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘xxxxxxx‘);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘xxxxxxx‘);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, xxxxxxxxxx‘);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘localhost’);    (デフォルトのまま)
/** データベースのテーブルを作成する際のデータベースのキャラクターセット */
define(‘DB_CHARSET’, ‘utf8’);    (デフォルトのまま)
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define(‘DB_COLLATE’,xxxxxxxx ”);
define(‘AUTH_KEY’, ‘xxxxxxxx`’);
define(‘SECURE_AUTH_KEY’, ‘xxxxxxxx‘);
define(‘LOGGED_IN_KEY’, ‘xxxxxxxx‘);
define(‘NONCE_KEY’, ‘xxxxxxxx‘);
define(‘AUTH_SALT’, ‘xxxxxxxx‘);
define(‘SECURE_AUTH_SALT’, ‘xxxxxxxx‘);
define(‘LOGGED_IN_SALT’, xxxxxxxx‘);
define(‘NONCE_SALT’, xxxxxxxx‘);
* WordPress データベーステーブルの接頭辞
$table_prefix = ‘wp_xxxx_’;
* ローカル言語 – このパッケージでは初期値として ‘ja’ (日本語 UTF-8) が設定されています。
define(‘WPLANG’, ‘ja’);    (デフォルトのまま)
WordPress フォルダをblogに変更し、ユーザのsites 内に設置。
http://example.com/~[ユーザ名]/blog/wp-admin/install.php
にアクセス。
タイトルを記入
ユーザ名はadminそのままで作成しておく。
パスワードを決めて入力する
メールアドレスhoge@example.com等入力する。同じメールアドレスをほかのユーザにつかうことはできない。

これで作成する。
データベースがすでにあるといわれたら
phpmyadmin
からデータベースのテーブルをすべて削除して再度実行する。

作成したblogにadminでlog in し、必要なユーザを追加する。

wordpress-importer というプラグインをダウンロードし/wp-content/plugins 内に置き、owner 該当ユーザに変更する。
/wp-contentにuploadsというdirectoryを作りownerを該当ユーザに変更する。モードを777とする。

blog にアクセスし管理者としてログインする。
ツールにインポートというメニューがあるから開く
WordPress を選択し、昔のblog でエクスポートしたファイルを選択し実行する。
インポートするとき、投稿者をそれぞれ区別して設定できなかった。すべてadminもしくは設定したユーザのどれかしか選択できなかった。したがって昔のブログの投稿者の区別がなくなり移転したブログでは単一の投稿者になってしまった。コメントは区別されているようだ。

画像はインポートされないので、昔のblog の/wp-contentのuploadsと入れ替える。

テーマとかプラグインをそれぞれ昔のものをコピーペーストする。昔のプラグインは多分バージョンが上がっているのでバージョンを上げること。

 

OSX10.8サーバ その22 とりあえず最低の機能を

Mの更新(Mountain Lion OSX10.8サーバ)ーその22 とりあえず最低の機能を動かした

夏にMを新しいサーバ機に移行することを始めたが、時間切れになってしまった。

12月25日から有給休暇をとって更新を再開した。

m利用者が現時点で使っている最低の機能は、メーリングリストと2つのブログ、医学類の大型プリント予約システム、ファイル転送のための共有ディスク、管理者を含めた少数ユーザのためのメールサーバである。

1) mailman について完成した。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406 にある。

2 2つあるBlog の移行。なんとかできたが、インポートしたら、投稿者がすべて同一になってしまった。

このとき、移行するファイルが大きいと容量制限のためできないと言ってくる。これを防ぐためには、

/etc/php.ini の
465行目 memory_limit 128M (これはこのまま)
740行目 post_max_size 8M → 128M
891行目 upload_max__filesiza 2M → 128M
に書き変えて置く必要がある。memory limit はもっと大きくした方がいいのかもしれない。

3) 大型プリンタの予約とファイルのアップ/ダウンするcgi は動かすことができた。後者の方は教えたリンクが異なっちゃったかもしれないがいいことにする。前者は学類学生用だから教えたリンクを変えるわけにはいかないのでシンボリックリンクを作成した。

4) どこからでもファイルをアップロードしダウンロードできる機能(パスワードで保護された共有ディスク)のcgi は問題なく移転できたと思う。ただし利用者にURLをなんて教えたかわすれたのでシンボリックリンクは未完成。

5) メールサーバ。利用者と思われる全員に「使っている?」と連絡したら10名以下の利用者から返事があった。アカウントを作成した。アカウントの作成は、システム機能からユーザを加え、Server.appで個々のユーザが使える機能を設定するという方法にした。ユーザのdirectoryにはSitesというdirectoryが自動的にできるわけではない。

ユーザのパスワードはhttps://example.com/changepassword/で変更できるはず。学内からテストしたら問題なかったが、自宅からはこのページにアクセスできない。なんでだ?

6) ここまでだ。トップのページにあるリンクを書き換えないといけない。利用者のいないリンク先はこの際整理することにする。ユーザ制限をあらたに作り直さないといけないかもしれない。

ま、こんなところで、本年は終了です。アクティブでないのは動かさないから年が明けてもいい

 

 

CGI Internal Server Error. Error 500 の原因

CGI を動かそうと思ったが動かない原因は

1)CGI の動作が許可されていない directory にある。

2).cgi 文書の先頭行に書く perl の場所の指定が間違えている。

#!/usr/local/bin/perl  #!/usr/bin/perl のどちらかの場合が多いが、もちろんサーバによって異なる。macOSX10.8サーバでは後者だ。

3).cgi 文書の改行コードがUNIX になっていない。ネットで拾ってきたサンプルcgi はWinで作っているので改行コードがCR+LF になっていることが多い。Mac は CR だけ、UNIX はLF だけなのだ。エディタで変換する。Mac では mi が便利だ。

4)アクセス権が正しくない。FTPソフトで変更できるから755 にする。すべてのユーザが実行できるとしないと動かない。

5)CGI 文書の文法等が誤り。

#!/usr/bin/perl
print “Content-Type: text/html¥n¥n”;
print “Your_IP=$ENV{‘REMOTE_ADDR’}¥n”;

これはサンプルとして、アクセス元のip address を提示するスクリプト。これをaccess.cgi とか拡張子を.cgi にして好きな名前でアップロードする。

会議室の予約

会議室をリモートで、予約状況が見える、予約できる というページを作れということになった。まだ関係部署との調節が済んでいないので、そのようなページを作るかどうかも決定していない。この辺が面倒なところだ。サービス自体はなんとかできた。

web会議室予約Klee というのを購入して改変した。この作者の応答が良かった。問題はMacOSX10.8のapache2が指定しているDocumentRoot との関係が簡単ではないことだった。そんで、この作者から、cgi が動くサーバ環境パラメータを表示するcgiソフトをもらった。結構便利だ。ここに公開することは作者の了解を得ていないのでできないけど。実行するとさまざまなパラメータを出力してくれる。

Apache/2.x.xx(Unix) PHP/5.3.15 with Suhosin-Patch mod_wsgi/3.x Python/2.x.x mod_fastcgi/2.x.x mod_ssl/2.x.xOpenSSL/0.x.x DAV/2 Server at example.com Port 80

SERVER_SOFTWARE  : Apache/2.x.xx (Unix) PHP/5.x.x with Suhosin-Patch mod_wsgi/3.x Python/2.x.x mod_fastcgi/2.x.x mod_ssl/2.2.22 OpenSSL/0.x.x DAV/2

とかだ。cgi可能な directoryに使えるようにセキュリティをしっかりして置いておくとかにしておくと新らしい設定ファイルをつくるときに便利だ。

MacOSX10,8サーバはあっというまに8.2 にバーションがあがった。まだβ版のようなものを販売したんだな。くそ。アップデートはおそろしいんだよね。何が変わったのかわからないから。変えた設定がもどちゃったりするからな。

OSX10.8サーバ その21 apache2スタート・停止

Mの更新(Mountain Lion OSX10.8サーバ) その21 apache2スタート・停止

Server.app からWebサービスの停止・開始スイッチで切り替えればいいけど;

apache のコマンド
再起動: $ /usr/sbin/apachectl restart
停止: $  /usr/sbin/apachectl stop
起動: $  /usr/sbin/apachectl start

Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
[-C “directive”] [-c “directive”]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]
Options:
-D name : define a name for use in directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C “directive” : process directive before reading config files
-c “directive” : process directive after reading config files
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-S : a synonym for -t -D DUMP_VHOSTS
-t -D DUMP_MODULES : show all loaded modules
-M : a synonym for -t -D DUMP_MODULES
-t : run syntax check for config files
-T : start without DocumentRoot(s) check

OSX10.8サーバ その20 はまっていること

Mの更新(Mountain Lion OSX10.8サーバ) その20 はまっていること

はまっていること。

1)Mailman のデータの移行
現在のサーバの
/var/mailman/lists/
/var/mailman/archives/
の2つのdirectories をコピーして
新規サーバの
/usr/loal/mailman/lists/
/user/local/mailman/archives/
とする。
owner:group は
root:_mailman
とした。
すべてのメーリングリストに設定を反映させるため

$ cd //usr/local/mailman/bin

$ ./list_lists -b | xargs -n 1 ./withlist -l -r fix_url

としたがだめ。

すべてのメーリングリストのアーカイブを再構築
$ ./list_lists -b | xargs -n 1 -i ./arch –wipe {}
/v/usr/local/mailman/archives/private/
{}.mbox/{}.mbox
とするらしいが実行していない。

多分移転先の仮のサーバのドメインがと一致していないからだろ。これを変更するより、サーバを止めて移転したほうがよさそうなので保留とした。メーリングリストが動いているので止めないと完全な移行ができない。

2)CGI がうごかない。→う動いた。シンボリックリンクではだめだからだ。.conf にエイリアスを書くことで解決。

★http://example.com/hoge/cgi-bin/test.cgi だと Forbiddenになる。 ~をつけるとアクセスには問題ない。
これは/Library/Server/Web/Data/Sites/Default 内にエイリアスを置くのではなく、
/private/etc/apache2/extra/httpd-userdir.conf にユーザ毎に
Alias /[ユーザ名] Users/[ユーザ名]/Sites/ の行を書き加えることで解決。
しかし、
★http://example.com/~hoge/cgi-bin/test.cgi でもInternal Server Error、 Premature end of script headers. となってしまう。
これは改行がちゃんとできてないからだというのが判明。win で作ったファイルだからだ。
.cgi の最初の行に
#!usr/bin/perl     を#!usr/bin/oerl —  と半角スペース -  を2ヶ加筆するとうごく。

この方法より、ファイルをmi をつかってラインフィードをUnix に変更して保存するのがいい。

OSX10.8サーバ その19 ユーザの追加

Mの更新(Mountain Lion OSX10.8サーバ) その19 ユーザの追加

サーバ.app で追加したユーザはワークグループマネージャで認識されない。逆もそうだ。サーバ.appで追加したユーザをワークグループマネージャで強引に作成しようとすると、もうそのユーザ名は使われているからだめだといってくる。

ーバ.appで追加したユーザのdirectoryは自動的につくられるわけではない。以前はワークグループマネージャで追加すると自動的にできていたけど。

サーバ.appで追加したユーザのdirectoryに自動的にSitesができるが、何かの操作をする必要があるようだ。なんかをやったため自動的にできている。

ようするに、あとからダウンロードして追加したワークグループマネージャとサーバ.appは連携がとれていないのだ。どうしたもんかな。

OS X Server: Workgroup Manager not included.によれば;

Workgroup Manager is not included with OS X Server.
A legacy version of Workgroup Manager is available from Apple Support Downloads for use on Mountain Lion.

とあるから、使えることは使える。10.8用のも用意されている、がサーバ,appと連携してないと混乱するだけだ。