Установка и настройка веб-сервера IIS PHP MySQL

Поднимаем веб-сервер с максимальной изоляцией сервисов

Обычно, когда встает задача поднять среднестатистический веб-сервер, администратор выбирает одну достаточно производительную виртуальную или физическую машину, которая способна справиться с ожидаемой нагрузкой, и поднимает на ней стек LAMP, включающий в себя Apache, PHP, MySQL, а также, возможно, memcached, nginx и реверс-прокси. Однако это далеко не самый эффективный и безопасный сценарий, лучшим решением будет разнести все компоненты стека по разным виртуальным машинам.

Стандартная инсталляция (L)AMP — это Linux/BSD-машина, на которой запущены все компоненты веб-сервера. Такую связку очень легко настроить, однако она имеет целый ряд недостатков. Во-первых, она небезопасна: взломав, например, веб-сервер, злоумышленник сможет получить доступ к файлам веб-сервера, базам MySQL, а если веб-сервер работает на физической машине без всякой изоляции, то и к самой машине.

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

В-третьих, по мере роста в ходе наращивания мощности классическая конфигурация будет постоянно усложняться, что затруднит ее сопровождение и понимание архитектуры. По тем же причинам появятся серьезные проблемы с мониторингом.

В общем и целом, классический LAMP в перспективе неэффективен, но все его проблемы можно решить за счет разнесения всех компонентов сервера по отдельным виртуальным машинам, которые станут высокоуровневыми логическими единицами, более удобными для управления.

Установка IIS

Для установки веб-сервера, открываем Диспетчер серверов — переходим в УправлениеДобавить роли и компоненты:

Если откроется окно с приветствием, нажимаем Далее:

Вступление перед установкой ролей и служб

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

Выбор типа установки

При выборе целевого сервера оставляем локальный сервер (или выбираем удаленный, если установка выполняется из удаленной консоли):

Выбор целевого сервера

Среди ролей выбираем Веб-сервер (IIS) — во всплывающем окне кликаем по Добавить компоненты:

Выбор ролей сервера

Также среди ролей в подразделе «Разработка приложений» ставим галочку для установки CGI — этот компонент нам нужен для работы PHP:

Установка CGI

При выборе компонентов ничего не меняем — нажимаем Далее:

Выбор компонентов

Откроется окно настройки роли веб-сервера — просто нажимаем Далее:

Роль веб-сервера

Выбор служб ролей — нажимаем далее или, при необходимости, выбираем FTP-сервер:

Выбор служб ролей

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

Подтверждение компонентов установки

Дожидаемся окончания процесса установки.

Сразу после установки IIS запускается автоматически. Но, если что, его можно запустить с помощью команды iisreset:

* если выполнить данную команду без опций, то она перезапустить веб-сервер.

Также мы можем открыть диспетчер служб (команда services.msc) и перезапустить Службу веб-публикаций:

Служба веб-публикаций

Открываем браузер и вводим адрес http://localhost — должен открыться стартовый портал:

Проверка загрузки стартового сайта

Установка MySQL

      Скачиваем пакет по ссылке
        , скачивайте последнюю версию.
      1. Приступаем к установке. Нажмите в данном окне выборочную установку компонентов «Custom».
      2. Здесь вы можете выбрать дополнительные компоненты и сменить установочную директорию программы.
      3. Теперь приступим к настройке MySQL сервера.
      4. Выбираем детализированную настройку — «Detailed Configuration».
      5. Отмечаем пункт «Developer Machine».
      6. Выбрав пункт «Multifunctional Database», вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило для веб-разработок используется именно этот тип таблиц).
      7. Выбор диска и директории для хранения таблиц типа InnoDB.
      8. В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе «Decision Support (DSS)/OLAP», максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.
      9. Отметив «Enable TCP/IP Networking» мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив «Enable Strict Mode», мы задаем режим строгого соответствия стандарту SQL (данную опцию рекомендуется оставлять включенной).
      10. Обратите внимание на выставление настроек данного окна. Отметив «Manual Selected Default Character Set / Collation» и выбрав из ниспадающего меню «cp1251» определяем, что изначально для таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с русским языком в данной кодировке.
      11. Если отметить «Install As Windows Service», сервер будет запускаться в виде сервиса, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее, уберите галочку рядом с «Launch the MySQL Server automatically» — мы будем запускать сервер вручную. Также поставьте галочку рядом с «Include Bin Directory in Windows PATH» — это позволит установить видимость директории «bin», для командной строки.
      12. Установите пароль пользователя «root». Советую сделать это. Поставьте хотя бы какой-нибудь простенький пароль, только не оставляйте поле пустым, это убережёт вас от возможных неприятностей в дальнейшем.
      13. В данном окне обратите внимание на строку «Write configuration file», которая указывает на месторасположение конфигурационного файла MySQL — «my.ini», далее, его необходимо будет немного отредактировать.
      14. Откройте для редактирования файл «my.ini».
        1. В раздел [client], после строки:
          port=3306
          Добавьте строку определяющую каталог содержащий файлы описания кодировок:
          character-sets-dir=»C:/Program Files/MySQL/MySQL Server 5.5/share/charsets»
        2. В раздел [mysqld], после строки:
          port=3306
          Добавьте следующие две строки, первая из которых вам уже известна, вторая – устанавливает кодировку в которой данные передаются MySQL:
          character-sets-dir=»C:/Program Files/MySQL/MySQL Server 5.5/share/charsets»
          init-connect=»SET NAMES cp1251″
        3. Далее, найдите строку:
          default-storage-engine=INNODB
          Замените изначально устанавливаемый тип таблиц на MYISAM:
          default-storage-engine=MYISAM

        Можно ли самому запустить VDS-хостинг?

        В сети есть много статей, рассказывающих о том, что создать VDS самому – не такая уж и сложная задача. Особенно если запустить его на своем компьютере и продавать. Хочу уверить, что это полный абсурд.

        Разумеется, VDS или VPS-хостинг можно запустить самостоятельно, предоставляя услуги всем желающим, но точно не на своем компьютере. Это целый бизнес, требующий ответственного подхода, определенных знаний и вложений средств. Рассказывать об этом детально нет смысла, однако для общего развития уточню несколько основных деталей.

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

        1. Простой вариант – перепродажа купленного у стороннего провайдера виртуального сервера по более высокой цене (ресселинг). В этом случае нужно найти оптимального поставщика, который предоставляет надежный VDS. Сам хостинг должен предоставлять тарифную линейку серверов под разные нужды.
        2. Аренда физического сервера – дорогой вариант, но позволяющий разбить его на несколько VDS при помощи технологии виртуализации. При правильном подходе это позволяет сократить расходы и более гибко организовать всю систему.
        3. Можно разместить собственное оборудование в готовом дата-центре. Этот метод требует больших вложений, поскольку вы самостоятельно приобретаете все оборудование и находите место, где его разместить.
        4. Самый безумный вариант – построить свой дата-центр. Здесь уже речь идет о масштабном бизнесе с миллионами затрат и продуманным планом развития.

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

        Как настроить конфиг APACHE

        Как правило, когда пользователь занимается созданием сайта, он хочет иметь возможность просмотра его ресурса на своем ПК в таком виде, как видят его в браузере другие люди, то есть чтобы локальный сайт был доступен не по IP-адресу, а через доменное имя. В этом случае обычной установки Apache будет недостаточно и для этого потребуется произвести настройку конфига Apache2.

        На первом этапе отладки конфига пользователь должен создать каталог для своего интернет проекта на сервере. Сделать это можно перейдя в основной каталог apache:

        Затем, создайте каталог для вашего сайта командой:

        sudo mkdir superdomain

        Чтобы пользователь мог корректировать каталог, следует поменять имя владельца каталога с пользователя root на свое имя пользователя или, предпочтительно, на имя пользователя для apache.

        Выполнить это можно посредством введения в терминале следующих команд:

        Затем введите команду:

        sudo chown -R user:user superdomain

        Теперь перейдите в ваш каталог superdomain:

        После ввода команды выше, вы откроете текстовый редактор nano. Давайте напишем простой PHP-скрипт:

        Для того, чтобы сохранить изменения в редакторе nano, нажмите сочетание клавиш ctr+x и букву y, после этого нажмите на клавишу enter.

        Далее рассмотрим, как отладить конфиг apache2. Произвести настройку можно посредством введения команды:

        sudo nano /etc/apache2/sites-available/superdomain.com.conf

        и вставить текст следующего содержания:

        На следующем этапе пользователю необходимо выполнить нажатие сочетание клавиш ctr+x и букву y, а после нажать enter.

        После этого следует перейти в каталог apache, посредством введения следующей команды:

        и ввести еще одну команду:

        sudo a2ensite superdomain.com.conf

        В случае правильного введения команд на экране отобразится следующее:

        Чтобы запустить новый конфиг apache на веб-ресурсе необходимо ввести команду:

        service apache2 reload

        Свидетельством правильного запуска команды станет полное отсутствие ошибок.

        На последнем этапе запуска веб-ресурса на своем локальном домене пользователю необходимо в документе hosts ввести ip-адрес сервера и указать имя своего локального домена:

        Сам файл hosts в Linux находится в

        в Windows вы его сможете найти по такому адресу:

        Все готово! Теперь осталось лишь сохранить файл hosts, и в браузере указать имя своего локального домена superdomain.com.

        В результате на экране должно будет отобразиться результат выполнения файла index.php.

        Установка MariaDB в Windows

        Далее мы настроим и запустим MariaDB. Начните с того, что содержимое архива mariadb-xx.x.x-winx64.zip распакуйте в папку C:Serverbin. Новую папку переименуйте в mariadb. Получится, что MariaDB размещена на диске в папке C:Serverbinmariadb.

        В папке C:Serverbinmariadb создайте файл my.cnf и скопируйте в него:

        Сохраните и закройте этот файл.

        Для установки и запуска службы выполните команды:

        Заключение

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

        В следующих статьях будут рассмотрены более узкие темы вроде RAID и шифрования, бэкапов, выбора операционной системы и подбора оптимальных серверных дисков.

        Что дальше?

        Возможно, вам уже хватило, вы поняли что это не ваше и вообще. Тоже неплохой результат. Возможно, вы просто хотели домашний сервер и получили его — опять же, к результату мы пришли. Или же вы хотите большего — и это тоже прекрасный результат! Надо понимать, что хотя Docker Swarm уже несколько протух, для небольших нагрузок, вроде домашнего использования, он подходит на отлично. А если вам мало, то, разобравшись как и что тут работает, вы можете медленно начать своё движение к изучению kubernetes.

        Что можно посоветовать конкретного? Ну, если Docker вам интересен и хочется в нём разобраться поглубже, то вводный цикл статей от Microsoft достаточно приятно и наглядно объясняет как и что оно.

        Если хотите покрупнее брать — и в Hyper-V получше разобраться, и в контейнерах и чуточку затронуть кубер, то вот ещё у них есть неплохие материалы.

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

        Коли от Microsoft тошнит — ищите курсы. В англоязычных интернетах с этим проще — идёшь на Udemy или Pluralsight и выбираешь курс по теме, где люди поменьше в комментах бугуртят на качество, и в бой. С русскоязычными курсами посложнее в выборе, но кто ищет — тот найдёт.

        Ну и наконец если в целом вся эта тема с сервисами на своём домашнем сервере вам интересна, то вот отличный список selfhosted решений на все случаи жизни.

Adblock
detector