2015年3月25日水曜日

Ajaxplorer(Pydi)のアップグレードに失敗したはなし

アップグレードしたら、ブラウザで何も表示されなくなった。

原因を調べるために、Pydiのログを…ってどこにあるかわからん!w

なので、普通にApacheのログを見ると、怪しい文章が。

[Sun Feb 22 14:43:10 2015] [error] [client ***.***.***.***] PHP Parse error:  syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in /var/www/html/***/plugins/access.s3/class.s3AccessWrapper.php on line 23

なんだろうと思いぐぐってみると、以下の情報が出てきた。
(参考:http://stackoverflow.com/questions/13960277/error-parse-error-syntax-error-unexpected-t-string-expecting-t-constant-encap

Make sure they are running PHP 5.3 or later. If they are running an earlier version they won't have support for namespaces.

ということで、PHPをアップグレードしてみる。今までは5.2だった。

アップグレードはどうやるんだろうとググると、これまたすぐに情報が出てきた。
(参考:http://blog.ybbo.net/2013/07/09/centos-5-%E3%81%ABphp5-3%E7%B3%BB%E3%82%92yum%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

というわけで、一度アンインストール後に、PHPのバージョンも指定してインストールする。(バージョンを指定しないとデフォルト?の5.1系がインストールされてしまった)

これでApacheを起動後、ブラウザからアクセスすると無事に表示された。

しかもちゃんとアップグレードできてた。まぁ、結果よかった。

2015年3月9日月曜日

シンタックスハイライトをhighlight.jsに乗り換えた

前のやり方のがメンドクサイのと、イマイチいけてなかったので、代わりを探してみた。
すると、軽くてオススメなのが、highlightjsらしい。
機能は少ないみたいだけど、簡単に定義できるので楽そう。
早速試してみる。

準備は簡単。
BloggerだとHTML/JavaScriptの要素を追加し、以下の定義を追加すればよい。
<link rel="stylesheet" href="/path/to/styles/default.css">
<script src="/path/to/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

あとは、記事の中で以下のように囲ってあげればOK。単純
 <pre><code> hogehoge </ pre> </code>

2015年3月1日日曜日

cronでRubyから呼び出しているコマンドが実行できなくなった

cronに登録していたRubyスクリプトがうまく実行されなくなってことがあったので、メモ。

cronに登録したコマンドの実行に失敗した場合、実行ユーザー宛にメールが届く。
(定義ファイル自身に誤りがあれば、/var/log/cronに書かれる。)

メールの内容を見ると、以下のようになっていた。(一部省略)
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60: command not found: pcsensor -c
'pcsensor'というコマンドをRubyから実行しているが、これが見つからないよう。
直接、Rubyスクリプトを実行したときには問題なく実行できるのに。。

PATHが/usr/bin, /bin しかないので、それ以外のパスに格納されたコマンドが実行されないと推測。
Rubyスクリプトの呼び出し方法を以下のように修正。

# result =  `pcsensor -c`
result =  `/usr/local/bin/pcsensor -c`

この後は問題なく上記スクリプトが正しく動作し、cronのエラーも表示されなくなった。

しかし、なぜ急に実行されなくなったか不明。なにかいじったかな。。