PHP・MySQL

PEAR::DBからPEAR::MDB2に移行する際のポイント

quoteSmartが削除されていることはいろいろなサイトで紹介されているが、

autoCommit()メソッドも削除されているので注意。
トランザクションを利用するときは「begenTransaction()」を利用する。
(要use_transactionsオプション)

PEARの使えないレンタルサーバーにPEARをインストルしたい。

調べてみると、多くのサイトで、http://go-pear.org/からgo-pear.phpをダウンロードして使うように書いてあるが、実際にアクセスしてみるとドメインが売りに出ているようで見つからない。

さらに探していると、以下のURLで手にいれることが分かった。

http://pear.php.net/go-pear

このURLで表示されたものをgo-pear.phpの名前で保存する。
その際、漢字コードをUTF8、改行コードをLFにすること。

適当なフォルダを作成し、(例:install)FTPでこのファイルをアップ。
インストール用のフォルダを作成し、(例:go_pear)パーミッションを777にする。

ブラウザでアクセス
http://www.hoge.co.jp/install/go-pear.php

PEARのLogを使ってログを取る方法(その1)

PHPでプログラムを書いたり運用している時、エラー表示は便利なものだが、デバッグのたびにエラー表示を書いたりコメントアウトするのは煩雑で何よりミスの原因にもなる。
そこでお薦めするのが、PEARパッケージのLogを使う方法。

まずは以下から入手
http://pear.php.net/package/Log/download

ログの出力先として、ブラウザ、ファイル、データベースと選べるが、ここではデータベースへの方法を紹介。

テーブルの作成

CREATE TABLE dg_log_table (
id INT NOT NULL,
logtime TIMESTAMP NOT NULL,
ident CHAR(16) NOT NULL,
priority INT NOT NULL,
message VARCHAR(200),
);

idを主キーとする

ニュースティッカーを作る(lastRSS編)

任意のURLで公開されているRSSを、サイトに表示させる。
もちろん、自分のサイトで発信しているRSSを表示させることも可能。

RSSの取得にはlastRSSを使うのが簡単。
http://lastrss.oslab.net/

設置は簡単。キャッシュ用のディレクトリを作成することくらい。

次に、取得したデータを表示させるPHPを作成。

lastRSS.phpを読み込み
include ‘lastRSS.php’;

設定(キャッシュ等)
$rss = new lastRSS;
$rss->cache_dir = ‘./cache’;
$rss->cache_time = 3600;

$rs = $rss->get($url);
↑$urlに取得したいRSSのアドレスを渡してやれば、$rsにRSSの配列が取得できる。

動作サンプル

MacOS、ソフトウェアアップデートでGDが使えないとき

MacOSX server を使っていて、いままで問題なく使えていたのにソフトウェアアップデートをかけた途端、GDが使えなくなったら、PHPをダウンロードしてきて、改めてコンパイル&インストールし直すといい。

http://www.php.net/downloads.php
ここからPHPの最新版をダウンロード。

※現時点でのPHP4の最新版はphp-4.4.7.tar.gz

サーバーに置いたら
ターミナルから

tar zxvf php-4.4.7.tar.gz

参考までにconfigureは、こんな感じ。

./configure  –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –disable-dependency-tracking –with-apxs –with-ldap=/usr –with-kerberos=/usr –enable-cli –with-zlib-dir=/usr –enable-trans-sid –with-xml –enable-exif –enable-ftp –enable-mbstring –enable-mbregex –enable-dbx –enable-sockets –with-iodbc=/usr –with-curl=/usr –with-config-file-path=/etc –sysconfdir=/private/etc –with-mysql=/usr –with-mysql-sock=/var/mysql/mysql.sock –with-gd –with-jpeg-dir=/usr/local –with-png-dir=/usr/local –with-pear

問題無く進めたら

make && sudo make install

でインストール。

終わったら、apacheを再起動。

apachectl graceful

MacOS、ソフトウェアアップデートでPEARがエラー

MacOSX server を使っていて、いままで問題なく使えていたのにソフトウェアアップデートをかけた途端、PEARが見つからないとエラーを出すようになったら、php.iniにPEARへのパスをセットし直す。

修正ファイル: /etc/php.ini

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: “/path1:/path2”
;include_path = “.:/php/includes”

という部分を

include_path = “.:/usr/lib/php”

にして最初の「;」を取る。

Read Onlyにしていると保存できないので、
最初にchmod 666 と変更しておくといい。
※修正後に戻すのを忘れないように。

修正して保存したら、apacheを再起動。

apachectl graceful