現行バージョン(PHP 5.1.4 / perl 5.8.8)で正常に動作しているのですが新バージョン(PHP 5.3.28 / perl 5.18.2)を適用すると
エラー。指定された場所 /usr/local/bin/convert に画像変換ソフトがありません
となり画像が投稿できません。
どのように対応すればよいのでしょうか?
ジオシティーズのCGI環境のバージョンアップで12月18日以降は新バージョンオンリーになります。
> ジオシティーズのCGI環境のバージョンアップで12月18日以降は新バージョンオンリーになります。
報告ありがとうございます。
このスクリプトはPHPでなくPerlですが、Perlのバージョンに依存した問題ではありません。
おそらく、そのYahooの用意した新CGI環境サーバで画像変換用のLinuxの追加ライブラリImagemagick(この名前はライブラリ群の総称で、中には複数の画像変換コマンドがあり、その中のconvertという名前のコマンドを使って画像をリサイズしています)が存在しない、あるいは、パスが従来から変更されているために動かなくなったと思われます。
新CGIサーバでImagemagickのパスが従来と違う場合、CGI中でパスの設定を書き換えれば解決します。まあただ、慣習的にImagemagickのパスは上記の場所なので、パスが違うという可能性は少ないかもしれません。
新CGIサーバでImagemagickのライブラリがインストールされてない場合、インストールはCGIサーバ管理者にしかできません。利用者側では不可能です。従来あったことを説明して、Yahoo側にインストールしてもらうことになると思います。ちょっとYahooに相談してみてください。
明日にでも問い合わせしてみます。
何か進展ありましたら書込みさせていただきます。
yahooから返信ありました。(一部抜粋)
「Imagemagick」について弊社担当部署で確認したところ、
さまざまな事情により、新バージョンでは「Imagemagick」を
導入しておりませんでした。
しかしながら、お客様からのお問い合わせについて、担当部署で
あらためて協議し、「Imagemagick」を暫定的ではございますが
新バージョンのCGIサーバーでも導入することとなりました。
ただし、あくまでも暫定的な対応であるため、お客様のCGIスクリプトの動作保証をするものではありません。
何卒ご理解くださいますようお願いいたします。
また、導入に際して、恐れ入りますが「convert」コマンドのパスが
従来の「/usr/local/bin/convert」ではなく、「/usr/bin/convert」に変更されております。
大変お手数ですが、CGI中のパスの設定について、
書き換えのご対応を行ってくださいますようお願い申し上げます。
と返信がありました。
imgboard.cgiの/usr/local/bin/convertを/usr/bin/convertに(3箇所)置き換えて試したのですが
下記のメッセージが出て上手くいきませんでした。
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request POST /copen0086/cgi-bin2/imgboard.cgi.
Reason: Error reading from remote server
/usr/bin/convertを/usr/local/bin/convertに戻して元のCGI環境に戻すと動作しました。
新しい環境には対応できないのでしょうか。
Yahooがconvert置いてくれたんですね。よかった。
これに限らずMovabletypeの画像変換とかいろんなものがconvertを
使うので、いずれ解放されるだろうとは思っていましたか。
早めに解決できてよかったです。
> imgboard.cgiの/usr/local/bin/convertを/usr/bin/convertに(3箇所)置き換えて試したのですが
> 下記のメッセージが出て上手くいきませんでした。
>
> The proxy server received an invalid response from an upstream server.
> The proxy server could not handle the request POST /copen0086/cgi-bin2/imgboard.cgi.
>
> Reason: Error reading from remote server
>
> /usr/bin/convertを/usr/local/bin/convertに戻して元のCGI環境に戻すと動作しました。
> 新しい環境には対応できないのでしょうか。
これは、リバース?プロキシのエラーですね。
あなたのブラウザから、先方のサーバの間のどこかに負荷削減のための、プロキシがあって、そこがある程度以上の連続接続時間、あるいは送信容量制限でHTTPリクエストに制限がかかっていると思われます。
小さな画像から大きな画像にしていって試してみてください。
参考
http://q.hatena.ne.jp/1166424761
Software error:
Illegal division by zero at ./init.cgi line 328.
For help, please send mail to the webmaster (webmaster@big.or.jp), giving this error message and the time and date of the error.