CLI起動とcron起動の違い
$ cat _server.php #!/usr/bin/php <?php print_r($_SERVER);
このようなPHPスクリプトで挙動を観察してみた。
まずはコマンドラインから起動。
$ ./_server.php Array ( [HOSTNAME] => atlas.example.com [TERM] => xterm [SHELL] => /bin/bash [HISTSIZE] => 1000 [NLS_LANG] => JAPANESE_JAPAN.AL32UTF8 [SSH_CLIENT] => 10.28.1.30 62948 22 [SSH_TTY] => /dev/pts/2 [USER] => m-hotta [LS_COLORS] => no=00:fi=00:di=01;33:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jpg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35:*.mpg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35: [MAIL] => /var/spool/mail/m-hotta [PATH] => /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/sbin [INPUTRC] => /etc/inputrc [PWD] => /home/m-hotta/lc_view/progs [LANG] => en_US.UTF-8 [SSH_ASKPASS] => /usr/libexec/openssh/gnome-ssh-askpass [SHLVL] => 1 [HOME] => /home/m-hotta [LOGNAME] => m-hotta [CVS_RSH] => ssh [SSH_CONNECTION] => 10.28.1.30 62948 10.27.4.26 22 [LESSOPEN] => |/usr/bin/lesspipe.sh %s [G_BROKEN_FILENAMES] => 1 [_] => ./_server.php [OLDPWD] => /home/m-hotta [ORACLE_HOME] => /usr/lib/oracle/10.2.0.3/client/lib [PHP_SELF] => ./_server.php [SCRIPT_NAME] => ./_server.php [SCRIPT_FILENAME] => ./_server.php [PATH_TRANSLATED] => ./_server.php [DOCUMENT_ROOT] => [REQUEST_TIME] => 1291857301 [argv] => Array ( [0] => ./_server.php ) [argc] => 1 )
次はこのようなcronを仕掛けて、
m-hotta@gtr:~$ crontab -l MAILTO=hotta@example.com HOME=/home/m-hotta LANG=ja_JP.UTF-8 SUDO=/usr/bin/sudo RM=/bin/rm MV=/bin/mv */1 * * * * $HOME/lc_view/progs/_server.php
これで飛んできたメールの中身がこれ。
Array ( [SHELL] => /bin/sh [MAILTO] => hotta@example.com [USER] => m-hotta [RM] => /bin/rm [PATH] => /usr/bin:/bin [SUDO] => /usr/bin/sudo [PWD] => /home/m-hotta [MV] => /bin/mv [LANG] => ja_JP.UTF-8 [SHLVL] => 1 [HOME] => /home/m-hotta [LOGNAME] => m-hotta [_] => /home/m-hotta/lc_view/progs/_server.php [ORACLE_HOME] => /usr/lib/oracle/10.2.0.3/client/lib [PHP_SELF] => /home/m-hotta/lc_view/progs/_server.php [SCRIPT_NAME] => /home/m-hotta/lc_view/progs/_server.php [SCRIPT_FILENAME] => /home/m-hotta/lc_view/progs/_server.php [PATH_TRANSLATED] => /home/m-hotta/lc_view/progs/_server.php [DOCUMENT_ROOT] => [REQUEST_TIME] => 1291857241 [argv] => Array ( [0] => /home/m-hotta/lc_view/progs/_server.php ) [argc] => 1 )
コマンドラインでの実行に比べて、かなり情報が欠落しているのがわかる。
HOSTNAMEやSERVER_NAMEは、必要であればcrontabの中で設定してやる必要がありそう。
独自ドメインからGoogle Groupsに投稿できない
独自ドメイン example.com の MX を Gmail に向けて、すっかり Google 様に 依存した生活になったが、まだ一部問題を抱えていた。このドメインに所属 するアドレス a@example.com から、Google Groups の(たぶん)すべての グループに投稿ができないというもの。やっと解決したのでメモしておく。
a@example.com で Google Apps にログインして Google Groups に 投稿すると、以下のようなバウンスメールが返ってくる。
a@example.com 様
連絡しようとしたグループ(anon-group)が存在しないか、グループに
メッセージを投稿する権限がない可能性があります。
投稿できなかった詳しい理由をいくつか紹介します:* グループ名のスペルや形式が間違っている。
* グループのオーナーによってこのグループが削除された。
* 投稿する権限を取得するためには、グループに参加する
必要がある。
* このグループでは投稿を受け付けていない。このグループやその他の Google グループについてご不明な点がありましたら、
http://groups.google.com/support/?hl=ja_US からヘルプセンターに
アクセスしてください。よろしくお願いいたします。
Google Groups
原因は、全く関係ないテストアドレス b@gmail.com が以前登録してあり、 そこに問題のメールアドレス a@example.com が紐付けられていたせい であった。Google アカウントの設定の中に「別のメールアドレスを追加する」 という機能があり、ここに a@example.com を設定していたのをすっかり失念 していた。この場合、Google (Groups) 的には b@gmail.com から投稿された ものと見なされるようだ。b@gmail.com が該当のグループに登録されていない と、上記のような現象になる。
これを解決するために、別アカウント c@gmail.com で Google Groups に グループ x@googlegroups.com を登録して挙動を観察した。当該グループ のページの「メンバー」→「メンバー リストとメンバーの権限を編集」を選ぶと メンバーリストが表示されるが、そのメールアドレスは一見正しい。問題の メールアドレスの「編集」をクリックするとその中に表示されるアドレスが一覧に 表示されるアドレスとは異なるため、この原因が判明した。
おまけ
関係ないけど、文中の</pp>(半角)は不要です(直し方がわかりません(><))
リポジトリサイトの利用
m-hotta@celsior:~$ sudo yum -y install yum-priorities m-hotta@celsior:~$ wget http://repos.net-newbie.com/newbie.repo m-hotta@celsior:~$ sudo mv newbie.repo /etc/yum.repos.d/ m-hotta@celsior:~$ sudo rpm --import http://repos.net-newbie.com/RPM-GPG-KEY-newbie (enabled=0 にしてあるので、明示的に --enablerepo=newbie をつけないと有効にならない。) m-hotta@celsior:~$ sudo yum --enablerepo=newbie update (元々sambaが入っていなかった場合は以下のようにする) m-hotta@celsior:~$ sudo yum --enablerepo=newbie install samba-client samba-doc samba-swat
サーバー側の動作確認
m-hotta@gaia:~$ ls -l /var/www/repos/ 合計 12 lrwxrwxrwx 1 m-hotta wheel 3 1月 20 15:23 5 -> 5.4 drwxr-xr-x 4 m-hotta wheel 4096 1月 20 15:25 5.4 -rw-r--r-- 1 m-hotta wheel 1690 1月 20 15:13 RPM-GPG-KEY-newbie -rw-r--r-- 1 m-hotta wheel 363 1月 20 15:36 newbie.repo m-hotta@gaia:~$ w3m http://repos.net-newbie.com Index of / [ICO] Name Last modified Size Description ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [DIR] 5/4/ 20-Jan-2010 15:25 - [ ] RPM-GPG-KEY-newbie 20-Jan-2010 15:13 1.7K [ ] newbie.repo 20-Jan-2010 15:36 363 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Apache/2.2.3 (CentOS) Server at repos.net-newbie.com Port 80
リポジトリ作成&パッケージの登録
m-hotta@gaia:$ mkdir -p /var/www/repos/5.4/{,S}RPMS m-hotta@gaia:/var/www/repos$ ln -s 5.4 5 m-hotta@gaia:~$ cp rpm/RPMS/i386/samba*3.4.5* /var/www/repos/5/RPMS/ m-hotta@gaia:~$ cp rpm/SRPMS/samba-3.4.5-1.src.rpm /var/www/repos/5/SRPMS/ m-hotta@gaia:~$ createrepo /var/www/repos/5/RPMS/ m-hotta@gaia:~$ createrepo /var/www/repos/5/SRPMS/ m-hotta@gaia:~$ cp .gnupg/pubkey.asc /var/www/repos/RPM-GPG-KEY-newbie m-hotta@gaia:~$ cat > /var/www/repos/newbie.repo <
リポジトリ公開用サイトの作成
m-hotta@gaia:~$ sudo mkdir /var/www/repos m-hotta@gaia:~$ sudo chown m-hotta /var/www/repos/ m-hotta@gaia:~$ grep -Ew -C 1 Include /etc/httpd/conf/httpd.conf # #Include conf.d/*.conf
- -
(repos.net-newbie.com は、別途 DNS で正引きの設定をしておく)