Web-сервер на Debian GNU/Linux для начинающих

    Web-сервер на Debian GNU/Linux для начинающих» для начинающих
    Руководство рассчитано на пользователей, которые собираются впервые использовать Debian GNU/Linux после работы с MS Windows.

    Установка и использование web-сервера на Debian GNU/Linux, рассмотренное в данном руководстве, ориентированы на разработчиков веб-приложений и сайтов, использующие домашний компьютер в качестве платформы для разработки.

    «Web-сервер на Debian GNU/Linux для начинающих» содержит в себе четыре главы:

    * Часть 1: установка и настройка Debian GNU/Linux;
    * Часть 2. Установка и настройка web-сервера;
    * Часть 3. Установка и настройка Drupal;
    * Часть 4. Установка и работа с Drush.



    Подробное содержание:



        * О Debian GNU/Linux
        * О руководстве
        * Начало
        * Часть 1: установка и настройка Debian GNU/Linux
              o 1.1 Графическая установка системы
              o 1.2 Настройка системы
                    + 1.2.1 Базовая настройка sudo
                    + 1.2.2 Установка программ
                          # 1.2.2.1 Apt
                          # 1.2.2.2 Synaptic
                          # 1.2.2.3 Репозитории
                          # 1.2.2.4 Установка deb-пакетов
                    + 1.2.3 Установка и базовая настройка Samba
                    + 1.2.4 Некоторые полезные команды
        * Часть 2. Установка и настройка web-сервера
              o 2.1 Установка Apache2, PHP5, MySQL
              o 2.2 Установка и настройка phpMyAdmin
              o 2.3 Настройка PHP
              o 2.4 Настройка Apache2 и виртуальных хостов
              o 2.5 Запуск виртуальных хостов от пользователя
              o 2.6 Дополнения
                    + 2.6.1 eAccelerator
                    + 2.6.2 Компилируем PHP5 с GD
        * Часть 3. Установка и настройка Drupal
              o 3.1 Установка Drupal
              o 3.2 Мультисайтинг
        * Часть 4. Установка и работа с Drush
        * Руководство в формате PDF
        * Благодарности
        * Полезные ссылки


    Автор: Станислав Езерский

    Онлайн-версия

    Благодарю Александра (aka Axel) Графова и Даниэля (aka Dan) Ишмаева за внесённые дополнения и предложения по содержанию.

    Приятного и полезного чтения!
    Поделиться публикацией
    Комментарии 73
      +2
      Не смотря на InDesign, вёрстка ужасна. Подписей под рисунками нет, только надпись, двоеточие, рисунок. Некоторые рисунки уехали на следующую страницу после надписи. Библиография («Пригодилось») вообще не читабельна, даже просто с маркерами списка смотрелось бы лучше (я даже не говорю про ГОСТ). В командах и листинках «программистские» одинарные и двойные кавычки заменены на лапки, что мешает копипасту. Листинги набраны пропорциональным шрифтом. А если уж говорить про кавычки, то везде использованы разные — где-то лапки, где-то ёлочки.

      Про команды отдельная история. Судя по всему, автор не все команды сам пробовал набирать. Пруф (стр. 23):
      $ sudo echo '<?php phpinfo(); ?>' > /var/www/phpinfo.php
      bash: /var/www/phpinfo.php: Отказано в доступе


      Но в общем руководство и не претендует, сразу написано «научимся работать в терминале, выучим несколько полезных команд», что следует понимать буквально — научимся набивать заученные команды в терминал. Объяснения команд кроме однострочных описаний cd, ls, mv, cp и копипаста из Википедии про sudo нет.
        +2
        InDesign вёрстку не сделает, LaTeX — не сломает. ;)
          0
          немного не понял, это прямо в книге написано про «отказано в доступе»?
            0
            в следующем камменте увидел, что это все-таки твоя проблема с правами на каталог /var/www
              –1
              Моя проблема? Шутишь? Это во-первых, дефолтные права — раз. А во-вторых, это полнейшее непонимание того, как работает шелл и какая часть команды работает под sudo, а какая запускается исходным шеллом. Сам-то хоть понимаешь это?
                0
                я начал писать первый каммент только из-за того, что это очивидная фишка, когда дескриптор направляет данные после sudo в файл, который имеет не доступные права, что вызывает ошибку нехватки прав. поэтому мне было не понятно почему ты так возмутился из-за этой ошибки, мне показалось, что это ты этого не понимаешь :) а дефолтные права изменяются исходя из задач, практически в любых случаях
                  0
                  Зачем тогда нужно sudo в этой команде?

                  Дефолтные права не изменяются. С дефолтными правами система устанавливается.
                    0
                    да sudo не нужен тут
                    про права КО? дефолтные права изменяются если это нужно мне :)
            +3
            Не смотря на InDesign, вёрстка ужасна. Подписей под рисунками нет, только надпись, двоеточие, рисунок. Некоторые рисунки уехали на следующую страницу после надписи. Библиография («Пригодилось») вообще не читабельна, даже просто с маркерами списка смотрелось бы лучше (я даже не говорю про ГОСТ). В командах и листинках «программистские» одинарные и двойные кавычки заменены на лапки, что мешает копипасту. Листинги набраны пропорциональным шрифтом. А если уж говорить про кавычки, то везде использованы разные — где-то лапки, где-то ёлочки.
            Благодарю, учту.

            Про команды отдельная история. Судя по всему, автор не все команды сам пробовал набирать. Пруф (стр. 23):
            $ sudo echo '<?php phpinfo(); ?>' > /var/www/phpinfo.php
            bash: /var/www/phpinfo.php: Отказано в доступе


            Всё, что написано в руководстве было протестировано, я бы даже сказал, мануал писался с параллельно выполняемыми действиям (собственно есть и скриншоты).



            Но в общем руководство и не претендует, сразу написано «научимся работать в терминале, выучим несколько полезных команд», что следует понимать буквально — научимся набивать заученные команды в терминал. Объяснения команд кроме однострочных описаний cd, ls, mv, cp и копипаста из Википедии про sudo нет.
            Правильно, это не полноценное описание работы в ОС, не учебник — это большой шаг к изучению Linux. Официальный мануал указан: debian.org.

            Перед тем, как выкладывать руководство (к действиям), я проверил написанное на 4 пользователях, ранее в глаза не видевших Linux и всю жизнь работающих на Windows + Denver. Вопрос я услышал от одного из испытуемых: «каким делать своп-раздел?». Более вопросов не было. Нареканий по написанному не было.
            • НЛО прилетело и опубликовало эту надпись здесь
                –1
                Ничуть, мы ручками все ставить привыкли. А вот Котерову, да, обидно.
                +2
                Всё, что написано в руководстве было протестировано, я бы даже сказал, мануал писался с параллельно выполняемыми действиям (собственно есть и скриншоты).

                Если у вас работает эта команда, значит вы изменили владельца /var/www на своего пользователя или установили права 0777 на этот каталог. Под sudo в данной команде работает только echo, перенаправление в файл выполняет ваш шелл, работающий от имени пользователя.

                Попробуйте так:
                sudo echo 'hello' > /bin/ZZZ
                (я надеюсь, на /bin вы права не меняли)
                  0
                  Если у вас работает эта команда, значит вы изменили владельца /var/www на своего пользователя
                  Да, именно так
                +7
                Я не пойму зачем книга. apt-get install… && wget drupal && чтение комментариев в конфиге апача. Все!
                  –4
                  21 век на дворе! Конфиги руками открывать и тем более править — анахронизм! :)
                    0
                    Возвращайтесь когда будут конструктивные предложения, а пока придётся пожить в 20-ом веке.
                      +1
                      Apache-GUI — достаточно конструктивно :) И это только первая строчка выдачи из Google по запросу «Apache configuration GUI» :)

                      Вообще программа, сделанная не только для себя любимого, требующая правки конфигов руками — это просто варварство по нынешним временам.
                        –1
                        и чем же чек-боксы отличаются от правки текстового конфига? ты может консоль тоже анахроизмом считаешь? :)
                          0
                          1. Пока мы с вами лично не знакомы и за одним столом не сидели — на «вы», пожалуйста;

                          2. Как проектировщик ПО, постоянно наблюдающий мучения пользователей с консолью и конфигами, я считаю, что чем меньше человек вынужден к консоли и конфигам обращаться — тем лучше.
                            0
                            1. мне не нравится говорить на вы с теми, кто априори не заслуживает моего уважения :)
                            2. пользователи не должны обращатся с конфигами и консолью, впринципе. юзерское ПО должно быть с минимальным набором настроек, а специально обученые люди считают консоль и текстовый конфиг лучшим вариантом конфигурирования и поддержки электронновычеслительных систем
                      +1
                      Прошу прощения. Смайлик не заметил сразу. :)
                        0
                        Да нет проблем :)

                        Я вопросами взаимодействия с пользователями достаточно активно занимаюсь и очень наглядно вижу, что бывает, если предложить править конфиги руками. Лучше так не делать :)
                          +2
                          И все же правка конфигов руками — тру. Хотя бы знаешь что ты поправил после чего система намертво упала. И знаешь как это вернуть в рабочее состояние. А когда все падает после неправильной галочки, и возвращаться не хочет даже после того какее вернул в исходное состояние — вот это ахтунг
                            0
                            Согласитесь, это вопрос не способа правки конфигов, а отладки софта и его устойчивости к некорректным действиям :)

                            Хорошо отладить софт проще, чем устранить ошибки со стороны человека. А чем больше выполняется действий (включая количество набираемых символов), тем вероятность ошибки больше.
                              +3
                              Смотря что за софт. Это хорошо если у него 3 настройки. Чем их больше, тем сложнее сделать адекватный гуй. В памяти всплывает yast времен 10й SUSE, который творил с конфигами что-то нетривиальное, чуть ли не пересохраняя весь /etc после правки какого-нибудь айпишника. К тому же текстовые конфиги удобно редактировать, бэкапить, переносить, сравнивать версии. Да, гуй временами облегчает задачу настройки, но иметь дело с конфигом как с куском информации проще когда он тупо в тексте. Другу понадобился пример конфига самбы? Кинул в аську и никаких проблем. Нужно сохранить на память для настройки сервера через полгода-год? Взял и сохранил. С гуем, если не предусмотрен экспорт (а он не так часто встречается, не говоря уже о выборочном экспорте), придется возиться со скриншотами (которые могут не соответствовать например новой версии софта), или описывать словами — в любом случае геморнее. Я бы сказал что гуй в настройке удобен скорее для создания типового шаблона конфига, который бы пришлось минимально править под себя, нежели для конфигурации с нуля. Или же в случае каких-то гуеориентированных и требующих частого вмешательства вещей, типа гуя к администрированию какой-нибудь AD. В текстовом виде это наверное был бы АД ). Но если говорить об единичном сервисе с одним-двумя cfg, то текстовый редактор для меня все же вне конкуренции =)
                            0
                            Я активно взаимодействую с софтом и наглядно вижу что бывает когда мня *заставляют* конфигурировать через гуй. У обоих способов есть преимущества и недостатки и лучше всего предусмотреть оба варианта. т.е. в программе кроме графической конфигурилки где-то должна быть кнопка «перечитать конфиг», а сам конфиг должен быть в человекочитаемом формате.
                              0
                              А для демонов всё проще. Достаточно следить (каким-нибудь inotify) за изменениями конфига и написать графическую утилиту для его редактирования. Но сам конфиг всё-равно должен быть в человекочитаемом формате.
                      +3
                      не совсем понятно для каких целей нужен drupal на локальном сервере.
                      и не хватает главы про настройку iptables
                        0
                        С Drush любовь у меня не складывалась, может сейчас получится :). Добавьте главу про Git или SVN для бэкапа и восстановления сайта, многим начинающим она полезна будет.
                          0
                          Думаю, что-нибудь будет.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  –1
                                  там же написано, что книга для тех кто кроме винды не видел никогда ничего, имхо критика не обоснована. имхо для новичка в линуксе, без базовых знаний шелла, прямой мануал с пояснениями это вполне востребованно, а в виде книги это или поста на хабре уже дело вкуса
                            • НЛО прилетело и опубликовало эту надпись здесь
                                +7
                                Вот почему при таком колличестве знающих дебьянщиков в инете до сих пор нет одного внятного руководства по настройке 100% рабочего и секьюрного веб-сервера?
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Вообще-то под «веб-сервер» имелось ввиду хотя бы LAMP, а не Apache. Ну и само собой разумеется, что «секьюрность» не ограничивается одной только установкой mod-ssl.

                                    Хотелось бы видеть что-то вроде Apache + nginx + MySQL/PostgreSQL + PHP-fpm
                                    Но за линк конечно спасибо.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    То есть правильно я Вам понимаю, у Вас описан способ «секьюрной» настройки apache2 c mod_php5?
                                      0
                                      У меня ничего не опимано :) Я только вопросы задавал. Вы наверное комментарием ошиблись.
                                  +7
                                  Легким движением ./configure && make && make install нормальный дистрибутив превращается в слакварь :) © bash.org.ru/quote/505
                                    +3
                                    1. Зачем в дебиане качать .deb пакеты? Есть же шикарный репозиторий.
                                    2. Про самбу лучше бы вообще не писали, там много тонкостей настройки, к тому же меняющиеся в разных версиях.
                                    3. Управлять сайтами от одного пользователя — огроменная дыра в безопасности. Тем более, с правами 777 на всё содержимое сайта.
                                    4. Почта. По умолчанию она стоит и не работает. Настроить exim — задача весьма нетривиальная.
                                    — Более некомпетентной и вредной статьи я давно не встречал. Перенесите пост в черновик, не позорьтесь.
                                      –3
                                      Зачем в дебиане качать .deb пакеты? Есть же шикарный репозиторий.
                                      Вы считаете, что пользователь, пришедший с MS Windows сразу полезет в репозитории? Если вы заметили, в тексте есть несколько вариантов установки, в том числе, и из репозиториев.
                                      Про самбу лучше бы вообще не писали
                                      Для домашней сети описанная установка то, что требуется.
                                      Управлять сайтами от одного пользователя — огроменная дыра в безопасности
                                      Да, если сервер стоит в стойке, а тут речь о домашнем компьютере.
                                      Почта. По умолчанию она стоит и не работает.
                                      Почта отправляется, принимается, лежит здесь: /var/spool/mail
                                        +2
                                        Пользователь, пришедший с Windows, обязан лезть в репозиторий. Собирать софт из исходников — явно не для новичков.
                                        Домашний компьютер — это не оправдание. Потом такой ужас будет в стойке.
                                        Почта отправляется с домашнего сервера? Правда? Каково количество режектов?
                                        Про прием почты домашним сервером — феерично. MX и PTR из воздуха материализуются на DNS-сервере?
                                          +1
                                          >Вы считаете, что пользователь, пришедший с MS Windows сразу полезет в репозитории?

                                          Я считаю, что пользователь, пришедший из ${SOME_SYSTEM}, должен оставлять свои привычки в ${SOME_SYSTEM}, а в новой система работать так как принято в этой системе, а не искать «Как тут крутить педали??» пересаживаясь с велосипеда на автомобиль (образно, ни в коем случае не холиварно).

                                          И уж тем более я считаю, что книги и руководства должны (даже ОБЯЗАНЫ) учить правильному подходу, а не привычному для выходцев из той или иной системы.
                                        –2
                                        После выбора русской раскладки и русского языка на сервере — перестал читать.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                            0
                                            Спасибо, но читал просто ради интереса. С debian дружу уже 7й год.
                                              –3
                                              Хорошо, что седьмой год. Я на Debian менее года
                                                +1
                                                Право дело, мне кажется, рано вы взялись за написание книг. Самому надо отдавать себе отчёт, что вы ещё не гуру и за год не выработалась даже этика работы в системе. Повторяться не буду, выше всё было сказано.
                                            –2
                                            По-вашему, Debian с иксами — это полноценный сервер для работы в стойке? Тут речь о «домашнем» web-сервере для работы над сайтами и не только. Для кого новая ОС — новая рабочая среда.
                                              0
                                              Вполне, есть редкие приложения консольных аналогов которых не существует.
                                              Кстати, это не тот случай. Тогда не надо его называть сервером.
                                            +1
                                            Если имеется ввиду как сервер, то для меня все сводилось примерно к следующему
                                            — установка дебиан
                                            — установка webmin
                                            далее почти все автоматом
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                0
                                                Подождите обновления руководства. Сейчас приняты все адекватные поправки к первой и второй частям.

                                                К концу недели сможете скачать по этой же ссылке, которая есть в анонсе.
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                  +2
                                                  начните с этого habrahabr.ru/blogs/ubuntu/103303/
                                                    +1
                                                    Хороший мануал, кстати. Поддерживаю.
                                                  0
                                                  Аннотация книги и содержания сильно теряют в информацтивности из-за использования названий программ, а не их кратких описаний. Написали бы «Установка и настройка web-сервера Apache» — сразу стало бы ясно с какой целью открывать эту главу. А так человек несведущий (вы ведь на таких читателей расчитывали?) пролистает содержание и просто не поймет, что ему эта книга может дать.
                                                    +4
                                                    Эх, очередная книга про howto вместо описания идеологии. Будешь знать идеологию — легко найдёшь и сделаешь. Не будешь — придётся зубрить магические пассы.

                                                    Дебиан в этом смысле одна из самых идеологизированных систем, практически всё в нём объясняется не историческими соображениями совместимости, а пониманием, «зачем именно так и почему не иначе».

                                                    Мне в своё время остро такой книги не хватало. Да и сейчас не хватает, хотя какая-никакая интуиция уже появилась…
                                                      +1
                                                      >Дебиан в этом смысле одна из самых идеологизированных систем

                                                      Вот только обсуждаемый сабж топчется по этой идеологии грязными сапогами.
                                                        0
                                                        идеоогия — это английская лексика и грамматика,
                                                        всё остальное легко находится в гугле, раньше на linuxquestions, теперь на serverfault

                                                        все внутренности объясняют досконально, по каждому сообщению об ошибке или полному пути к конфигу
                                                        +3
                                                        … полистал-таки.

                                                        За такие советы надо больно бить по голове. Желательно самой что ни на есть бумажной копией в твёрдом переплёте.

                                                        Какое нафиг редактирование 000-default???? Что за слакварщина? Есть ще по-человечески созданная система a2ensite a2dissite… Нет, нужно похерить всю систему и сделать самому с нуля. Криво, косо, но самому…

                                                        Напоминает мне меня в одно из первых знакомств с линуксом, я не разобрался с концепцией rc.d и решил сам переписать init-срипт…

                                                        Вообще, для таких есть славаря, есть дженту, есть даже LSB. Но зачем делать из дебиана слаку, а?
                                                          0
                                                          «В наши дни дисковое пространство дёшево, но зачем выбрасывать деньги на ветер?»
                                                          Понимаю о чем речь, но неизменно думаю о «дешевизне» SAS SSD… Хотя наверное для среднего веб-сервера это лишнее )
                                                            0
                                                            Кстати, кому нужен вебсервер на рабочем/домашнем компе, могут скачать готовый Appliance.
                                                              –1
                                                              Автору спасибо. Даешь продолжение. Хотелось бы tomcat, и еще чего-нибудь вкусненького
                                                                0
                                                                >>для начала работы в этой замечательной ОС
                                                                вот лучше б рассказали чем эта ОСь так замечательна, с примерами и т.д. а то каждый хвалит своё, а изучать всё подряд — мозгов не хватит
                                                                  0
                                                                  Руководство переработано, доступно для чтения для в онлайн
                                                                    0
                                                                    «Не удается получить доступ к сайту»
                                                                    ссылки не работают
                                                                      0
                                                                      Устарело, не актуально.

                                                                      Поставьте VestaCP с Nginx
                                                                        0
                                                                        Ясно, спасибо

                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                    Самое читаемое