Эта статью типа «быстрый старт». На входе требуются элементарные знания программирования под линукс на c++ и 15 минут свободного времени. На выходе вы получаете готовый, простой, высокопроизводительный wiki сайт, который распространяется автором по лицензии MIT. Его можно ковырять, переделывать и тд. |
|
- [Оглавление](#) |
- [Репозитории](#repos) |
- [Зависимости](#deps) |
- [Cppcms](#cppcms) |
- [Проблемы](#problems) |
- [Dbixx](#dbixx) |
- [Wikipp](#wikipp) |
- [Конфигурация](#конфигурация) |
- [Mysql](#mysql) |
- [Nginx](#nginx) |
- [Spawn-daemon](#spawn) |
- [Тестирование](#test) |
- [Fcgi-debug](#fcgi-debug) |
|
Многие тщательно критикуют любые разработки под web на c++, потому что просто не имеют достаточно опыта, чтобы развернуть сайт на cppcms. Выполняйте следующие команды в указанной последовательности и у вас все получится! |
|
|
Подымаем боевой стабильный кирпич debian-5.0.7/5.0.6 прямо по default настройкам |
Если для разработки — лучше на virtualbox 4.0, иначе — сразу на сервере |
|
Заходим под рутом и поехали: |
|
## <span id="repos"></span>Репозитории |
|
- <strong>nano /etc/apt/sources.list</strong> |
|
deb volatile.debian.org/debian-volatile lenny/volatile main |
deb-src volatile.debian.org/debian-volatile lenny/volatile main |
|
#lenny |
deb ftp.ru.debian.org/debian/ lenny main |
deb-src ftp.ru.debian.org/debian/ lenny main |
deb security.debian.org/ lenny/updates main |
deb-src security.debian.org/ lenny/updates main |
|
#testing |
deb ftp.ru.debian.org/debian/ testing main |
deb-src ftp.ru.debian.org/debian/ testing main |
deb security.debian.org/ testing/updates main |
deb-src security.debian.org/ testing/updates main |
|
#unstable |
deb ftp.ru.debian.org/debian/ unstable main |
deb-src ftp.ru.debian.org/debian/ unstable main |
|
- <strong>nano /etc/apt/preferences</strong> |
|
Package: * |
Pin: release a=stable |
Pin-Priority: 700 |
|
Package: * |
Pin: release a=testing |
Pin-Priority: 650 |
|
Package: * |
Pin: release a=unstable |
Pin-Priority: 600 |
|
ни в коем случае не переводите всю систему на testing/unstable - проблем не оберетесь! |
|
## <span id="deps"></span>Зависимости |
|
- <strong>apt-get update</strong> |
|
apt-get install -t testing checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev pkg-config libcgicc5-dev libboost-dev libboost-iostreams1.42-dev libboost-signals1.42-dev libasio-dev python libfcgi-dev libmm-dev libgcrypt11-dev libsqlite3-dev gettext libdbd-sqlite3 libdbd-mysql libdbi0-dev |
|
## <span id="cppcms"></span>Cppcms |
|
wget garr.dl.sourceforge.net/project/cppcms/cppcms/0.0.7/cppcms-0.0.7.tar.gz |
tar -xzvf cppcms-0.0.7.tar.gz |
cd cppcms-0.0.7 |
|
svn co cppcms.svn.sourceforge.net/svnroot/cppcms/framework/branches/maintance_0_0_x/ cppcms |
cd cppcms |
|
./autogen.sh (не обращаем внимания на Consider и required) |
./autogen.sh (не обращаем внимания на Consider) |
./configure |
|
## <span id="problems"></span>Проблемы |
|
### checking for fastcgi/fcgiapp.h… no |
|
А заголовочный fcgiapp.h лежит в /usr/include. |
Не нужно спешить делать символические ссылки! |
|
cd |
apt-get -t testing source libfcgi-dev |
ls -la libfcgi-2.4.0/include |
cd cppcms-0.0.7 |
egrep -R "fcgiapp\.h|fcgi_config\.h|fcgi_config_x86\.h|fcgi_stdio\.h|fcgiapp\.h|fcgimisc\.h|fcgio\.h|fcgios\.h" * > find_log.txt |
|
nano find_log.txt |
|
Найдено только в cppcms/fcgi.h и fcgi.h |
Вот кто во всем виноват: |
|
#ifdef EN_FASTCGI_LONG_PATH |
#include <fastcgi/fcgio.h> |
#include <fastcgi/fcgiapp.h> |
#else |
#include <fcgio.h> |
#include <fcgiapp.h> |
#endif |
|
Ложная тревога. Собираем! |
|
cd cppcms |
make |
|
### X--tag=CXX: command not found |
|
Дело в том что libtool пытается ВЫПОЛНИТЬ параметры которые начинаются с X. Надо бы эту «фичу» временно отключить! |
|
export echo=echo |
make |
make install |
export -n echo |
cd |
|
## <span id="dbixx"></span>Dbixx |
|
svn co cppcms.svn.sourceforge.net/svnroot/cppcms/dbixx/trunk/ dbixx |
cd dbixx |
|
./autogen.sh (не обращаем внимания на Consider) |
./configure |
make |
make install |
|
cd |
|
## <span id="wikipp"></span>Wikipp |
|
svn co cppcms.svn.sourceforge.net/svnroot/cppcms/wikipp/trunk wikipp |
cd wikipp |
|
./autogen.sh (не обращаем внимания на Consider и required) |
./autogen.sh (не обращаем внимания на Consider) |
./configure |
make |
make install |
|
Зальем какой-никакой дизайн и syntax highlighter |
|
mkdir /var/www/ |
mkdir /var/www/wikipp |
mkdir /var/www/wikipp/media |
cd templates |
cp -R sh /var/www/wikipp/media/ |
cp *.css /var/www/wikipp/media/ |
cd /var/www/wikipp/ |
wget ru.wikipedia.org/favicon.ico |
|
Почистим |
|
cd /var/www/wikipp/media/ |
rm -rf `find . -name *.svn` |
|
Дадим все права для www-data |
|
chown -R www-data /var/www/wikipp |
cd |