Кодировать и сразу тестировать на целевой платформе - это как бы хорошо со всех сторон. Когда программируешь под web, 90% что целевой платформой будет Linux. До этого я пользовался SuSE Linux 10.3, и был относительно доволен. Версия SuSE 11.1 стала большим разочарованием - тонны косметики на кривой функционал, просто Vista-style какой-то. В дистрибутиве релиза 11.1 не работал apache, это меня до глубины души возмутило. Решено было обратится к суровому, но единственно верному решению - CentOS 5. Внизу небольшая памятка по доработке напильником (будет пополняться).
NTFS
Для подключения, скажем, переносного винчестера, понадобится драйвер ntfs. В репозитории его может не быть, надо брать у Дага. К счастью это делается элементарно:
# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum install fuse*
# yum install dkms
# yum install dkms-fuse
Это установит необходимые модули ядра. Также полезно будет поправить /etc/fstab.
SVN
До смешного просто:
# yum install subversion
# yum install mod_dav_svn
(Yum притащит нужный libneon самостоятельно, а mod_dav и mod_dav_fs уже есть в системе). Пакет mod_dav_svn притащит за собой mod_authz_svn. В папке /etc/httpd/conf.d/ появится файл subversion.conf в котором будут директивы:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Добавляем директиву Location в httpd.conf
< Location >
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Main repository"
AuthUserFile /usr/local/svn/.svnc
Require valid-user
< /Location >
Добавляем разрешенный порт в правила (цепочки) файрвола iptables:
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
Сохраняем, перезапускаем:
# /etc/init.d/iptables restart
# /etc/init.d/httpd restart
Trac
Подробно отут: http://trac.edgewall.org/wiki/TracInstall
Вкратце - нам понадобится python, apache и mod_python, а дальше все легко:
# yum install python
# yum install mod_python
# Выкачать setuptools*.py2.4.egg - поскольку в Centos 5 установлен Python версии 2.4.
# sh ./setuptools*.py2.4.egg
После этого у нас появляется тулза easy_install, которая установит все остальное:
# easy_install Genshi
# easy_install Trac
Инициализируем первый проект:
# trac-admin /path/to/myproject initenv
# chown -R apache.apache /path/to/myproject
В httpd.conf вставляем
< Location /projects/myproject >
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /path/to/myproject
PythonOption TracUriRoot /projects/myproject
< /Location >
Последняя опция TracUriRoot - это путь к Траку через веб-браузер.
Добавляем аутентификацию, файл .htaccess создается:
# htaccess -c .htaccess user1
< Location /projects/myproject/login >
AuthType Basic
AuthName "Trac Project"
AuthUserFile /path/to/.htaccess
Require valid-user
< /Location >
Даем пользователю все права в Траке:
# trac-admin /path/to/project permission add user1 TRAC_ADMIN
Перезапускаем apache и можно подавать на стол.