Web server linux iso

Домашний сервер для веб-разработчика: настройка Ubuntu 9.04

  1. Вступление;
  2. Железо;
  3. Готовим флешку;
  4. Установка Ubuntu 9.04, стартовая настройка;
  5. Домашняя SAMBA;
  6. Apache, PHP, MySQL, phpMyAdmin;
  7. (будет дополнено 23.09.2009) SVN (Subversion);
  8. (будет дополнено 23.09.2009) VSFTPD или FTP по-человечески;

Для чего нужен домашний сервер описывать не буду. Это каждый для себя решает сам.
Мои требования к ДС были такие:

  • Железо – недорогое, небольшие размеры, бесшумность;
  • Операционная система – Ubuntu 9.04 Desktop;
  • Стандартный набор веб-разработчика (LAMP) + SVN;
  • Расшаренные ресурсы под компьютеры в семье;
  • Для предоставления доступа друзьям – FTP.

Облазив все доступные ссылки, я не нашел необходимой мне комплексной статьи руководства, для начинающего ubunt-овода, да и просто полной статьи. Поэтому по частям и собиралось данное руководство, так называемый «Step By Step Install» для себя. По завершению, решил попробовать описать чистую установку и настройку Ubuntu 9.04 с нуля, все в одной статье (а развитие, вскоре, будет в блоге).

Еще один момент. Домашний сервер подразумевает под собой наличие выделенного канала, и желательно еще и с выделенным IP-адресом, хотя кое-кому вполне подойдет использование DynDNS, но я предпочел оплату 10 грн/мес (1.2$) своему провайдеру, поэтому вопрос DynDNS в этой статье, пока что, не рассматривается. Наличие неплохой скорости – 4 Мбит/с на мир и 100Мбит/с на Украину (UA-IX), дает возможности использовать сервер в пределах Украины на полную катушку.

2. Железо.

Предупреждение:
Ваше железо может быть любым, единственное что Вы должны быть уверенны в том что есть доступ к Internet, что железо поддерживается в Ubuntu. Т.е. если у Вас какая-то экстра-гипер-модификация ARM не жалуйтесь что у Вас что-то не получается. Я лично предпочел купить для этого машинку отдельную.

По выбору железяки для ДС, я уже отписывался отдельной статьей (http://habrahabr.ru/blogs/hardware/68805/). Кому лень читать, то это:
Материнская плата – Zotac IONITX-A (Intel Atom N330);
Оперативка – 2 Gb;
Винчестер – Seagate-Maxtor DiamondMax 23 500Gb (7200rpm, 16Mb cache, SATA II, 3.5”);
Корпус – CFI A8989;
Пропеллер (на выдув) – Zalman Ultra Quiet 80мм.
Из дополнительного, была приобретена отдельная флешка на 1Гб, для того чтобы не играться с CD/DVD приводами, а производить установку напрямую с флешки.

PS: Прошу не указывать на то, что это винчестер Seagate-Maxtor, WD-шка конечно же лучше, но, к сожалению, у нас в городе они бесследно пропали на момент покупки, и пришлось взять временно хотя бы такой.

Wi-Fi на ДС – можно выкинуть сразу же. Оно не имеет никакого абсолютно смысла. 54Мбит выдадут Вам при 100% уровне сигнала всего-лишь 6.75Мбайт/с, а при делении канала на торренты + домашняя сеть (в которой вполне реальная ситуация – это просмотр видеофильмов и прослушивание музыки с сервера) реальная скорость – 1.5-2Мбайт/с, что есть – неприемлимым. Мой выбор – так как плата Zotac IONITX-A держит 1Gb Ethernet-порт, то будет прямое включение в роутер по Ethernet. Wi-Fi роутер был сменен с D-link DIR-615+ на D-Link DIR-655, по причине того что у последнего есть поддержка 1Gb WAN + 4 х 1Gb LAN Ethernet-порта. Вместе дало возможность достигнуть максимальной скорости передачи информации. Для усиления покрытия Wi-Fi, для домашних ноутбуков и wi-fi устройств, были использованы две антенны D-Link ANT-24 0070C (7dbi, вместо штатных 2dbi).

Читайте также:  Создание команды консоли windows

Роутер настроен на раздачу Интернета по DHCP (не хотелось морочится со статикой, да и не вижу смысла особого) и сервер естественно статикой, а также на роутере настроен проброс портов на внутренний фиксированный IP 192.168.0.66:

  • SSH: 44000;
  • HTTP/HTTPS: 80/443
  • FTP: 21

PS: Пожалуйста, я не хочу холиварить по возможности установки Wi-Fi 802.11n, замена железа на 802.11n на всех устройствах, по-моему, будет просто лишней тратой денег. Со временем это будет обязательно, но пока что для домашнего сервера я выбрал – Ethernet. Считаете что я не прав? Вам и карты в руки. 🙂

3. Готовим флешку.

4. Установка Ubuntu 9.04, стартовая настройка

1. Наличие интернета при загрузке с LiveCD.
Зачем это надо? Я выбираю при установке язык — «Русский» (кстати, переключение по Alt+Shift, по-умолчанию, если потребуется). Убунту самостоятельно еще при установке подтягивает все необходимые файлы локализации. Играться в дальнейшем с их выискиванием я не пробовал и не имел ни малейшего желания. Поэтому беру за факт – подключение к Интернет должно быть при установке.
2. Разбивка жесткого диска.
Сколько документации было перерыто по этому вопросу, ведь хотелось всего-то на всего понять, как разбить диск в линуксе, чтобы, при дальнейших переустановках не потерять всю информацию на основном разделе.

Принято было такое решение, 500 Гб винт был разбит на:
Первичный раздел -> RaiserFS -> 300Mb -> «/boot»
Первичный раздел -> swap -> 4096Mb
Первичный раздел -> Ext3 -> 40000Mb -> «/»
Первичный раздел -> Ext3 -> …450 Гб т.е. все остальное место… -> «/home».

Все остальные моменты, например выбор языка инсталлятора и выбор имени и пароля, оставим как «домашнее задание». Заранее напишу, что название компьютера я поставил «homeserver» и логин администратора «odmin», в дальнейшем будем предполагать, что у Вас оно такое же.

Все после установки – вытягиваем флешку (чтобы 10 раз с неё не грузится) и ребут.
Voila! Чистая система запущена.

Теперь маленький финт ушами. Я привык к русскому меню в Ubuntu, и хочу использовать русскую локализацию системы, но меня жутчайше бесят названия папок типа «Рабочий стол», «Видео», да и вообще русские названия папок, хочу чтобы были «Desktop», «Video», «Documents». Как это по-другому делать не знаю, поэтому описываю то, как делаю, чтобы избавиться от этой проблемы. Топаем в пункт Система -> Администрирование -> Локализация. Попросит обновить пакеты локализации — обновляемся (повторяюсь – это пошаговое руководство для ЧИСТОЙ установки с нуля). После этого выбираем язык English (USA) в меню и в логине – давим кнопку «ОК». В процессе вероятнее всего выскочит на фоне окошко «Обновления системы» — пока его трогать не будем, ибо идем пошагово. Нажимаем «CTRL + ALT + F1» – переход в консоль. Логинимся, вводим команду:

Этим мы перезагружаем Gnome Desktop Manager, оно же gdm. Логинимся в графическом режиме (если не перекинуло, давим CTRL + ALT + F7). После загрузки система выдаст окно с вопросом о смене имен под буржуйскую локализацию. Ставим галочку – «Не спрашивать больше» и выбираем «Update names» (это переименование папок). Топаем опять в пункт Локализации (System -> Administration -> Localization) и возвращаем «Русский» в меню и в логин. После этого делаем снова рестарт gdm-а.

Читайте также:  Эмуляция микрофона windows 10

На фоне печально все-таки пытается допроситься обновления система. Теперь удовлетворим её. Если она устала клянчить и не показала окно, то вызовем её из пункта Система -> Администрирование -> Обновление системы. Нажимаем «Проверить обновления» и после этого «Установить обновления». Система радостно захрюкает Интернетом, а мы спокойно можем, в зависимости от размера канала Интернет, пойти перекурить. На канале 4 Мбит/сек у меня, обновления на 157 мегабайт скачиваются, примерно, 2-3 минуты и после этого идет установка пакетов, еще минуты 4… плюс-минус, итого, где-то, предположим, 10 минут. Что равно – чашке кофе, заваренного самостоятельно в турке + сигарета. Возвращаемся – видим радостное сообщение, что система полностью удовлетворена и просит перезагрузиться, в чем мы ей и помогаем. Еще один этап пройден.

Поехали дальше – а дальше надо осознавать что у нас все-таки «Cервер», а значит негоже сидеть за графическим экраном, а сидеть надо удаленно… например в другой комнате и с ноутбука. Для этого нам нужен SSH, но какой SSH без Midnight Commander’a. Поехали в Терминал (для совсем незнающих, Терминал вызывается так: Программы –> Стандартные -> Терминал).

# Зачищаемся после обновления
sudo apt-get autoremove
# Устанавливаем SSH, MC
sudo apt-get install ssh mc

Все. С понтом, микро-защита от роботов-идиотов – есть.

На этом предварительная установка завершена. Отключаем монитор от сервера, сервер запихиваем под стол, а еще лучше завалить какими-то книжками, для создания полной атмосферы удаленности и невозможности доступа к серверу.

PS: В этом разделе я, правда, еще устанавливаю драйвера для NVidia GeForce, для моей материнской платы, но их установку опишу немного позднее.

5. Домашняя SAMBA

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

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

  • /home
  • /home/samba
  • /home/samba/public – общая папка, типа мусорки;
  • /home/samba/private_father – приватная папка отца;
  • /home/samba/private_wife – приватная папка супруги;
  • /home/samba/private_my – приватное моё хранилище;
  • /home/samba/video – папка с видео;
  • /home/samba/music – папка с музыкой.

Учитывая, что папка /home у нас огромная, то туда элементарно будет складироваться вообще все. При переустановке её просто не форматируем. В дальнейшем добавим папки на внешних дисках.

Вернемся к установке и настройке samba.

# Устанавливаем
sudo apt-get install samba samba-tools
# Создаем главную папку (я говорил, что рассматриваем чистую систему)
sudo mkdir /home/samba
# Прикрепляем пользователя
sudo smbpasswd -a odmin
# Активируем пользователя:
# (я не все действия понимаю, знаю только, что они работают)
sudo smbpasswd -e odmin
# Создаем и открываем для правки файл /etc/samba/smbusers
# (тоже непонимаю зачем, но надо)
sudo mcedit /etc/samba/smbusers

# Содержимое файла /etc/samba/smbusers
#
odmin = Admin

# Создаем папку для расшаривания
sudo mkdir /home/samba/public
# Регистрируем эту папку в самбе, где:
# Syntax: net usershare share_name /path/to/share [acl] [ ]
# Public – это название, под которым будет видна папка в Windows;
# /home/samba/public – это путь к нашей папке;
# Everyone:F – это некий страшный acl, назначение его я тоже не понимаю,
# но насколько понимаю именно в эту сторону необходимо ковырять
# для того, чтобы сделать доступ определенному юзеру к папке.
# guest_ok=y – это предоставление доступа всем «гостям».
sudo net usershare add Public /home/samba/public Everyone:F guest_ok=y

На этом все мои познания в samba заканчиваются, но этого достаточно для внутреннего расшаривания папки и направления куда копать.

Читайте также:  Не вижу компонентов windows

PS: Я приношу свои извинения в случае если в этих решениях настоящие Гуру увидят проблемы безопасности, а также другие какие-либо проблемы. Я не администратор – я веб-разработчик, мне нужна домашняя система для тестирования. Я прошу помощи для создания скрипта автоматической настройки расшаренных папок. Если у кого-то проявится желание помочь сделать таковой, я могу скинуть что я бы хотел от него получить. Либо за него могу заплатить, в пределах разумного, но могу. В любом случае, прошу написать в личку номер ICQ или Skype как с Вами связаться и думаю решим этот вопрос. Естественно скрипт и Ваше Имя сразу же будет приложено к статье здесь и при перепечатке.

6. Установка Apache, MySQL, PHP и phpMyAdmin

Ну здесь все совсем просто.
Структура директорий, которую я выбрал опять же из всех своих требований удобности к расположению папок.

  • /home
  • /home/sites – папка в которой складируется все что касается веб-разработки;
  • /home/sites/www – папка дефолтного сайта.

    Консоль и поехали:

# Создаем папку для нашего сайта
sudo mkdir /home/sites
sudo mkdir /home/sites/www

# Меняем права доступа для удобства доступа с нашего аккаунта odmin
sudo chown -R odmin:www-data /home/sites/www
# Устанавливаем MySQL
# По окончанию скачивания, MySQL попросит ввести ваш root-пароль доступа
# к MySQL, вводите его сразу же здесь, зачем вызывать его смену потом?
sudo apt-get install mysql-server
# Устанавливаем Apache 2.2.xx и PHP 5.2.x
# Система сама выберет последние версии в официальном репозитарии,
# для других пока что я не заморачивался
sudo apt-get install apache2 php5 php5-mysql
# И упаковку модулей к PHP
sudo apt-get install php5-curl php5-adodb php5-gd php5-ffmpeg php5-imagick php5-memcache php5-xmlrpc php5-xsl
# Устанавливаем phpMyAdmin
sudo apt-get install phpmyadmin
# Лично я использую при работе еще и Image Magick, поэтому
sudo apt-get install imagemagick

# Содержимое файла /etc/apache2/httpd.conf
#
ServerName localhost

# Содержимое файла /etc/apache2/sites-available/default
#

ServerAdmin webmaster@localhost

DocumentRoot /home/sites/www

Options FollowSymLinks
AllowOverride All

Options -Indexes FollowSymLinks
ErrorDocument 404 /404.php
AddDefaultCharset UTF-8
AllowOverride All
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ «/usr/share/doc/»

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

Источник

Оцените статью