작은숲:위키노트/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
...

같이 보기