[PHP-users 23259]Re: SQLiteを共用サーバで使用する方法ありますか?

Tadashi Jokagi ml @ elf.no-ip.org
2004年 9月 10日 (金) 01:50:57 JST


      上鍵です.こんにちは.
      申し訳ないので自分のサーバーで確認しました.結果的には一応 SQLite を
    使用できそうですが,*強く*お勧めしない方法での実現になります.

Kouichi Matsumotoさんの<20040909172503.1716.MATCHORI @ yahoo.co.jp>から
>-bash-2.05b$ make install 
>Installing shared extensions:     
>/usr/local/lib/php/extensions/no-debug-non-zts-20020429/
>cp: cannot create regular file 
>`/usr/local/lib/php/extensions/no-debug-non-zts-20020429/#INST @ 818#': 許可があ
>りません
>make: *** [install-modules] エラー 1

    同様のエラーが出ますね.で,SQLite 拡張モジュールはファイル名は
    sqlite.so でした.とりあえず適当な場所にコピーしてみました.

$ cp -p modules/sqlite.so /tmp/.

    で,CLI を使って絶対パスでの dl().失敗です(苦笑

[elf @ server SQLite-1.0.3]$ php -r 'dl( "/tmp/sqlite.so");print_r( get_loaded_extensions());'
PHP Warning:  dl(): Unable to load dynamic library '/usr/lib/php4/extensions//tmp/sqlite.so' - /usr/lib/php4/extensions//tmp/sqlite.so: cannot open shared object file: No such file or directory in Command line code on line 1
Array
(
    [0] => xml
    [1] => tokenizer
    [2] => sysvshm
    [3] => sysvsem
    [4] => sysvmsg
(snip)
    [35] => Turck MMCache
    [36] => mysql
    [37] => namazu
    [38] => odbc
    [39] => pgsql

    で,相対パスにしてみました.

[elf @ server SQLite-1.0.3]$ php -r 'dl( "../../../../tmp/sqlite.so");print_r( get_loaded_extensions());'
Array
(
    [0] => xml
    [1] => tokenizer
    [2] => sysvshm
    [3] => sysvsem
    [4] => sysvmsg
(snip)
    [35] => Turck MMCache
    [36] => mysql
    [37] => namazu
    [38] => odbc
    [39] => pgsql
    [40] => sqlite
)

    一応 SQLite モジュールが使えるようになってそうです.ただし実装があ
    まりに気持ち悪いです(苦笑 ini_set()で extension_dir の書き換えも検
    討しましたが,PHP_INI_SYSTEM なのでスクリプト上では変更できません.
    残りは CLI/CGI のみでの手段になりますが,-d オプションで
    extension_dir の書き換えでなんとか認識しましたが,逆に他の共有ライ
    ブラリの拡張モジュールが読み込めてること自体が偶然の可能性もあるの
    で(当然/tmp にはおいてない)ネタ以上のものは結局ありません.

[elf @ server SQLite-1.0.3]$ php -d extension_dir="/tmp" -r 'dl( "sqlite.so");print_r( get_loaded_extensions());'
Array
(
    [0] => xml
    [1] => tokenizer
    [2] => sysvshm
    [3] => sysvsem
    [4] => sysvmsg
(snip)
    [35] => Turck MMCache
    [36] => mysql
    [37] => namazu
    [38] => odbc
    [39] => pgsql
    [40] => sqlite
)

-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf @ elf.no-ip.org
Fedora JP Project http://fedora.jp/
Fedora Project    http://fedora.redhat.com/
Fedora and Red Hat are registered trademarks of Red Hat Inc.


PHP-users メーリングリストの案内