[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 メーリングリストの案内