php5.2 と eAcceleratorがうまく動かないときがある。

Fatal error: Cannot access protected property
こんなエラーがでるときは、あっさり諦めるのがよさそう。
挙動としては、一度目は正しい結果が得られるけど、二度目からのアクセスでは上記のようなエラーが出るパターン。


php.iniのeAcceleratorをコメントアウトして挙動を確認すると、正しい結果が得られることからeAcceleratorとphpの相性の問題と判断できる。

pythonとpostgresqlを接続するのにpgdbを使いたい。でも入ってなかった。

PyGreSQL:http://pygresql.org/
PyGreSQL ソース:ftp://ftp.pygresql.org/pub/distrib/(←ここから適当にバージョンやプラットフォームを選ぶ。)
PyGreSQL 最新版:ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz(←何も考えずに最新版の場合)
PyGreSQL BETA版:ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-beta.tgz(←何も考えずにベータ版)


普通はいっていそうだけど、入っていなかったので入れたい。
> cd /usr/local/src/(とか適当に作業ディレクトリ)
> wget ftp://ftp.pygresql.org/pub/distrib/PyGreSQL.tgz(とか適当にバージョンを選んで)
> tar zxvf PyGreSQL.tgz
> cd PyGreSQL-3.8.1(とか解凍してでてくるディレクトリ名)
> python(必要ならバージョン名) setup.py install


で入りそう。
pg_configがないとか言われたときは、
> find -name pg_config
で探してあげて、setup.pyのpg_configを呼んでるところに追加してあげる。
たぶんかなり頭の方。


> python
>>> import pgdb


でエラーなしなら問題なし。


>>> import pgdb
Traceback (most recent call last):
File "", line 1, in ?
File "/usr/lib/python2.3/site-packages/pgdb.py", line 69, in ?
from _pg import *
ImportError: libpq.so.4: cannot open shared object file: No such file or directory


とか出てきたらlibpq.so.4がないみたいなので
> find -name libpq.so.4
とかしてあげると、postgresqlのソースディレクトリとかに入っていたりする。
ので、


> cp /usr/local/pgsql/lib/libpq.so.4 /usr/lib/
> cp /usr/local/pgsql/lib/libpq.so.4.1 /usr/lib/(念のためlibpq.so.4.1もいれたのは、libpq.so.3を参考にして。ちなみに場所もlibpq.so.3をfindしてあげて見当づけ。)


としてあげると、
> python
>>> import pgdb

で同じエラーはでないはず。


python postgres pgdb PyGreSQL インストール install ソース redhat

psqlコマンドいろいろ。

コマンド 機能
\? psqlコマンドの一覧を表示する
\h SQLコマンドの一覧を表示する
\h SQLコマンド名 SQLコマンドの使い方を表示する
\l データベースの一覧を表示する
\dt 表の一覧を表示する
\d 表名 表の項目一覧を表示する
\dT 項目の型の一覧を表示する
\dS システム表の一覧を表示する
\copy table {from | to} ファイル名 表をファイルにコピーする
\i ファイル名 指定したファイル内のSQLを実行する
\! OSコマンド OSのコマンドを実行する
\q psqlを終了する


参照:http://ash.jp/db/pg_psql.htm

DB.phpがうまくincludeできない。

> pear install DB
pearコマンドが動作しないときは、pearをインストール


php.iniを編集。
include_path=".:/usr/local/lib/php
などのように編集。


> cd /
> find -name DB.php
などをして、見つかったディレクトリ(ダウンロードしてきたソースなんかは無視)のひとつうえ。
ex)./usr/local/lib/php/DB.php →なら→ ./usr/local/lib/php/ とか。
を指定するといいかも。(あんまりよくないかもしれないけど。)


apacheを再起動。
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start


db.php php5 pear include インストール