| Представляю вашему вниманию виртуальную машину для VMware с установленной ОС FreeBSD,настроенной связкой Apache + PHP + MySQL и панелью управления Webmin,которая после небольшой настройки в Windows будет являться практически полным аналогом внешнего web-сервера. Для web-разработчика она способна заменить Denwer и дргуие аналогичные сборки, устанавливающиеся непосредственно в Windows.Также подойдет новичку во FreeBSD в качестве работащего учебного примера. Доп. информация: Внимание! В раздаче теперь 2 виртуальные машины: 1) FreeBSD 7.2-RELEASE-p7 (PHP 5.2.12, MySQL 5.1.45, Apache 2.2.14, Webmin 1.470, ...) (файл freebsd7-05042010.7z) 2) FreeBSD 8.0-RELEASE-p2 (PHP 5.3.2, MySQL 5.5.2-m2, Apache 2.2.14, Webmin 1.500, ...) (файл freebsd8-30032010.7z) Рекомендуется качать 1-ю из них. Кому непременно нужно все самое новое - качайте 2-ю, но предварительно прочтите замечания к ней. Замечания ко 2-й машине Во 2-й виртуальной машине нет ZendOptimizer и его невозможно установить. Разработчики ZendOptimizer не планируют дальнейшую поддержку FreeBSD, подробнее тут. По этой же причине, в портах FreeBSD до сих пор не появился PHP 5.3.x. Майнтайнер PHP для FreeBSD Alex Dupre выпустил патч, который заменяет в портах PHP 5.2.x на PHP 5.3.x. Этот патч и был наложен перед сборкой PHP. Также включена тестовая версия MySQL 5.5. Также обратите внимание - IP во 2-й виртуальной машине 192.168.231.8, а жесткий диск 6 GB. Список установленного ПО 1-я виртуальная машина: FreeBSD 7.2-RELEASE-p7 Apache 2.2.14 PHP 5.2.12 (с расширениями и с ZendOptimizer 3.3.0.a) MySQL 5.1.45 (кодировка по умолчанию cp1251) Perl 5.10.0 + pcre 7.9 Python 2.5.4 Ruby 1.8.7 GCC 4.2.1 Webmin 1.470 mc 4.6.2 lynx 2.8.6.5 wget 1.11.4 2-я виртуальная машина: FreeBSD 8.0-RELEASE-p2 Apache 2.2.14 PHP 5.3.2 (с расширениями) MySQL 5.5.2-m2 (кодировка по умолчанию cp1251) Perl 5.10.1 + pcre 8.0 Python 2.6.4 Ruby 1.8.7 GCC 4.2.1 Webmin 1.500 mc 4.7.0 lynx 2.8.7.1 wget 1.11.4 Консоль руссифицирована. Иксов нет. Инструкция по установке Данная инструкция одинаково верна для Windows XP и Windows Vista. Предполагается что на нашем компютере уже установлена VMware Workstation 5.x и выше или VMware Server 1.0.x и выше. Распаковываем куда-нибудь архив с виртуальной машиной (файл freebsd[...].7z). Перед ее запуском необходимо обязательно произвести настройку VMware-сети. Запускаем VMware Workstation/Server, затем в меню Edit -> Virtual Network Settings... во вкладе Summary посмотрите, какой виртуальный адаптер соответствует NAT (у меня это VMnet8). Затем заходим во вкладку Host Virtual Network Mapping. Справа от VMnet8 жмем стрелочку ">" и выбираем пункт Subnet... В окошке IP-адреса необходимо установить 192.168.231.0. Наш виртуальный веб-сервер будет доступен по IP 192.168.231.3. Его доменное имя - web.rf (обратите внимание - rf а не ru, используется несуществующий на данный момент TLD). Чтобы на локальном компьютере при вводе в браузер адрес http://web.rf/ открывался с нашей виртуальной машины, необходимо прописать в файле C:WINDOWS system32 drivers etc hosts строчку: Код: 192.168.231.3 web.rf www.web.rf ftp.web.rf Теперь запускаем виртуальную машину и ждем 1-2 минуты пока загрузится FreeBSD и появится надпись: Код: FreeBSD/i386 (web.rf) (ttyv0) login: На этом этапе пока можно не вводить пароль а просто свернуть (не закрыть) окно с виртуальной машиной и убедиться что она доступна из Windows. Выполняем "Пуск" -> "Все программы" -> "Стандартные" -> "Командная строка". В появившемся окне пишем: Код: ping 192.168.231.3 Смотрим, удачно ли прошел пинг. Если пакеты не передаются, значит сеть настроена неправильно. Если передаются, пишем: Код: ping web.rf Если нет пинга, значит что-то неправильно прописали в hosts, или прописали не туда куда нужно. Если пинг есть - открываем любимый браузер в Windows и набираем в адресной строке адрес web.rf . Должно появиться следующее: Код: Hello world! Webmin phpMyAdmin phpinfo Если появилось - ура, все работает! Теперь вернемся к нашей виртуальной машине. В системе есть 2 пользователя: root (пароль toor) и tim (пароль mit). Пароль к MySQL-серверу для root - lqsym. Зайдя под любым из них, можно также убедиться что пинг идет в обратную сторону: Код: ping -c4 192.168.231.1 и если с локальной машины есть доступ в интернет, то с виртуальной также должны пинговаться и внешние адреса, например: Код: ping -c4 mail.ru Если пинга нет, скорее всего виноваты какие-либо настройки безопасности Windows, файервол и т.д. Осталось обсудить вопрос, каким образом будет происходить обмен файлами между реальной и виртуальной машинами. В Windows открываем любимый FTP-клиент, вводим адрес ftp.web.rf, логин - tim, пароль mit - и подключаемся к виртуальной машине по FTP, попадая в каталог /home/tim/. Путь к файлу index.php, результат которого мы видели в браузере, такой: /home/tim/www/web.rf/index.php. FTP-доступ для root отключен. SSH доступ есть для root и tim, но в данном случае неактуален, т.к. наверное проще развернуть окно виртуальной машины и работать непосредственно там. Для корректного выключения системы (у меня shutdown через VMware просто "отключает питание") необходмо подать команду: Код: shutdown -p now Доступ к виртуальной машине из глобальной сети Предполагается что на данном этапе мы справились с установкой и настройкой веб-сервера и даже залили туда какой-то свой проект. Теперь нам хочется показать его миру. Кроме того у нас есть доступ в интернет и "белый" IP. Способ #1. Проброс портов с помощью 3proxy (проверялось на Windows XP, 7) 1) Открываем на локальном компьютере 80-й порт. В случае с брандмауэром Windows это делается так: "Пуск" -> "Панель управления" -> "Брандмауэер Windows". Переходим во вкладку "Исключения", нажимаем кнопку "Добавить порт...", указываем имя HTTP, номер порта 80, порт TCP и жмем ОК. Если у вас установлен другой файерволл - соответственно открываем этот порт через него. 2) Устанавливаем 3proxy (в раздаче). Создаем папку "C:Program Files3proxy" и распаковываем туда содержимое архива. В папке "C:Program Files3proxybin" создаем файл 3proxy.cfg и пишем в него: Код: log "C:Program Files3proxybin3proxy.log" auth none tcppm 80 192.168.231.3 80 3) Входим в командную строку Windows ("Пуск" -> "Выполнить" -> печатаем "cmd"), переходим в нужную нам директорию: > cd "C:Program Files3proxybin" и выполняем команду: > 3proxy --install После чего 3proxy запустится как служба и будет висеть на 80-м порту всех доступных сетевых интерфейсов, переправляя запросы на 80-й порт IP 192.168.231.3 нашей виртуальной машины. 4) Если что-то не заработало - смотрим лог-файл, вносим исправления. Затем: "Пуск" -> "Панель управления" -> "Администрирование" -> "Службы", находим службу 3proxy и перезапускаем ее. Если у нас статический внешний IP-адрес, то целесообразнее повесить 3proxy только на него а не на все подряд. Поэтому делаем так: Код: log "C:Program Files3proxybin3proxy.log" auth none tcppm -i90.100.110.120 80 192.168.231.3 80 Где 90.100.110.120 - это ваш статический IP-адрес. Если хотим пробросить больше портов (например 21 - это FTP, 22 - SSH, 10000 - Webmin и т.д.), то соответственно конфиг будет такой: Код: log "c:program files3proxybin3proxy.log" auth none tcppm -i90.100.110.120 80 192.168.231.3 80 tcppm -i90.100.110.120 21 192.168.231.3 21 tcppm -i90.100.110.120 22 192.168.231.3 22 tcppm -i90.100.110.120 10000 192.168.231.3 10000 Замечания. 1) Некоторые антивирусы могут сказать что 3proxy - это вирус, или подозрительное ПО, или еще как-то. Игнорируем. Но для надежности конечно качаем только с официального сайта 3proxy.ru 2) Если у вас уже что-то висело на 80-м порту (например Apache под Windows или IIS), то 3proxy туда не повесится. Аналогично для остальных портов. 3) Прежде чем выпустить виртуальную машину в глобальную сеть - обязательно смените все пароли! Логины и пароли shell & ssh: 1) логин root, пароль toor; 2) логин tim, пароль mit ftp: логин tim, пароль mit mysql: логин root, пароль lqsym webmin: логин admin, пароль nimda FAQ Q: Как установить дополнительное ПО? A: Допустим надо установить расширение PHP pdo_mysql. Идем на этот сайт, вводим в поиск pdo_mysql (или лучше php5-pdo_mysql), находим нужный нам пакет и обращаем внимание на эти строчки: Код: To install the port: cd /usr/ports/databases/php5-pdo_mysql/ && make install clean To add the package: pkg_add -r php5-pdo_mysql т.е. надо выполнить либо 1-ю либо 2-ю команду. В 1-м случае pdo_mysql будет собираться из исходников, во 2-м скачается уже откомпилированный пакет. Установка готвого пакета (2-й вариант) намного быстрее, но: - скачается не самая свежая версия; - может возникнуть несовместимость с уже установленными пакетами; - в качестве зависимостей могут скачаться пакеты, конфликтующие с уже установленными пакетами. В нашем примере pdo_mysql может проигнорировать что у нас уже установлена mysql 5.1, начнет качать себе mysql 5.0, но система не даст его поставить - установка завершится ошибкой. Поэтому ставим по 1-му варианту, со сборкой из исходников. После установки расширений PHP необходимо перезапустить Apache: Код: /usr/local/etc/rc.d/apache22 restart Q: Можно ли перенести сборку на реальное железо? A: Да. Для этого необходимо: 1) Перенести раздел с виртуального диска на реальный любым способом (Acronis, Ghost, Clonezilla, и т.д.). 2) Установить загрузчик. 3) Подправить файл /etc/fstab, заменив ad0s1 на код реального дискового устройства. Подробнее тут. 4) Перенастроить сеть на другой IP, шлюз и т.д. (файлы /etc/rc.conf, /etc/hosts, /usr/local/etc/apache22/httpd.conf и т.д.) Для п. 2 и 3 поможет Frenzy. Q: Как увеличить дисковое пространство? A: Например можно перенести содержимое каталога /usr на другой диск/раздел и подправить /etc/fstab. Если внутри VMware - то создаем еще один виртуальный диск. Если переносили на реальное железо и там на диске осталось свободное место - то создаем еще один раздел на нем. Также смотрите эту статью. Q: Чем были упакованы файлы виртуальной машины? Их размер 4 Гб, а в архиве всего 250 Мб... A: Использовался архиватор 7-Zip со стандартными настройками. Стоит заметить что 4 Гб - это pre-allocated образ жесткого диска, созданный VMware. Реальной информации на нем всего 1.3 Гб, остальное - нули, которые в архивном виде практически ничего не весят. Q: почему-то по фтп папки не удаляются, а по ssh без проблем. Туплу? A: посмотри, кто владелец папки и какие права на ней стоят. и под каким пользователем ты сейчас (если вдруг зашел под рутом, то ему море по колено). возможные причины: 1) не хватает прав на удаление; 2) на папку установлены флаги, запрещающие ее удаление; 3) в папке есть файлы с нелатинскими именами, которые в текущей кодировке не видятся/неверно читаются; 4) глючит FTP-клиент; ... и т.д. Q: спасибо большое, отличная вещь есть еще такой вопрос. Можно ли виртуалку как-то заставить повернутся лицом в "инет". т.е. как сделать так, чтобы сайты были доступны и из внешки. наверное лучше всего, чтобы в нет первой выходила виртуалка, при этом сама "дозванивалась" под бриджем, чтобы не заморачиватся с портами, и уже с неё на реальную машину тоже получать инет, уже для работы. Т.е. мини-вариант уже не тестового, а реального (инетовского) вебсервера.. но что-то пробую - не получается.. A: у меня получилось... мини-инструкция: 1) в настройках виртуальной машины меняем NAT на Bridged; 2) в /etc/rc.conf добавляем строчку gateway_enable="YES", а также меняем IP-адрес у ifconfig_le0, например на 192.168.0.123; 3) в /etc/resolv.conf меняем IP-адрес неймсервера на любой доступный внешний (можно спросить у провайдера); 4) в винде в настройках TCP/IP физической сетевой карты в качестве шлюза указываем IP из пункта 2, а в качестве DNS - IP из пункта 3. 5) если в компьютере несколько сетевых карт, в настройках VMware явно указываем ту, которую хотим использовать. Q: для полной виртуализаци как на хостинге нехватает nginx , eaccelerator, bind A: bind есть, он входит в штатное ПО FreeBSD, только назывется named: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handb...network-dns.html nginx и eaccelerator полезны когда на сервере большая нагрузка. а тут всего один юзер будет ходить и опять же никто не мешает доставить их вручную. Q:У меня комп подключен к интернету через ADSL модем, который подключён к сетевой карте. При подключении к интернету я получаю внешний статический IP от провайдера, пусть будет 212.25.25.25, подключаюсь к интернету на реальной машине (вообще как лучше? на виртуалке подключатсья к инету? или на реальной машине к инету подключаться ,а виртуальную бриджем коннектит к ней) Подскажите, как сделать доступными все виртуальные Web серверы на виртуальной машине из интернета? Мне надо сделать всё то что написано в этих пяти пунктах? Есла да, то куда вписывать адрес 212.25.25.25? В первый пункт? И какой Ip указывать в качестве шлюза в 4 пункте ? опять 212.25.25.25 чтоли? A: 1. Если модем включен в режиме "Bridge" - все делать по инструкции irr2 2. Если модем включен в режиме "Router" - настраивать форвардинг портов из WAN в LAN; вот инструкции к модемам: http://www.portforward.com/english/applications/por...or/Utorindex.htm Q: Извиняюсь если глупый вопрос запускается все нормально, но когда надо вводить логин и пароль проблема: в строке логин ввожу например root, а в строке пасворд нечего немогу ввести. В чем проблема? A: пароль вводится но не отображается на экране Q: А где находятся конфиги апача A: /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/mime.types Q: Кхм, вопрос, может быть, глупый, но все же. Если снять образ с виртуальной машины при помощи, скажем, Acronis True Image и восстановить его на реальное железо, то система будет работать или нет? A: да, будет. надо подправить /etc/fstab и установить загрузчик. для этого можно воспользоваться LiveCD с FreeBSD, например livefs ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.2/ или Frenzy http://frenzy.org.ua/ru/ ну и потом, само собой, конфиги под свою сеть /etc/rc.conf /etc/resolv.conf /etc/hosts /usr/local/etc/apache22/httpd.conf и т.д. кстати, если решили сделать виртуальную машину доступной из глобальной сети - обязательно поменяйте все пароли! Q: Все вроде бы работает, но как переразбить диск (он 40 Гбайт), т.е. подмонтировать к FreeBSD свободное пространство в размере 36 Гбайт? A: можно например создать на диске еще один слайс на все оставшееся место, и сделать в нем 2 раздела, скажем 10 и 25 гб. в 1-й перекинуть каталог /usr, во второй /home. тогда будет место и для установки KDE4, и для личных файлов . в общем, все зависит от потребностей и фантазии. Q: В приведенной сборке есть один косяк - из консоли не работает php, только как модуль апача. Причиной тому Zend Optimizer? A:а по-подробней можно? желательно с примерами скриптов, которые не работают из консоли. о том как заставить php работать в режиме не модуля апача, а например CGI. в /usr/local/etc/apache22/httpd.conf убираем строчки Код: AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps добавляем Код: Alias /cgi-bin/ /home/tim/www/web.rf/cgi-bin/ AddHandler php-bin .php .php3 .php4 .php5 .phtml Action php-bin /cgi-bin/php создаем папку /home/tim/www/web.rf/cgi-bin, а в ней файл php с содержанием Код: #!/usr/local/bin/php-cgi перезапускаем апач, открываем http://web.rf/phpinfo.php и видим там что Server API = CGI/FastCGI. вот пожалуйста, запустили php не как модуль апача. все работает. какие проблемы? Q: я так понимаю что это без графического интерфейса??? - извините за оффтоп!! A: графического интерфейса нет. есть веб-панель Webmin. но вообще не рекомендую ей пользоваться, как и любой другой панелью. Q: Может сделать страницу, где будет подробно описано, как ты собирал эту серверную машину в подробностях. Рад буду помочь этому проекту. Люди нуждаться в подобных инструкциях тем более, если статья будет обновляться по мере выхода новых версий. Так в сети много всего, даже очень, но согласитесь, новичок или даже средний пользователь тереться, что ему и как лучше сделать, а вы тут представляете почти идеальную сборку, за что вам тут офигеный респект. Так же в сети много старого материала, который уже во многих случаях теряет свою пригодность. Так же можно включить и видео уроки. Я готов полностью посветить все свободное рабочее время, а его бывает очень много, на подержание и развития проекта. Жду вашего ответа. Ты не думал еще в эту сборку добавить почтовый сервер?!?! A: я хотел видеоролик сделать, но так пока и не сделал. а по поводу страницы - вот есть отличный сайт: http://www.lissyara.su/?id=1007 почтовый сервер (smtp) - там есть exim, и еще sendmail (отключен). почта с локалхоста должна отправляться нормально. в принципе могу сделать авторизацию и возможность отправлять не с локалхоста. pop3/imap сервер тоже можно настроить, только от кого почту забирать? от крона только, да периодические отчеты : ) для настоящего почтового сервера уже нужен реальный IP и домен. Q: граббер для дле не работает...выдает белую страницу, подскажите в чем проблема? и еще вопрос, как установить GnuPG? A: включить вывод ошибок и посмотреть, может не хватает какого-то расширения PHP. gnupg установить # cd /usr/ports/security/gnupg/ && make install clean либо # pkg_add -r gnupg http://www.freshports.org/security/gnupg/ Q: PHP Does not support FTP Library! - очень плохо A: http://www.freshports.org/ftp/php5-ftp/ To install the port: cd /usr/ports/ftp/php5-ftp/ && make install clean To add the package: pkg_add -r php5-ftp и будет хорошо Q: А как настроить DynDNS? A: http://www.lissyara.su/?id=1601 Год выпуска: 2010 Платформа: i386 Совместимость с Vista: полная Язык интерфейса: английский + русский Таблэтка: Не требуется Размер: 364.05 Mb |