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でのファイル共有のことらしい。
もうちょっと、勉強する必要があるな。
「Mountain Lion Server」カテゴリーアーカイブ
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。
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ソフトをもらった。結構便利だ。ここに公開することは作者の了解を得ていないのでできないけど。実行するとさまざまなパラメータを出力してくれる。
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と連携してないと混乱するだけだ。