작은숲:위키노트/Moniwiki-inst
개요
작은숲:위키노트/모니위키로 여러 위키 쓰기를 준비하면서 만든 설치 디렉토리. GitHub의 모니위키 프로젝트에서 다운로드 한 파일들은 직접 건드리지 않고 필요한 경우 이 디렉토리에 있는 파일들을 수정하도록 한다. 실제 서비스하는 것은 바로 이 디렉토리에 있는 파일들.
소스 디렉토리의 Makefile과 moni-install.in 파일 수정
Makefile 파일 수정
DESTDIR = /home/www/share/moniwiki-inst
install: moni-install
mkdir -p $(DESTDIR)
mkdir -p $(DESTDIR)/bin
mkdir -p $(DESTDIR)/data
cp data/*.* data/.htaccess $(DESTDIR)/data
[ ! -f data/intermap.txt ] && cp data/intermap.txt.sample $(DESTDIR)/data/intermap.txt
[ ! -d wikiseed ] || cp -ar wikiseed $(DESTDIR)
cp -ar applets config css imgs lib local locale plugin theme tools $(DESTDIR)
cp wiki.php wikilib.php wikismiley.php $(DESTDIR)
cp config.php.* monisetup.php COPYING monisetup.sh secure.sh $(DESTDIR)
cp moni-install $(DESTDIR)/bin
moni-install: moni-install.in
cat moni-install.in | sed 's%@@INSTDIR@@%$(DESTDIR)%' > moni-install
chmod 755 moni-install
clean:
rm -rf moni-install $(DESTDIR)
틀:아이콘 Makefile 각 타겟의 레시피(Recipe, 혹은 Command) 앞의 공백문자는 반드시 TAB 문자이어야 한다.
moni-install.in 파일 수정.
#!/bin/sh
echo
echo "+------------------------------------+"
echo "| MoniWiki installation script |"
echo "+------------------------------------+"
echo
if [ -z $INSTDIR ]; then
INSTDIR=@@INSTDIR@@
fi
if [ -z $MAIN ]; then
MAIN=wiki.php
fi
DATAFILES="intermap.txt
mime.types
PeignotNum.ttf
"
LINKS="imgs images theme css local locale plugin lib applets"
for x in $LINKS; do
[ ! -d $x ] && [ -d $INSTDIR/$x ] && ln -s $INSTDIR/$x .
done
#[ ! -d data ] && cp -a $INSTDIR/data .
[ ! -d data ] && mkdir data && (cd data; for x in $DATAFILES; do ln -s $INSTDIR/data/$x .; done)
[ ! -f data/.htaccess ] && cp -a $INSTDIR/data/.htaccess data
[ ! -d config ] && mkdir config && cp -a $INSTDIR/config/* config/
[ ! -f config/.htaccess ] && cp -a $INSTDIR/config/.htaccess config
[ ! -f config.php.default ] && ln -s $INSTDIR/config.php.default .
[ ! -f monisetup.php ] && ln -s $INSTDIR/monisetup.php .
[ ! -f COPYING ] && ln -s $INSTDIR/COPYING .
conf=`ls $INSTDIR/config.php.*|grep -v config.php.default`
cp -a $INSTDIR/monisetup.sh $INSTDIR/secure.sh .
if [ -n "$conf" ]; then
cp -a $conf .
fi
if [ ! -f index.php ]; then
cat <<PHP >index.php
<?php
include("$INSTDIR/$MAIN");
PHP
fi
moni-install.in 파일의 diff 내역.
--- a/moni-install.in
+++ b/moni-install.in
@@ -20,15 +20,18 @@ PeignotNum.ttf
LINKS="imgs images theme css local locale plugin lib applets"
-for x in LINKS; do
+for x in $LINKS; do
[ ! -d $x ] && [ -d $INSTDIR/$x ] && ln -s $INSTDIR/$x .
done
#[ ! -d data ] && cp -a $INSTDIR/data .
[ ! -d data ] && mkdir data && (cd data; for x in $DATAFILES; do ln -s $INSTDIR/data/$x
+[ ! -f data/.htaccess ] && cp -a $INSTDIR/data/.htaccess data
[ ! -d config ] && mkdir config && cp -a $INSTDIR/config/* config/
+[ ! -f config/.htaccess ] && cp -a $INSTDIR/config/.htaccess config
[ ! -f config.php.default ] && ln -s $INSTDIR/config.php.default .
[ ! -f monisetup.php ] && ln -s $INSTDIR/monisetup.php .
+[ ! -f COPYING ] && ln -s $INSTDIR/COPYING .
conf=`ls $INSTDIR/config.php.*|grep -v config.php.default`
cp -a $INSTDIR/monisetup.sh $INSTDIR/secure.sh .
if [ -n "$conf" ]; then
moniwiki-inst 설치
소스 디렉토리에서.
$ make clean
rm -rf moni-install /usr/share/moniwiki
$ make
...