Главная > Программное обеспечение BSD\Linux > Собственной web-сервер для разработки и тестирования приложений (FreeBSD + Apache2 + PHP +MySQL + ProDTPd + SVN + Trac)

Собственной web-сервер для разработки и тестирования приложений (FreeBSD + Apache2 + PHP +MySQL + ProDTPd + SVN + Trac)

FreeBSD LogoСегодня хочу затронуть тему, которая, как мне кажется, будет интересна всем web-разработчикам. Именно сегодня мы поговорим о настройке такой замечательной вещи как собственный web-сервер приложений.

Ни для кого не секрет что PHP и MySQL на данный момент являются практически 70%-й составляющей всех интернет проектов, за счет легкости в освоении, переносимости и прочем.  И 90% хостинговых компаний предлагают именно эту среду для своих клиентов, так что сам бог велел написать мне подобную статью.

Но, для начала, давайте определимся с предполагаемым функционалом нашего web-сервера:

  • Apache2, ввиду того что является практически стандартом “де-факто” на 90% процентах интернет серверов. Установлен будет без фронтенда, т.к. данный web-сервер все-таки рассчитан на небольшую группу программистов.
  • PHP, ну тут собственно и говорить ничего не надо. Установим и его, и необходимые расширения.
  • MySQL, тоже практически стандарт “де-факто” на 90% интернет ресурсах.
  • PhpMyAdmin, веб среда для управления базами данных. Тут тоже обойдемся без объяснений, скорее всего вы знаете, что это такое.
  • ProFTPd в качестве ftp сервера с хранением пользователей, логов и прочих прелестей в MySQL
  • SVN — контроль версий, в групповой работе без него никуда!
  • Trac – веб-морда к SVN с кучей всяких вкусностей.
  • Какая-нибудь web-морда для управления сервером, ибо ковыряться без конца в конфигах из консоли – не по джидайски.

В качестве серверной OC будем использовать FreeBSD 8.1 на железе P4 2.8GHz, 4gb RAM, 2*500gb hdd RAID Мirror.

Углубляться в описание установки FreeBSD я не буду, пройдем только по основным пунктам, чтобы получить систему в минимальной установке, лишнее нам не нужно. Если есть желание почитать подробнее, то Google.com вам в помощь! Пересобирать ядро мы с вами тоже не будем. Это не нужно для данного случая, но, если есть желание. То можете почитать об этом в данной статье (указать линк на пересборку ядра)

Спросите, почему именно FreeBSD? Скажу откровенно, в эту систему влюблен, да, именно так, работает быстро, стабильно, легко конфигурируется и настраивается, непритязательна к железу и вообще прелесть! Ну да все это лирика! Выбор только за вами!

Готовы? Приступаем!

Установка FreeBSD 8.1

Итак, загружаемся с диска с FreeBSD и начинаем ставить систему.

Ждем пока запустится инсталлятор и появится окно с выбором местоположения. Выберем естественно Russian Federation, далее выбираем keymap, вернее соглашаемся с предложенным Russian KOI8-R, следом выбираем вариант установки Standart. И следом попадаем в FDISK. В котором разбиваем диск по умолчанию командами A и Q. Выбираем загрузчик Standart, и следом разбиваем диск на разделы теми же командами, A и Q, тоесть выбираем по умолчанию. Следом попадаем в менюшку с выбором набора ПО. Как я и говорил, будем ставить систему в минимальной конфигурации, поэтому смело выбираем пункт Minimal, выбираем откуда будем устанавливать, а в нашем случае это CD\DVD, и соглашаемся с внесением всех изменений на диск. Не успеете и отойти выкурить сигарету, как система уже будет поставлена, и установщик предложит сконфигурировать основные параметры.

Перво-наперво будет предложено настроить сеть, с чем мы и соглашаемся, откажемся от использования IPv6, ибо нах ненада, укажем, будем ли использовать DHCP, в моем случае будем, т.к. у меня DHCP сервер есть исправно раздает адреса, вы же можете отказаться, ну и настроим необходимые параметры для работы сети. Далее откажемся от использования сервера в качестве network gateway, откажемся от использования inetd, обязательно включим ssh, откажемся от anonymous ftp access, NFS сервера и NFS клиента, откажемся от настройки консоли, выберем Тайм зону в соответствии с UTC, Europe, Russian Federation, Moscow +00 – west Russia, откажемся от использования PS/2 мыши и использования коллекции портов. Следом создадим пользователя в группе wheel и назначим ему пароль. Последним штрихом будет назначение пароля суперпользователю root.

После всех этих манипуляций вылезет менюшка с приглашением сходить в главное меню и что-нибудь еще настроить, но мы благополучно откажемся и дальше выберем Exit install. Система уйдет в ребут, и после этого можем считать что все, система установлена.

Далее можем смело цепляться по ssh к свежее установленному серверу и производить все манипуляции по настройке удаленно!

Запомните! Зайти напрямую под root по ssh у вас, без дополнительной настройки сервера, не получится, поэтому логиньтесь к хосту от пользователя которого завели в системе и далее уходите на рута через su!

Мелкая настройка

Попав в консоль вы заметите некое неудобство стандартного приглашения csh\tcsh, но это легко поправим, и поэтому я предлагаю использовать свой вариант csh\tcsh prompt, код которой приведен ниже:

1
set prompt="%{^[[40;33;1m%}[%T] %M %{^[[40;32;1m%} %/ &"

Куда все это вписывать? В .cshrc

Набираем в консоли ee /root/.cshrc и в появившемся редакторе вместо стандартного set prompt вписываем вышенаписанную строчку. Нажимаем CTRL+C, в command пишем exit и разлогиниваемся из рута. Снова su, логин под рутом и видим, как преобразилось приглашение. Мелочь, а удобно…

Далее, меняем hostname нашей машины на что-нибудь более внятное, например на dev.local. Делается это таким образом:

1
hostname dev.local

Снова перелогиниваемся и смотрим результат в приглашении csh

Далее… Текстовый редактор… Имеющийся в стандартном наборе ee крайне неудобен, лично для меня, хотя, может и на любителя, но мы с вами будем ставить nano. Но, для этого необходимо установить и обновить порты ПО, чем мы сейчас и займемся.

Для того чтобы актуализировать коллекцию портов, которой у нас нет в принципе, ибо мы ставились в минимуме, набираем в консоли следующую команду:

1
portsnap fetch update

Оно начинает что-то качать, шуршать, ждем окончания… Все зависит от скорости вашего интернета. В моем случае 63мб качались около 10 минут.

По окончании делаем

1
portsnap extract && portsnap fetch update

Оно извлечет скачанные порты и проверит наличие возможных обновлений. После этого коллекцию портов можем считать установленной и можем ее использовать для установки ПО.

Собственно продолжаем далее. Ставим редактор nano. Для этого выполним в консоли:

1
cd /usr/ports/editors/nano && make install clean && rehash

Оно начнет скачиваться и устанавливаться. В процессе установки периодически будут вылезать синие окошки с разнообразными вариантами настройки. Я рекомендую оставлять все по умолчанию.

Итак, nano установился, начинаем потихонечку настраивать систему, а именно настроим функционал для сборки ПО.

Для этого идем в директорию /etc и открываем там файл make.conf Если его там нет, то создаем его командой touch /etc/make.conf  и дописываем в него следующие строки.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WITHOUT_X11=YES
WITHOUT_JAVA=YES
MAKE_KERBEROS4=false
MAKE_KERBEROS5=false
NO_BIND=true
NO_SENDMAIL=true
NO_GAMES=true
PERL_VER=5.8.9
PERL_VERSION=5.8.9
PERL_ARCH=mach
NOPERL=no
WITH_PERL=yes
WITHOUT_PERL=no
WITH_XCHARSET=all
FORCE_PKG_REGISTER=yes

Установка Apache2

Ставим Apache2.

1
cd /usr/ports/www/apache22 && make install clean && rehash

Откроется окно настроек, в котором можно оставить все по умолчанию, но я для себя убрал поддержку IPv6. В процессе сборки и установки будет появляться несколько подобных окошек, оставляем все по умолчанию.

После установки начинаем настраивать Apache2

Для начала запишем Apache2 в автозагрузку:

1
echo ‘apache22_enable=”YES”’ >> /etc/rc.conf

Ну и попробуем запустить сам Apache2.

1
/usr/local/etc/rc.d/apache22 start

Проверяем старт сервера командой ps axw | grep httpd и если видим следующее:

1
2
3
4
5
9192  ??  Ss     0:00.09 /usr/local/sbin/httpd -DNOHTTPACCEPT< 9193  ??  I      0:00.01 /usr/local/sbin/httpd -DNOHTTPACCEPT
9194  ??  I      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
9195  ??  I      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
9196  ??  I      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
9197  ??  I      0:00.01 /usr/local/sbin/httpd –DNOHTTPACCEPT

то можем быть уверенными в том что сервера стартанул и готов обрабатывать запросы.

Ну и для пущей убедительности пробуем открыть сервер по http, обратившись по адресу http://ip_tachki .В ответ мы должны увидеть “It works!” Если это так, значит все отлично, если нет, разбираемся в логах и идем в гугл!

Перенастроим пути до корневой директории web-сервера на /usr/web/www. Для этого сделаем следующее:

1
2
3
mkdir –p /usr/web/www
chown –R www:www /usr/web/www
chmod –R 777 /usr/web/www

Следом откроем /usr/local/etc/apache22/httpd.conf и поменяем пути до корневой директории в конфиге. И как итог перезапусти Apache2 командой:

1
/usr/local/etc/rc.d/apache22 restart

Снова зайдем по адресу http://ip_tachki и увидим пустую директорию.

Установка MySQL

Следом у нас на очереди идет MySQL. Ставится тоже не сложнее Apache2, поэтому приступаем:

1
cd /usr/ports/databases/mysql55-server/ && make install clean && rehash

После установки перенастроим MySQL сервер, а именно перенесем наши базы данных в директорию /usr/web/databases

Для этого создадим данную директорию и выставим на нее правильные разрешения:

1
2
3
mkdir /usr/web/databases
chown –R mysql:mysql /usr/web/databases
chmod –R 777 /usr/web/databases

Далее добавляем следующие строки в автозагрузку:

1
2
echo 'mysql_dbdir="/data/mysql"' >> /etc/rc.conf
echo 'mysql_enable="YES"' >> /etc/rc.conf

После запуска MySQL сервера он автоматически создаст все необходимые файлы и папки, необходимые для своей корректной работы.

Запускаем MySQL сервер:

1
/usr/local/etc/rc.d/mysqls-server start

И проверяем работоспособность командой ps axw | grep mysqld и если увидим что-то типа:

1
2
3
4
5
794 ?? Is 0:00.05 /bin/sh /usr/local/bin/mysqld_safe \
--defaults-extra-file=/usr/web/databases/my.cnf \
--user=mysql --datadir=/usr/web/databases \
--pid-file=/usr/web/databases/dev.local.pid
874  ??  I      0:00.48 [mysqld]

то можем сделать вывод, что все работает как надо.

Далее задаем пароль root пользователю MySQL:

1
mysqladmin password ВАШ_ПАРОЛЬ

Приступаем к настройке MySQL сервера.

Для начала проверим, разрешен ли удаленный доступ к MySQL серверу из вне. Для этого выполним netstat –an | grep 3306, и если в ответ увидим:

1
tcp46      0      0 *.3306                 *.*                    LISTEN

то сделаем вывод, что сервер из вне доступен. Если оно вам надо, то пропускаем манипуляции ниже, если хотите доступ из вне прикрыть, то в секцию [mysqld] файла my.cnf дописываете строку  skip_networking . Также не лишним будет добавить в my.cnf следующие строки:

1
2
3
4
[client]
port = 3306
socket = /tmp/mysql.sock
bind-address = 127.0.0.1

На данном этапе первоначальная настройка MySQL завершена.

Установка PHP

Собственно устанавливаем PHP. Опять-таки хочу заметить что ставится он не сложнее уже установленного софта. Приступаем:

1
cd /usr/ports/lang/php5 && make install clean && rehash

В появившемся диалоге выбираем все кроме IPv6 и Debug. И установка бодро весело началась!

После установки идем и правим httpd.conf  и дописываем в него следующие строки:

1
2
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Далее добавляем index.php в список индесных страниц.

Не забываем также сделать cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

После чего перезапускаем Apache2 и создаем страничку с информацией о PHP:

1
touch /usr/web/www/index.php && echo ‘< ?php phpinfo(); ?>;>> /etc/web/www/index.php

Ну и в заключении проверяем работоспособность php зайдя по адресу http://ip_tachki/index.php

Если выводится информация о PHP, следовательно все работает как надо, если нет, гугл вам в помощь!

Далее устанавливаем расширения PHP.

Идем в /usr/ports/lang/php5-extensions и там делаем make install clean && rehash

В появившемся диалоге выбираем те расширения которые вам пригодятся в работе. Для себя я выбрал:

  • Calendar
  • Ctype
  • Curl
  • dom
  • ftp
  • gd
  • gettext
  • hash
  • iconv
  • json
  • mbstring
  • mcrypt
  • mysql
  • mysqli
  • openssl
  • pdf
  • pdo
  • pdo_sqlite
  • posix
  • session
  • simplexml
  • sqlite
  • tokenizer
  • wddx
  • xml
  • xmlreader
  • xmlrpc
  • xmlwriter
  • xsl
  • zip
  • zlib

В дальнейших диалогах выбирайте все на свое усмотрение, лично я все оставлял по умолчанию.

После установки перезапускаем Apache2 , снова идем по адресу http://ip_tachki/index.php и любуемся тем что получилось! Все расширения как на ладони!

Можем считать установку FAMP завершенной и приступать к установке других необходимых программ для сервера разработки.

Установка PhpMyAdmin

Для более удобной работы с MySQL сервером ставим PhpMyAdmin. Ставится он следующим образом:

1
cd /usr/ports/databases/phpmyadmin && make install clean && rehash

В появившемся диалоге оставляем все по умолчанию. После установки начинаем его немного настраивать.

Для начала перенесем рабочую директорию PhpMyAdmin из /usr/local/www в /usr/web:

1
mv /usr/local/www/phpMyAdmin /usr/web/

Далее создадим директорию conf

1
mkdir /usr/local/etc/apache22/conf

В нее поместим pma.conf со следующим содержанием:

1
2
3
4
5
6
7
8
Alias /phpmyadmin/ "/usr/web/phpMyAdmin/"
<directory "/usr/web/phpMyAdmin/">
Options none
AllowOverride Limit
Order Allow,Deny
Allow from all
Deny from none
</directory>

И добавим в самый конец httpd.conf следующую строку:

1
Include etc/apache22/conf/*.conf

Далее идем по адресу http://ip_tachki/phpmyadmin и смотрим результат. Вводим логин root и пароль MySQL и попадаем в сам PhpMyAdmin.

Далее настраиваем PhpMyAdmin. Идем в /usr/web/phpMyAdmin, находим там config.inc.php и дописываем в него следующие строки:

1
2
3
4
5
6
7
8
9
$cfg['LeftFrameLight'] = true;
$cfg['LeftFrameDBTree'] = true;
$cfg['LeftFrameDBSeparator'] = '_';
$cfg['LeftFrameTableSeparator'] = '__';
$cfg['LeftFrameTableLevel'] = 1;
$cfg['LeftDisplayLogo'] = false;
$cfg['LeftDisplayServers'] = false;
$cfg['LeftPointerEnable'] = true;
$cfg['blowfish_secret'] = 'test';

Установка ProFTPd

Устанавливаем:

1
cd /usr/ports/ftp/proftpd-mysql && make install clean && rehash

В появившемся диалоге выбираем:

  • MySQL
  • Quota
  • Ratio
  • Rewrite
  • Wrap

По окончании установки рихтуем proftpd.conf до такого состояния:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
ServerName              "DEV.LOCAL FTP Server"
ServerType              standalone
DefaultServer           on
ServerAdmin             root@dev.local
Port                    21
Umask               022
MaxInstances            30
User                    ftp
Group                   ftp
SQLAuthTypes            Plaintext
SQLAuthenticate         users
SQLConnectInfo          DB_NAME@localhost:3306 USER PASSWORD
SQLUserInfo             `users_table` `username` `password` `uid` `gid` \
                        `homedir` `shell`
RequireValidShell off
SQLLogFile      /var/log/proftpd.log
SQLLog          PASS            counter_login
SQLNamedQuery   counter_login   UPDATE "`last_login`=UNIX_TIMESTAMP(), \
                                `login_count`=`login_count`+1 WHERE \
                                `username`='%u'" `users_table`
SQLLog          ERR_PASS        counter_err
SQLNamedQuery   counter_err     UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
                                `err_login_count`=`err_login_count`+1 WHERE \
                                `username`='%U'" `users_table`
SQLLog          RETR,STOR               log_story_transfer
SQLNamedQuery   log_story_transfer      INSERT "'',\
                                        UNIX_TIMESTAMP(),'%u',\
                                        '%f', '%b', '%h', \
                                        '%a', '%m', '%T'" \
                                         `xfer_table`
SQLLOG          ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
                                        log_err_modify
SQLNamedQuery   log_err_modify          INSERT "'',\
                                        UNIX_TIMESTAMP(),\
                                        '%u', '%f', '%h', \
                                        '%a', '%m'" `xfer_errors`
 
UseReverseDNS     off
IdentLookups      off
 
 
 
DefaultRoot            ~
 
<directory ~>
AllowOverwrite          on
<limit Write>
AllowAll
</limit>
<limit READ>
AllowAll
</limit>
</directory>
 
 
<anonymous /usr/home/ftp>
User            ftp
Group           ftp
UserAlias       anonymous ftp
MaxClients      10      "Sorry, max %m users - try again later"
<limit WRITE>
DenyAll
</limit>
</anonymous>

Далее идем в PhpMyAdmin, создаем в нем базу ftp и добавляем следующие таблицы и значения:

CREATE TABLE `users_table` (
`unic_id` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`groupname` varchar(24) NOT NULL,
`uid` int(11) NOT NULL,
`gid` int(11) NOT NULL,
`homedir` varchar(50) NOT NULL,
`shell` varchar(20) NOT NULL,
`last_login` int(15) NOT NULL,
`login_count` int(15) NOT NULL,
`last_err_login` int(15) NOT NULL,
`err_login_count` int(15) NOT NULL,
PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';

1
2
INSERT INTO `users_table` VALUES (1,'admin','123','admin',
1001,1001,'/usr/web','/sbin/nologin',0,0,0,0);
1
2
3
4
5
6
7
8
9
10
CREATE TABLE `xfer_errors` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица ошибок при работе';
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `xfer_table` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `bytes` int(15) NOT NULL default '0',
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  `send_time` varchar(9) NOT NULL default '0',
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица, чё приняли-передали';

Заводим в системе пользователя `ftp` командой `adduser`, после чего создаём файло для логов и даём на него права:

1
2
touch /var/log/proftpd.log
chown ftp:wheel /var/log/proftpd.log

Выставляем права на каталог ftp:

1
chown ftp:ftp /usr/web/ftp

Добавляем proftpd в автозагрузку и запускаем

1
2
echo 'proftpd_enable="YES"' && /etc/rc.conf
service proftpd start

И проверяем работу, заходим на сервер от анонимуса и от пользователя админ.

P.S. Как выдергивать данные из MySQL для статистики – разберетесь сами, не маленькие...

Установка Subversion

Устанавливаем

1
cd /usr/ports/devel/subversion && make config && make install clean && rehash

В появивлемся диалоге выбираем только BDB

После установки создаем директорию репозитория, создаем пользователя svn с группой svn и раздаем права:

1
2
mkdir /usr/web/repositories
chown svn:svn /usr/web/repositories

Далее дописываем в /etc/rc.conf следующие строки:

1
2
3
4
svnserve_enable=”YES”
svnserve_user=”svn”
svnserve_group=”svn”
svnserve_data=”/usr/web/repositories”

Создаем репозиторий нашего проекта:

1
svnadmin create /usr/web/repositories/myproj

Добавляем пользователя в наш репозиторий:

1
2
nano /usr/web/repositories/myproj/conf/passwd
user = password

Добавляем нашему пользователю полные права на репозиторий.

1
nano /usr/web/repositories/myproj/conf/authz
1
2
[/]
user = rw

Запрещаем доступ анонимам. Указываем пути к авторизационным файлам.

1
nano /usr/web/repositories/myproj/conf/svnserve.conf

Добавляем в секции [general]

1
2
3
4
anon-access = none
password-db = passwd
authz-db = authz
realm = My Project

Запускаем демона

1
/usr/local/etc/rc.d/svnserve start

Проверяем работоспособность. Сделав checkout в какую-нибудь папку:

1
svn co svn://ip_tachki/myproj

Установка Trac

Устанавливаем:

1
cd /usr/ports/www/trac && make configure && make && make install clean

В вылезжем окне выбираем все кроме PgSQL

После установки создаем директорию под все наши окружения trac’а (trac environment)

1
mkdir /usr/web/trac

Для работы с MySQL нам понадобится соответствующее расширение – py-MySQLDb:

1
cd /usr/ports/databases/py-MySQLdb && make configure && make install clean && rehash

В вылезжем окне оставляем все по дефолту

После установки создаем через PhpMyAdmin базу trac_myproj b наш тестовый трак:

1
trac-admin /usr/web/trac/myproj initenv

Указываем имя проекта, а в “Database connection string:

1
mysql://DB_USER:DB_PASSWORD@localhost/trac_myproj

Далее отркрываем:

1
nano /usr/web/trac/myproj/conf/trac.ini

И в секции [trac] дописываем:

1
repository_dir = /usr/web/repositories/myproj

После этого делаем:

1
trac-admin /usr/web/trac/myproj repository sync

Заранее дадим админские права нашему пользователю в траке:

1
2
3
trac-admin /usr/web/trac/myproj
permission add user TRAC_ADMIN
quit

Тут же можно будет в дальнейшем создать компоненты, на которые делится ваш проект, и многое другое. Полный список команд можно узнать набрав ? в консоли trac-admin.

Далее ставим mod_wsgi, который бует служить wrapper-ом для работы с trac-ом:

1
cd /usr/ports/www/mod_wsgi && make configure && make && make install

Далее создаем web папку проекта и index.wsgi файл

1
cd /usr/web/www/ && mkdir -p trac/myproj && cd trac/myproj && nano index.wsgi

Содержимое index.wsgi будет таким

1
2
3
4
5
6
7
import site
site.addsitedir(‘/usr/local/lib/python2.6/site-packages’)
import os
os.environ['TRAC_ENV'] = ‘/usr/local/trac/myproj’
os.environ['PYTHON_EGG_CACHE'] = ‘/usr/local/trac/myproj/eggs’
import trac.web.main
application = trac.web.main.dispatch_request

Следом создаем конфиг трака в Apache2, и менно создаем projects.conf  в /usr/local/apache2/conf со следующим содержанием:

1
2
3
4
5
6
7
WSGIScriptAlias /myproj /usr/web/www/trac/myproj/index.wsgi
WSGIPassAuthorization On
<directory /usr/web/www/trac/myproj>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</directory>

И напоследок перезапускаем Apache2 и проверяем по адресу http://ip_tachki/myproj

Устанока Webmin

Ставми:

1
cd /usr/ports/sysutils/webmin && make install clean && rehash

Ставится без проблем.

После устновки запускаем скрипт настройки и отвечаем на вопросы:

1
/usr/local/lib/webmin/setup.sh

После настройки добавляем webmin в автозагрузку:

1
echo ‘webmin_enable="YES">> /etc/rc.conf

И запускаем:

1
/usr/local/etc/rc.d/webmin start

Для проверки работоспособности заходим по адресу https://ip_tachki:10000 и вводим логин и пароль пользователя, которого мы завели на этапе скрипта настройки webmin-a.

В качестве послесловия.

Итак, мы, от начала и до конца настроили сервер разработки, с системой контроля версий SVN, трекером TRAC, связкой FreeBSD + Apache2 + PHP + MySQL , настроили анонимный и авторизованный ftp сервер ProFTPd в связке с MySQL и хранением пользователей в базе, установили панель управления Webmin. Как итог – сервер полностью работоспособен и может использоваться для разработкуи практически любых проектов. На данном этапе из настройки остается заведение соответсвующих пользователей и разграничение их прав, но это уже личное дело каждого.

Пожелания, предложения и просто критику данному посту прошу высказывать  в комментариях.

Popularity: 15% [?]




Похожие записи:

coded by nessus
Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins