menu

Blog

  • Настройка CentOS 5 как сервера разработки

    Кодировать и сразу тестировать на целевой платформе - это как бы хорошо со всех сторон. Когда программируешь под 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 и можно подавать на стол.