2014/07/23 coreserverのアプリケーションがバージョンアップされた。内容は以下の通り

作業内容

  • ウェブサーバーのバージョンアップ(Apache2.2系へ変更)
  • 標準のPHPのバージョンアップ(PHP5.2系からPHP5.3系へ変更)
  • FastCGI版PHP5.3、5.4、5.5の提供
  • CGI版PHP5.2、5.3、5.4、5.5の最新版へのアップデート
  • セーフモードの解除
  • お客様サイト内のユーザー所有者「apache」のファイルをユーザー様へ変更

既存のPHPスクリプトで動かないものが多数出た。

スクリプトを変更して対応する時間が無いため、以下の作業対応

PHP5.2で動くようにする

何もしないとFastCGI版5.3系で動くためエラーがでるスクリプト続出

CGI版PHP5.2として動かす

動かしたいディレクトリに .htaccess ファイルを作成し以下を記述

AddHandler application/x-httpd-php52cgi .php

エラーを表示する

CGI版PHP5.2のエラー表示をどうするのかcoreserverのヘルプに書かれていない。 サポートに質問して以下の解答を得た。

CGI版PHP5.2を使用している場合の PHP設定の方法につきましては、以下の場所で行う仕様となっております。 

/public_html/.fast-cgi-bin/php.ini 

上記 php.ini ファイルに 

display_errors = On 
error_reporting = E_ALL & ~E_NOTICE 

を記述していただければと存じます。 

ただし、誠に恐れ入りますが、上記 php.ini は特殊な設定ファイルであり、CGI版PHP で動かしている全てのPHPスクリプトに影響が及びますので、ご注意いただければと存じます。 

レンタルサーバ内すべてのスクリプトがエラー表示されてしまう。まあ、しょうがないかな。

Apache2.2の影響

apacheのバージョンアップも影響があった。rewrite の書き方が変わっているためフレームワークの「codeigniter」を使用しているPHPスクリプトが動かなかった。

codeigniterのapache2.2への対応

RewriteRuleのルールの書き方を変更

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]

index.php のあとに ? マークを挿入

これはバージョンアップ案内メールの「重要な仕様変更について」に書かれていた。

雑感

その他PEARライブラリなども全部動かなくなった。

PHPは下位互換をあまり大事にしていないためしょうがない。 この下位互換の無いところが今PHPの人気が落ちている大きな原因だと思う。

レンタルサーバ

Last-modified: 2014-08-31 (日) 11:25:18 (1562d)
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS