メイン

PHP アーカイブ

2005年11月09日

バージョンアップ

pukiwiki1.4.6へのバージョンアップついでにPHPも4.4.1へバージョンアップ

こう頻繁にバージョンアップがあるとインターネットサイトではPHPは使えない!・・・

2006年04月04日

PEARの読みかた

いままでずーとピアーとよんでいたけれど、洋梨と言う単語なので正しくはペアーと読むそうな

2007年05月28日

WebベースのDB管理ツール

OracleもWebUIの管理ツールに移行している昨今オープンソースDBも負けず劣らずのWebUI管理ツールがある。

PostgreSQLにはphpPgAdmin

MySQLにはphpMyAdmin

PHP5にしてからあまりまじめに動作検証していなかったのでここらでまじめに検証してみる。

インストールは解凍するだけ

 

2007年06月12日

PHPで画面が真っ白になる時

PHPでブラウザアクセスしてみてうんともすんともいわずに画面が真っ白になるときの対策

実はこれ裏でエラーが出てて、Apacheのエラーログには出力されている。 本番運用にはエラーメッセージは画面には出さないべきだろうが開発中はいちいちログを見るのがめんどくさいので画面に出力するように変更しよう。

php.ini (場所はOSによって異なるのでphpinfo()で確認しよう)のdisplay_errors = OnにしてApacheを再起動する。

本番運用時に元に戻しておくこと!

2007年06月14日

日付妥当性チェック

PHPは標準関数にこういった使用頻度の高いものが用意されていて便利。

たった一行でいい

        if (!checkdate($month,$day,$year)) {
           return FALSE;
        }

こんな感じ!

2007年09月12日

PHPで画面が真っ白になる時はエラーを疑え!

PHPで画面にまったく何も表示されずソースを見てもほとんど何も出力されていない時がある。

実はこれ複数原因があるが、以下見ていこう。

まずは出力の文字コードが違う場合IE6だと画面が真っ白になる。この場合はソースの表示をさせると本来出力される内容が出てくるのでその場合はエンコーディングの自動選択を選ぶ(もしくはわかっていればそのエンコードを指定する)

次にソースを見ても手がかりとなるような出力がない場合だが、コレは単純でphp.iniでエラーがApacheのエラーログに出力されるようになっているだけだ。エラー情報は開発中は画面に出たほうがうれしいのだが、運用時に出してしまうとPHPのバージョンがわかってしまったりして思わぬ攻撃の手がかりを与えることになりかねない。ほとんどのディストリビューションのデフォルトではPHPのエラーはApacheのエラーログに出力されるようになっている。

もし出力するようにしたければphp.iniの以下の場所を変えて、Apacheを再起動すればよい。

display_errors = Off←On

RedHat系のディストリビューション(Fedora,CentOS)であればエラーログの場所は下記にあるはず。

/var/log/httpd/error.log

VineLinuxではApacheのバージョンが1か2によるが

/var/log/apache/error.log
/var/log/apache2/error.log

開発サーバーであれば画面に表示するように変更してもいいだろう(というか変更すべき!)

2008年10月09日

CentOSのPHPにはマルチバイト対応入ってませんのであとから入れましょう

実はサーバ移行以来Pukiwikiのshowrssプラグインが文字化けしていた。

文字コードがUTF-8になったのが原因かなと思って、 内部エンコード調べようとしたらmb_internal_encodingの関数がないとエラーがでていた (画面には出力されないので/var/log/httpd/error_logに出る)

というわけでマルチバイト関数をyumでインストールしなければならないけどパッケージ名はなんだっけとネットで検索したところ php-mbstringらしい。というわけで早速yum

# yum install php-mbstring

httpd再起動をしないと反映されない。

# service httpd restart

無事showrssの文字化けがなくなった。

CentOS(FedoraもRedHatEnterpriseも)のPHPパッケージはVineなどと比べると若干日本語対応においてつまづきがちであるので注意したいところ。

2010年01月06日

PHP セッションデータの保存先

phpのセッションデータはデフォルトではファイルで保存されている。

保存先はphpinfoで表示される「session.save_path」になる。

CentOSだと/var/lib/php/session

CakePHP+PHP4のときにセッションが持続できない問題が発生しているための調査をしている最中。 ノーマルPHPだとセッション維持できるのだが・・・

2010年01月16日

CentOS4.8でPHP5系を使う

CentOS4系ではPHP4.3.x系

いまどき
PHP4はないでしょうに、デフォルトのままだといくらアップデートしても5.xにはならない
(勝手になっても困るのだが)

というわけで通常のリポジトリにcentosplusを加えてやることで実現可能

# vi /etc/yum.repos.d/CentOS-Base.repo

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1

# yum update php

インストール環境にもよるが、恐ろしいほどの依存パッケージがあるので一気にUPDATE!

続きを読む "CentOS4.8でPHP5系を使う" »

2010年01月17日

CentOS4.8 PHP5にAPCを入れる

centosplusのリポジトリを加えたら(方法は前のエントリー参照)
こんなものまで入っていたのかと新しい発見。

ちょっと前は自力コンパイルして導入したのだが、
PHPアクセラレーターのAPCもyumでインストール可能

# yum search apc
# yum instal l apc

アクセラレーター入れたことで不具合が出る可能性も過去にあったので
既存環境に導入するときは入念なチェックが必要だろう。

About PHP

ブログ「技術メモ」のカテゴリ「PHP」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはOSです。

次のカテゴリはSEOです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。