Собственной web-сервер для разработки и тестирования приложений (FreeBSD + Apache2 + PHP +MySQL + ProDTPd + SVN + Trac)
Сегодня хочу затронуть тему, которая, как мне кажется, будет интересна всем 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
- 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 и добавляем следующие таблицы и значения:
`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% [?]
Похожие записи:
- Фронтенд и бекенд для www. Apache + Nginx
- Тюнинг Apache2
- Тюнинг nginx
- Настраиваем корпоративный PROXY сервер на базе CentOS5+Squid + SAMS + NCSA Auth
- Эксперимент с Apache2 и mod_pagespeed








