[PHP-users 23033]インストーラーのつくりかた
鈴木孝征 Suzuki Takamasa
takamasa @ thaliana.myhome.cx
2004年 8月 23日 (月) 10:15:58 JST
鈴木と申します。自作PHPソフトのインストーラー作成方法について教えてくださ
い。
環境
Vine LInux 3.0
PHP 4.3.8
私がつくったソフト(仮にmysoftとします)を配りたいと考え、それを簡単にインス
トール
するためのスクリプトを考えています。
mysoftは以下の4つのファイルで動作するとします。
動作制御用のcontrol.php。#!/usr/bin/phpで始まるコマンドライン用スクリプト
ウェブ表示用のindex.php
control.phpとindex.phpで共通に使う関数をいれたfunctions.php
control.phpとindex.phpで共通に使う設定ファイルconfig.txt
上記の4ファイルに加え、インストーラーとしてinstall.phpを加えたものをtarコマ
ンドでまとめ、
配布しようと考えています。
mysoft.tar.gzを展開したディレクトリでinstall.phpを実行し、二つのディレクトリ
(binとweb)に
下記のように配置したいと考えています。
ディレクトリbin: contorol.php、functions.php、config.txt
ディレクトリweb: index.php
このとき、index.phpからfunctions.phpとconfig.txtをどうやって参照したらいいか
悩んでいます。
control.phpからはdirname(__FILE__)でディレクトリを取得し、functions.phpと
config.txtの
場所を探すようにしています。
私が考えたのは
1. install.phpでindex.phpの内容を書き換える。index.phpをfopenで開いて
functions.phpを
参照している部分(include "functions.php")を絶対参照に書き換えることを考え
ましたが、
記述が結構面倒に感じました。
2. install.phpでlocation.phpを作成し、index.phpと同じディレクトリに置く。
location.phpは
<?php $location = "bin/functions.php" ?>として、index.phpからは
include "location.php";
include "$location";
とする。ファイルの数が一つですが増える。
3. include_pathに設定されているディレクトリにfunctions.phpとconfit.txtを置
く。管理者権限が
必要になったり、htaccessなどを操作しないといけなかったりして逆に面倒。
メンテナンスなどを考えconfig.txtやfunctions.phpのコピーを両方のディレクトリ
におくのは
避けたいと考えています。また気軽にインストールし、使ってもらうためにも、
index.phpを
手動で書き換えてくださいとかいうのも避けたいと思います。2のほうがスマートで
はないか
と思っていますが、みなさんはどのようにされていますでしょうか。
他にもいいアイデアがあれば教えてください。
PHP-users メーリングリストの案内