Главная  /  Правка версии 19  /  Правка версии 20  /   /  Область пользователей

Отличия "Расширенная инструкция по установке wikipp" вер. 19 сравн. вер. 20

Содержимое:

Эта статью типа «быстрый старт». На входе требуются элементарные знания программирования под линукс на c++ и 15 минут свободного времени. На выходе вы получаете готовый, простой, высокопроизводительный wiki сайт, который распространяется автором по лицензии GPL. Прочитав/поковыряв его исходники вы запросто сможете начать писать на c++ для web и помоч автору фреймфорка.
- [Оглавление](#)
- [Репозитории](#repos)
- [Зависимости](#deps)
- [Cppcms](#cppcms)
- [Проблемы](#problems)
- [Dbixx](#dbixx)
- [Wikipp](#wikipp)
- [Конфигурация](#conf)
- [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>Репозитории
nano /etc/apt/sources.list
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
nano /etc/apt/preferences
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>Зависимости
apt-get update
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.99.5%20-%20beta%205/cppcms-0.99.5.tar.bz2
tar -xzvf cppcms-0.0.7.tar.gz
cd cppcms-0.0.7
tar -jxvf cppcms-0.99.5.tar.bz2
cd cppcms-0.99.5
svn co cppcms.svn.sourceforge.net/svnroot/cppcms/framework/branches/maintance_0_0_x/ cppcms
svn co http://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
## <span id="conf"></span>Конфигурация
cppcms_make_key
Скопируйте то что он скажет
nano /usr/local/etc/wikipp/config.txt
# WikiPP
wikipp.script="/wiki"
wikipp.media="/media"
wikipp.syntax_highlighter="/media/sh"
wikipp.disable_registration=0
# CppCMS System Settings
# Server
#server.api="scgi"
server.api="fastcgi"
server.mod="thread"
server.threads = 5
server.buffer = 100
#server.socket = "/tmp/wikipp.sock"
#server.socket = "0.0.0.0:8080"
session.expire = "renew"
session.timeout = 2592000 # 30 days
session.location = "client"
session.cookies_prefix="wikipp"
session.cookies_key = "сюда вставить полученный ключ от cppcms_make_key"
# Localization
#locale.dir = "./locale"
locale.dir = "/usr/local/share/locale"
locale.lang_list = { "he" "en" "ru" "pl" }
locale.lang_default = "ru"
locale.domain_list = { "wikipp" }
# gzip - default disabled
gzip.enable=1
gzip.level=1
# Cache
cache.backend="fork"
cache.limit=1000
cache.memsize = 8192
# Templates location
#templates.dirs = { "./templates/.libs/" }
templates.dirs = { "/usr/local/lib/wikipp" }
# templates.ext = ".dll"
# Uncomment above for cygwin platform
dbixx.driver="mysql"
#dbixx.driver="sqlite3"
#dbixx.driver="postgresql"
mysql.dbname="wikipp"
mysql.username="root"
mysql.password="придумать пароль для mysql"
#sqlite3.dbname="wikipp.db"
#sqlite3.sqlite3_dbdir="./db/"
#postgresql.dbname="cppcms"
#postgresql.username="artik"
## <span id="mysql"></span>Mysql
apt-get -t testing install mysql-server
mysql -u root -p -e "create database wikipp"
mysql -u root -p wikipp </usr/local/share/wikipp/mysql.sql
## <span id="nginx"></span>Nginx
apt-get -t unstable install nginx-full
nano /etc/nginx/sites-enabled/default
server {
listen 80;
root /var/www/wikipp;
server_name localhost;
#server_name 123.45.67.89;
location / {
autoindex off;
}
location /wiki {
autoindex off;
include fastcgi_params;
fastcgi_pass unix:/tmp/wikipp.sock;
fastcgi_split_path_info ^(/wiki)(.*)$;
fastcgi_param SCRIPT_NAME /var/www/wikipp/wiki;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Все разъяснения в [статье игоря сысоева](http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html) особое внимание «syntax: fastcgi_split_path_info regex»

Проект

CppCMS является основой веб-разработки для выполнения ресурсоемких приложений.

Размещение

SourceForge.net Logo

Поддержать проект

CppCMS needs You


Навигация

Главная страница


Валидация CSS | Валидация XHTML 1.0