пятница, 2 марта 2012 г.

Поднимаем локальный вики-сайт на picoLisp

На днях возникла задача поднять в конторе какой-нибудь вики-движок.
В первую очередь конечно захотелось попробовать picoLisp. Благо за прошедшие пару лет он довольно живо развивается, и есть готовый вики-движок, на котором сделан сайт picolisp.com.
Замечу, что для работы этого движка не нужны дополнительно ни веб-сервер, ни СУБД.
Поскольку под рукой в основном сервера на CentOS x64, делать всё будем на CentOS.

Ставить будем в папку /opt/picoLisp
Начнем (все команды под рутом):
# Обновляем систему
yum update

# предварительно установим недостающие пакеты
yum install gcc gcc-c++ glibc-devel glibc-devel.i686 libgcc.i686 openssl-devel file

# Качаем и распаковываем тестовую версию интерпретатора 
# (потому что в вики-движке используются некоторые функции, 
# которых еще нет в предыдущем релизе)
cd /opt 
wget "http://software-lab.de/picoLisp.tgz" && tar xzf picoLisp.tgz 

# Качаем свежий вики-движок и некоторые дополнительные приблуды
# (скрипты для подключения кнопок Facebook и проч.)
wget "http://software-lab.de/wiki.tgz" && tar -C picoLisp -xzf wiki.tgz
wget "http://software-lab.de/socialshareprivacy.tgz" && \
  tar -C picoLisp -xzf socialshareprivacy.tgz

# Скрипт jquery
mkdir -p /usr/share/javascript/jquery && \
  wget -O /usr/share/javascript/jquery/jquery.js \
  "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"

# Непосредственно сборка. 
# Тут надо пояснить: в архиве присутствуют исходники для 32-х и 64-битного
# интерпретатора, первый написан на си, второй на псевдоассемблере,
# для перевода которого в настоящий ассемблерный код требуется наличие
# интерпретатора picoLisp. А его у нас пока нет. Поэтому сначала собираем
# всё 32-битное
cd /opt/picoLisp/src && make picolisp tools gate

# а теперь собираем 64-разрядный интерпретатор, который затрет
# свою 32-битную копию. Вот такой вот финт ушами.
cd /opt/picoLisp/src64 && make picolisp
# пробуем запустить вики
cd /opt/picoLisp && ./pil wiki/main.l -main -go +
Топаем в браузер и открываем http://<адрес-вики-сервера>:5000
В следующих заметках опишу, как настроить httpGate, чтобы использовать стандартный порт 80 и как разместить кучу picoLisp-сервисов за одним http-шлюзом.
И всё это средствами picoLisp, без всяких дополнительных Apache и Nginx.

Комментариев нет: