社員ブログ
HOME  社員ブログ

アーカイブ

‘PHP’ カテゴリ

PHP 5.2系 →5.3系へのバージョンアップで気を付けること。

2012年06月21日 16時11分45秒

こんにちは、コブラです。

 

先日、クライアントのPHPをバージョンアップしました。

PHP5.2系はとっくにサポートが切れてますからね・・・ええ・・・。

 

で、ハマった点。

PHP Extensionsの削除漏れがあり、

MySQLで「session拡張ができません。PHPの設定を確認してください。」のエラー。

 

PHP5.2でインストールしてたSESSIONやらMBSTRINGやらを削除し忘れ、

そこにPHP5.3をライブラリを入れないままphpMyAdminを起動したものだからこの騒ぎですよ・・・。

 

PHPで使えてる関数は拡張ライブラリあってこそというわけですね・・・。

 

で、必要そうなライブラリをごそっとインストールして解決しました。

ちなみに、移行に関する情報は「PHP 5.2.x から PHP 5.3.x への移行」で確認しました!

 

 

PHP, 社員:cobra

500エラー オーバーヘッドでもない本当の原因とは!?

2012年03月26日 11時38分26秒

こんにちは、コブラです。

 

先日書いた「500エラー 予期しない状況が発生しました。の対処法。」という記事ですが、

これで解決しませんでした・・・。

オーバーヘッドが0.0KBでも発生する・・・何故だ・・・。

 

と思っていたら、とんでもないところに原因がありました!

 

それがこれ!

 

ループの中で同じファイルを何度もincludeしていたから!

 

以前、includeとrequire_onceの違いなどは書きましたが、

includeするクラスの中にファンクションなどがあると、

何度も定義しようとしてエラーになるのだとか。

でもincludeなので、処理は止まらないと。

なるほど・・・つまり、こういうことです!

 

for ($i = 0; $i < 100; $i++) {
  include "hoge.inc"; // getHogehoge()を何度も定義しようとするから×。ループの外に出す
  getHogehoge();
}

 

-hoge.inc

function getHogehoge() {
  return true;
}

 

原因が分かってスッキリしました!

初歩的なことですが見落としがちかも、皆さんもご注意を!

MySQL, PHP, 社員:cobra

php.iniの設定を.htaccessで変更する方法

2012年03月12日 14時18分03秒

こんにちは、コブラです。

 

今日はタイトルの通り、php.iniの設定を.htaccessで変更する方法です。

php.iniを独自に編集できない場合、設定を変えたいときに困りますよね。

 
php.ini ディレクティブのリスト – PHPマニュアル

 

PHPマニュアルにある通り、

変更できるPHPの設定は「PHP_INI_PERDIR」または「PHP_INI_ALL」です!

 

 

レンタルサーバによるのかも知れませんが、

どうやらサーバは最初にこちらで用意したphp.iniを読み、

次にサーバ側のphp.iniを読むらしい?

つまりこちらで設定した項目が優先されるというわけですね。

 

では、その手順を。

1.php.iniファイルを用意します。

中身はたとえばこんな感じです!

mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.http_input = UTF-8
mbstring.detect_order = auto
mbstring.http_input = auto

 

これをサーバにアップロードします。

 

2.次に.htaccessを用意し、以下を追記します!

suPHP_ConfigPath /usr/home/hoge/hogehoge/

これは、php.iniを置いた階層を記述します。

 

これだけです!

試しにphpinfo()で見てみると、確かにUTF-8になってます!

 

php.iniが変更できないサーバだけど、どうしても変えたい!

そんなときに活用してみてください。

HTML, PHP, 社員:cobra