rakutoネット
お問合せ 免責事項 Q&A 掲示板 サイト管理 リンク サイトマップ
HOME > incoude pathを通す

incoude pathを通す


意外と面倒

root権限があれば好きなように設定できるのですがレンタルサーバなどでは、設定方法が限られてきます。
よく使うinclude pathの通し方法を紹介します。

ini_set()関数を使う

[main.php]
<?php
/* 外部参照ファイルパスの指定 */
ini_set("include_path",".:/www/study/include");
 
/* =-=- モジュール等の読み込み -=-= */
require_once('rkt_db.php');
 
RSL_db::output();
?>

[rkt_db.php]
<?php
/* =-=- モジュール等の読み込み -=-= */
require_once('sqlite_db.php');
 
class RSL_db extends SQLite_db
{
    function RSL_db()
    {
    }
}
?>

main.phpからrkt_db.phpを読み込みます。
rkt_db.phpでは更にsqlite_db.phpを読み込んでいます。

ini_set()関数は一番底に当たる呼び込み元で一度実行すれば全てのファイルに波及されます。(同じプロセスの間)
rkt_db.phpではini_set()関数を実行していませんがsqlite_db.phpを読み込めます。

PEARなど他人が作成したモジュールを使う場合はファイルを変更しなくて済みます。
移行する場合は大変で、読み込み元の全てのファイルを変更しなければなりません。
開発などでは開発・本番のディレクトリ構成を同一にする必要が有ります。

定義ファイルを用意する

[main.php]
<?php
/* =-=- モジュール等の読み込み -=-= */
require_once('../config.php');   /* 定義ファイル */
require_once(BASE_DIR.'libs/rkt_db.php');
 
RSL_db::output();
?>

[config.php]
<?php
if (!defined('BASE_DIR')) {
    define('BASE_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
}
?>

[rkt_db.php]
<?php
/* =-=- モジュール等の読み込み -=-= */
require_once(INCLUDE_DIR.'sqlite_db.php');
 
class RSL_db extends SQLite_db
{
    function RSL_db()
    {
    }
}
?>

定義ファイル(config.php)はトップディレクトリにある必要があります。
定義ファイル内でBASE_DIRを定義します。
モジュールを読み込む際は必ずBASE_DIRと共に読み込みます。
DIRECTORY_SEPARATORはPHPの定義済み定数です。

一番底に当たる呼び込み元で、相対パスにより定義ファイルを読み込めば開発・本番のディレクトリ構成が違う場合でも問題ありません。

.htaccessを使用する

[.htaccess]
<IfModule mod_php4.c>
php_value include_path ".:/www/study/include"
</IfModule>

[main.php]
<?php
/* =-=- モジュール等の読み込み -=-= */
require_once('rkt_db.php');
 
RSL_db::output();
?>

[rkt_db.php]
<?php
/* =-=- モジュール等の読み込み -=-= */
require_once('sqlite_db.php');
 
class RSL_db extends SQLite_db
{
    function RSL_db()
    {
    }
}
?>

この方法を使えば設置したディレクトリ以下に反映されるのでとても便利です。
開発環境に複数のプロジェクトを置いてある場合などはphp.iniを設定せずに済むので混乱することもありません。

問題は.htaccessに制限がある場合は勿論使えません。
AllowOverrideなどがALLであれば問題ないはずです。
逆にALLであることが問題ですか……


PHP Tips カレンダー>>

PHPリング

@PHP.ring Home
<5 <1 Random List 1> 5>

rktSQLite

  • sourceforge.jp

広告


アマゾン検索

サーチ:
Amazon.co.jpアソシエイト

カテゴリ

  •  Templateエンジンのすすめ Templateエンジンのすすめ
  •  SQLiteをやってみよう SQLiteをやってみよう
  •  SQLite SQLコマンド一覧 SQLiteコマンド一覧
  •  SQLite 管理プログラムSQLite 管理
  •  はじめてのEclipse はじめてのEclipse
  •  PHP SQLiteのTIPS PHP SQLiteのTIPS
  •  サンプル サンプル/ダウンロード
  •  リンク リンク
  •  掲示板 掲示板

メニュー

  •  incoude pathを通す
  •  カレンダー
  •  排他処理
  •  PEAR DB
  •  画像アップロード
  •  プログレスバー
  •  PATH_INFOで拡張子を隠す
  •  トラックバック
  •  PEARのトラックバック
  •  iMagickでGIFアニメ
  •  メモリ上の画像をImageMagickする
  •  暗号化と復号化
  •  strtotime()でmonth処理

キーワード検索

キーワード



最近のTB

  •  2006/03/13さくらのブログに挑戦[rakutoネットブログ]
  •  2006/01/20レーザーチャートの作成方法[脳内研究所]

Summary

  •     ATOM(XML)
  •     RDF(XML)
  •     RSS0.92(XML)
  •     RSS2.0(XML)

Powered by

  •     PHP
  •     Smarty
  •     SQLite
  •     MySQL
Copyright (C) 2005 `rakuto.net' All Rights Reserved.