Сервер

Настройка сервера веб: Домашний веб-сервер, или сам себе хостинг-провайдер / Хабр

Содержание

Настройка веб-сервера для публикации веб-развертывание (автономное развертывание)



  • Чтение занимает 10 мин

В этой статье

кто Джейсон Ивановby Jason Lee

Загрузить PDF-файлDownload PDF

В этом разделе описывается настройка веб-сервера IIS для поддержки автономной веб-публикации и развертывания.This topic describes how to configure an IIS web server to support offline web publishing and deployment.

При работе со веб-развертывание средством веб-развертывания службы IIS (IIS) 2,0 или более поздней версии существует три основных подхода, которые можно использовать для получения приложений или сайтов на веб-сервер.When you work with Internet Information Services (IIS) Web Deployment Tool (Web Deploy) 2.0 or later, there are three main approaches you can use to get your applications or sites onto a web server. Можно сделать следующее:You can:

  • Используйте службу удаленного агента веб-развертывание.Use the Web Deploy Remote Agent Service. Этот подход требует меньшей настройки веб-сервера, но для развертывания любых данных на сервере необходимо предоставить учетные данные администратора локального сервера.This approach requires less configuration of the web server, but you need to provide the credentials of a local server administrator in order to deploy anything to the server.
  • Используйте обработчик веб-развертывание.Use the Web Deploy Handler. Этот подход гораздо более сложен и требует более первоначальных усилий по настройке веб-сервера.This approach is a lot more complex and requires more initial effort to set up the web server. Однако при использовании этого подхода можно настроить службы IIS, чтобы разрешить пользователям без прав администратора выполнять развертывание.However, when you use this approach, you can configure IIS to allow non-administrator users to perform the deployment. Обработчик веб-развертывание доступен только в службах IIS версии 7 или более поздней.The Web Deploy Handler is only available in IIS version 7 or later.
  • Используйте автономное развертывание.Use offline deployment. Этот подход требует минимальной настройки веб-сервера, но администратор сервера должен вручную скопировать веб-пакет на сервер и импортировать его с помощью диспетчера служб IIS.This approach requires the least configuration of the web server, but a server administrator must manually copy the web package onto the server and import it through IIS Manager.

Дополнительные сведения о ключевых функциях, преимуществах и недостатках этих подходов см. в разделе Выбор правильного подхода к веб-развертыванию.For more information on the key features, advantages, and disadvantages of these approaches, see Choosing the Right Approach to Web Deployment.

Да, если сетевая инфраструктура или ограничения безопасности препятствуют удаленному развертыванию.Yes, if your network infrastructure or security restrictions prevent remote deployment. Скорее всего, это происходит в рабочих средах с выходом в Интернет, где веб-серверы изолированы—физическим или брандмауэром и подсетями—от остальной части серверной инфраструктуры.This is most likely to be the case in Internet-facing production environments, where the web servers are isolated—either physically or by firewalls and subnets—from the rest of your server infrastructure.

Очевидно, что этот подход оказывается менее желательным, если веб-приложения регулярно обновляются.Obviously, this approach becomes less desirable if your web applications are updated on a regular basis. Если инфраструктура разрешается, можно рассмотреть возможность включения удаленного развертывания с помощью обработчика веб-развертывание или службы удаленного агента веб-развертывание.If your infrastructure allows it, you may want to consider enabling remote deployment, using either the Web Deploy Handler or the Web Deploy Remote Agent Service.

Обзор задачTask Overview

Чтобы настроить веб-сервер для поддержки автономного импорта и развертывания веб-пакетов, необходимо выполнить следующие действия.To configure the web server to support offline import and deployment of web packages, you’ll need to:

  • Установите IIS 7,5 и рекомендуемую конфигурацию IIS 7.Install IIS 7.5 and the IIS 7 recommended configuration.
  • Установите веб-развертывание 2,1 или более поздней версии.Install Web Deploy 2.1 or later.
  • Создайте веб-сайт IIS для размещения развернутого содержимого.Create an IIS website to host the deployed content.
  • Отключите службу веб-Deployment Agent.Disable the Web Deployment Agent Service.

Чтобы разместить пример решения, вам также потребуется:To host the sample solution specifically, you’ll also need to:

  • Установите .NET Framework 4,0.Install the .NET Framework 4.0.
  • Установите ASP.NET MVC 3.Install ASP.NET MVC 3.

В этом разделе будет показано, как выполнить каждую из этих процедур.This topic will show you how to perform each of these procedures. В задачах и пошаговых руководствах этого раздела предполагается, что вы начинаете с чистой серверной сборки, работающей под Windows Server 2008 R2.The tasks and walkthroughs in this topic assume that you’re starting with a clean server build running Windows Server 2008 R2. Прежде чем продолжить, убедитесь в том, что:Before you continue, ensure that:

  • Windows Server 2008 R2 с пакетом обновления 1 (SP1) и все доступные обновления установлены.Windows Server 2008 R2 Service Pack 1 and all available updates are installed.
  • Сервер присоединен к домену.The server is domain-joined.
  • Сервер имеет статический IP-адрес.The server has a static IP address.

Установка продуктов и компонентовInstall Products and Components

Этот раздел поможет вам установить необходимые продукты и компоненты на веб-сервере.This section will guide you through installing the required products and components on the web server. Прежде чем начать, рекомендуется запустить Центр обновления Windows, чтобы гарантировать, что сервер будет полностью обновлен.Before you begin, a good practice is to run Windows Update to ensure that your server is fully up to date.

В этом случае необходимо установить следующие компоненты:In this case, you need to install these things:

  • Рекомендуемая конфигурация IIS 7.IIS 7 Recommended Configuration. Это включает роль веб-сервера (IIS) на веб-сервере и устанавливает набор модулей и компонентов IIS, необходимых для размещения приложения ASP.NET.This enables the Web Server (IIS) role on your web server and installs the set of IIS modules and components that you need in order to host an ASP.NET application.
  • .NET Framework 4,0..NET Framework 4.0. Это необходимо для запуска приложений, созданных на основе этой версии .NET Framework.This is required to run applications that were built on this version of the .NET Framework.
  • Средство веб-развертывания 2,1 или более поздней версии.Web Deployment Tool 2.1 or later. Это устанавливает веб-развертывание (и его базовый исполняемый файл MSDeploy.exe) на сервере.This installs Web Deploy (and its underlying executable, MSDeploy.exe) on your server. Веб-развертывание интегрируется с IIS и позволяет импортировать и экспортировать веб-пакеты.Web Deploy integrates with IIS and lets you import and export web packages.
  • ASP.NET MVC 3.ASP.NET MVC 3. При этом устанавливаются сборки, необходимые для запуска приложений MVC 3.This installs the assemblies you need to run MVC 3 applications.

Note

В этом пошаговом руководстве описывается использование установщика веб-платформы для установки и настройки различных компонентов.This walkthrough describes the use of the Web Platform Installer to install and configure various components. Хотя вам не нужно использовать установщик веб-платформы, он упрощает процесс установки, автоматически выявляя зависимости и гарантируя, что вы всегда получаете новейшие версии продукта.Although you don’t have to use the Web Platform Installer, it simplifies the installation process by automatically detecting dependencies and ensuring that you always get the latest product versions. Дополнительные сведения см. в разделе установщик веб-платформы Майкрософт 3,0.For more information, see Microsoft Web Platform Installer 3.0.

Установка необходимых продуктов и компонентовTo install the required products and components

  1. Скачайте и установите установщик веб-платформы.Download and install the Web Platform Installer.

  2. После завершения установки установщик веб-платформы запустится автоматически.When installation is complete, the Web Platform Installer will launch automatically.

    Note

    Теперь можно запустить установщик веб-платформы в любое время из меню » Пуск «.You can now launch the Web Platform Installer at any time from the Start menu. Для этого в меню Пуск выберите пункт все программы, а затем щелкните установщик веб-платформы Майкрософт.To do this, on the Start menu, click All Programs, and then click Microsoft Web Platform Installer.

  3. В верхней части окна установщика веб-платформы 3,0 щелкните Products (продукты).At the top of the Web Platform Installer 3.0 window, click Products.

  4. В левой части окна в области навигации щелкните платформы.On the left side of the window, in the navigation pane, click Frameworks.

  5. В строке Microsoft .NET Framework 4 , если .NET Framework еще не установлен, нажмите кнопку Добавить.In the Microsoft .NET Framework 4 row, if the .NET Framework is not already installed, click Add.

    Note

    Возможно, вы уже установили .NET Framework 4,0 с помощью Центр обновления Windows.You may have already installed the .NET Framework 4.0 through Windows Update. Если продукт или компонент уже установлен, установщик веб-платформы сообщит это, заменив кнопку Добавить на установленныйтекст.If a product or component is already installed, the Web Platform Installer will indicate this by replacing the Add button with the text Installed.

  6. В строке ASP.NET MVC 3 (Visual Studio 2010) нажмите кнопку Добавить.In the ASP.NET MVC 3 (Visual Studio 2010) row, click Add.

  7. В области навигации щелкните сервер.In the navigation pane, click Server.

  8. В строке рекомендуемой конфигурации IIS 7 нажмите кнопку Добавить.In the IIS 7 Recommended Configuration row, click Add.

  9. В строке средства веб-развертывания 2,1 нажмите кнопку Добавить.In the Web Deployment Tool 2.1 row, click Add.

  10. Нажмите кнопку Установить.Click Install. Установщик веб-платформы отобразит список продуктов,—вместе со всеми связанными зависимостями—, которые необходимо установить, и предложит принять условия лицензионного соглашения.The Web Platform Installer will show you a list of products—together with any associated dependencies—to be installed and will prompt you to accept the license terms.

  11. Ознакомьтесь с условиями лицензионного соглашения и, если вы согласны с условиями, нажмите кнопку принимаю.Review the license terms, and if you consent to the terms, click I Accept.

  12. По завершении установки нажмите кнопку Готово, а затем закройте окно установщик веб-платформы 3,0 .When the installation is complete, click Finish, and then close the Web Platform Installer 3.0 window.

Если вы установили .NET Framework 4,0 до установки служб IIS, необходимо запустить средство регистрации служб iis ASP.NET (ASPNET _regiis.exe), чтобы зарегистрировать последнюю версию ASP.NET с IIS.If you installed the .NET Framework 4.0 before you installed IIS, you’ll need to run the ASP.NET IIS Registration Tool (aspnet_regiis.exe) to register the latest version of ASP.NET with IIS. В противном случае вы обнаружите, что IIS будет обслуживать статическое содержимое (например, HTML-файлы) без проблем, но при попытке перейти к содержимому ASP.NET будет возвращена Ошибка HTTP 404,0 — не найдена .If you don’t do this, you’ll find that IIS will serve static content (like HTML files) without any problems, but it will return HTTP Error 404.0 – Not Found when you attempt to browse to ASP.NET content. Чтобы убедиться, что ASP.NET 4,0 зарегистрирован, можно использовать следующую процедуру.You can use the next procedure to ensure that ASP.NET 4.0 is registered.

Регистрация ASP.NET 4,0 в службах IISTo register ASP.NET 4.0 with IIS

  1. Нажмите кнопку Пуски введите Командная строка.Click Start, and then type Command Prompt.

  2. В результатах поиска щелкните правой кнопкой мыши пункт Командная строкаи выберите команду Запуск от имени администратора.In the search results, right-click Command Prompt, and then click Run as administrator.

  3. В окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .In the Command Prompt window, navigate to the %WINDIR%\Microsoft.NET\Framework\v4.0.30319 directory.

  4. Введите эту команду и нажмите клавишу ВВОД:Type this command, and then press Enter:

    aspnet_regiis -iru
    
  5. Если вы планируете размещать в системе 64-разрядные веб-приложения в любой момент, необходимо также зарегистрировать 64-разрядную версию ASP.NET с IIS.If you plan to host 64-bit web applications at any point, you should also register the 64-bit version of ASP.NET with IIS. Для этого в окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .To do this, in the Command Prompt window, navigate to the %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 directory.

  6. Введите эту команду и нажмите клавишу ВВОД:Type this command, and then press Enter:

    aspnet_regiis -iru
    

Рекомендуется использовать Центр обновления Windows на этом этапе, чтобы скачать и установить все доступные обновления для новых продуктов и компонентов, которые вы установили.As a good practice, use Windows Update again at this point to download and install any available updates for the new products and components you’ve installed.

Настройка веб-сайта IISConfigure the IIS Website

Прежде чем можно будет развернуть веб-содержимое на сервере, необходимо создать и настроить веб-сайт IIS для размещения содержимого.Before you can deploy web content to your server, you need to create and configure an IIS website to host the content. Веб-развертывание может развертывать только веб-пакеты на существующем веб-сайте IIS; Он не может создать веб-сайт.Web Deploy can only deploy web packages to an existing IIS website; it can’t create the website for you. На высоком уровне необходимо выполнить следующие задачи:At a high level, you’ll need to complete these tasks:

  • Создайте папку в файловой системе для размещения содержимого.Create a folder on the file system to host your content.
  • Создайте веб-сайт IIS для обслуживания содержимого и свяжите его с локальной папкой.Create an IIS website to serve the content, and associate it with the local folder.
  • Предоставьте разрешения на чтение удостоверению пула приложений в локальной папке.Grant read permissions to the application pool identity on the local folder.

Хотя ничто не мешает развертывать содержимое на веб-сайте по умолчанию в службах IIS, этот подход не рекомендуется использовать ни для тестов, ни для демонстрационных сценариев.Although there’s nothing stopping you from deploying content to the default website in IIS, this approach is not recommended for anything other than test or demonstration scenarios. Для имитации рабочей среды следует создать новый веб-сайт IIS с параметрами, зависящими от требований приложения.To simulate a production environment, you should create a new IIS website with settings that are specific to the requirements of your application.

Создание и Настройка веб-сайта IISTo create and configure an IIS website

  1. В локальной файловой системе создайте папку для хранения содержимого (например, к:\демосите).On the local file system, create a folder to store your content (for example, C:\DemoSite).

  2. В меню Пуск укажите пункт Администрирование, а затем выберите пункт Диспетчер службы IIS (IIS).On the Start menu, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.

  3. В диспетчере служб IIS в области подключения разверните узел сервера (например, PROWEB1).In IIS Manager, in the Connections pane, expand the server node (for example, PROWEB1).

  4. Щелкните правой кнопкой мыши узел сайты и выберите команду Добавить веб-сайт.Right-click the Sites node, and then click Add Web Site.

  5. В поле имя сайта введите имя веб-сайта IIS (например, демосите).In the Site name box, type a name for the IIS website (for example, DemoSite).

  6. В поле физический путь введите (или перейдите к) путь к локальной папке (например, к:\демосите).In the Physical path box, type (or browse to) the path to your local folder (for example, C:\DemoSite).

  7. В поле порт введите номер порта, на котором будет размещен веб-сайт (например, 85).In the Port box, type the port number on which you want to host the website (for example, 85).

    Note

    Номера стандартных портов 80 для HTTP и 443 для HTTPS.The standard port numbers are 80 for HTTP and 443 for HTTPS. Однако при размещении этого веб-сайта на порту 80 необходимо будет закрыть веб-сайт по умолчанию, прежде чем можно будет получить доступ к сайту.However, if you host this website on port 80, you’ll need to stop the default website before you can access your site.

  8. Оставьте поле имя узла пустым, если не требуется настроить запись службы доменных имен (DNS) для веб-сайта, а затем нажмите кнопку ОК.Leave the Host name box blank, unless you want to configure a Domain Name System (DNS) record for the website, and then click OK.

    Note

    В рабочей среде вам, скорее всего, потребуется разместить веб-сайт через порт 80 и настроить заголовок узла вместе с соответствующими записями DNS.In a production environment, you’ll likely want to host your website on port 80 and configure a host header, together with matching DNS records. Дополнительные сведения о настройке заголовков узлов в IIS 7 см. в разделе Настройка заголовка узла для веб-сайта (IIS 7).For more information on configuring host headers in IIS 7, see Configure a Host Header for a Web Site (IIS 7). Дополнительные сведения о роли DNS-сервера в Windows Server 2008 R2 см. в разделе Обзор DNS-сервера и DNS-сервер.For more information on the DNS Server role in Windows Server 2008 R2, see DNS Server Overview and DNS Server.

  9. В области Действия в разделе Изменение веб-сайтавыберите пункт Привязки.In the Actions pane, under Edit Site, click Bindings.

  10. В диалоговом окне Привязки сайта нажмите кнопку Добавить.In the Site Bindings dialog box, click Add.

  11. В диалоговом окне Добавление привязки сайта задайте IP-адрес и порт в соответствии с существующей конфигурацией сайта.In the Add Site Binding dialog box, set the IP address and Port to match your existing site configuration.

  12. В поле имя узла введите имя веб-сервера (например, PROWEB1) и нажмите кнопку ОК.In the Host name box, type the name of your web server (for example, PROWEB1), and then click OK.

    Note

    Первая привязка сайта позволяет локально получить доступ к сайту с помощью IP-адреса и порта или http://localhost:85 .The first site binding allows you to access the site locally using the IP address and port or http://localhost:85. Вторая привязка сайта позволяет получить доступ к сайту с других компьютеров в домене, используя имя компьютера (например, http://proweb1:85) .The second site binding allows you to access the site from other computers on the domain using the machine name (for example, http://proweb1:85).

  13. В диалоговом окне Привязки сайта нажмите кнопку Закрыть.In the Site Bindings dialog box, click Close.

  14. В области Подключения щелкните элемент Пулы приложений.In the Connections pane, click Application Pools.

  15. В области Пулы приложений щелкните правой кнопкой мыши имя пула приложений и выберите пункт Основные параметры.In the Application Pools pane, right-click the name of your application pool, and then click Basic Settings. По умолчанию имя пула приложений будет совпадать с именем вашего веб-сайта (например, демосите).By default, the name of your application pool will match the name of your website (for example, DemoSite).

  16. В списке версия .NET Framework выберите .NET Framework v 4.0.30319и нажмите кнопку ОК.In the .NET Framework version list, select .NET Framework v4.0.30319, and then click OK.

    Note

    Для примера решения требуется .NET Framework 4,0.The sample solution requires .NET Framework 4.0. Это не является обязательным для веб-развертывание в целом.This is not a requirement for Web Deploy in general.

Чтобы веб-сайт мог обслуживать содержимое, удостоверение пула приложений должно иметь разрешения на чтение для локальной папки, в которой хранится содержимое.In order for your website to serve content, the application pool identity must have read permissions on the local folder that stores the content. В IIS 7,5 пулы приложений работают с уникальным удостоверением пула приложений по умолчанию (в отличие от предыдущих версий IIS, где пулы приложений обычно выполнялись с использованием учетной записи сетевой службы).In IIS 7.5, application pools run with a unique application pool identity by default (in contrast to previous versions of IIS, where application pools would typically run using the Network Service account). Удостоверение пула приложений не является реальной учетной записью пользователя и не отображается ни на одном из списков пользователей или групп—вместо этого оно создается динамически при запуске пула приложений.The application pool identity is not a real user account and does not show up on any lists of users or groups—instead, it’s created dynamically when the application pool is started. Каждое удостоверение пула приложений добавляется в локальную группу безопасности IIS _ IUSR как скрытый элемент.Each application pool identity is added to the local IIS_IUSRS security group as a hidden item.

Чтобы предоставить разрешения удостоверению пула приложений для файла или папки, можно использовать два варианта:To grant permissions to an application pool identity on a file or folder, you have two options:

  • Назначьте разрешения для удостоверения пула приложений напрямую, используя формат ** ( имя пула приложений IIS AppPool** (например, IIS апппул\демосите).Assign permissions to the application pool identity directly, using the format IIS AppPool(application pool name) (for example, IIS AppPool\DemoSite).
  • Назначьте разрешения группе IIS _ IUSR .Assign permissions to the IIS_IUSRS group.

Наиболее распространенным подходом является назначение разрешений локальной группе IIS _ IUSR , так как этот подход позволяет изменять пулы приложений без перенастройки разрешений файловой системы.The most common approach is to assign permissions to the local IIS_IUSRS group, because this approach lets you change application pools without reconfiguring file system permissions. Следующая процедура использует этот подход на основе группы.The next procedure uses this group-based approach.

Настройка разрешений папки для веб-сайта IISTo configure folder permissions for an IIS website

  1. В проводнике найдите расположение локальной папки.In Windows Explorer, browse to the location of your local folder.

  2. Щелкните правой кнопкой мыши папку, затем щелкните Свойства.Right-click the folder, and then click Properties.

  3. На вкладке Security щелкните Edit, а затем Add.On the Security tab, click Edit, and then click Add.

  4. Щелкните Расположения.Click Locations. В диалоговом окне расположения выберите локальный сервер и нажмите кнопку ОК.In the Locations dialog box, select the local server, and then click OK.

  5. В диалоговом окне Выбор пользователей или групп введите IIS _ IUSR, нажмите кнопку Проверить имена, а затем нажмите кнопку ОК.In the Select Users or Groups dialog box, type IIS_IUSRS, click Check Names, and then click OK.

  6. Обратите внимание, что в диалоговом окне разрешения для (имя папки) новой группе назначено разрешение Чтение & выполнение, список содержимого папкии разрешения на Чтение по умолчанию.In the Permissions for (folder name) dialog box, notice that the new group has been assigned the Read & execute, List folder contents, and Read permissions by default. Оставьте это без изменений и нажмите кнопку ОК.Leave this unchanged and click OK.

  7. Нажмите кнопку ОК , чтобы закрыть диалоговое окно Свойства (имя папки) .Click OK to close the (folder name) Properties dialog box.

Отключение службы удаленного агентаDisable the Remote Agent Service

При установке веб-развертывание Служба веб-Deployment Agent устанавливается и запускается автоматически.When you install Web Deploy, the Web Deployment Agent Service is installed and started automatically. Эта служба позволяет развертывать и публиковать веб-пакеты из удаленного расположения.This service allows you to deploy and publish web packages from a remote location. В этом сценарии вы не будете использовать возможности удаленного развертывания, поэтому службу следует отключить.You won’t be using the remote deployment capability in this scenario, so you should stop and disable the service.

Note

Для импорта и развертывания веб-пакета вручную не требуется прекращать работу службы удаленного агента.You don’t need to stop the remote agent service in order to import and deploy a web package manually. Однако рекомендуется приостанавливаться и отключать службу, если вы не планируете ее использовать.However, it’s a good practice to stop and disable the service if you don’t plan to use it.

Службу можно отключить несколькими способами, используя различные служебные программы командной строки или командлеты Windows PowerShell.You can stop and disable a service in multiple ways, using various command-line utilities or Windows PowerShell cmdlets. Эта процедура описывает простой подход на основе пользовательского интерфейса.This procedure describes a straightforward UI-based approach.

Завершение и отключение службы удаленного агентаTo stop and disable the remote agent service

  1. Нажмите кнопку Пуск , выберите команду Администрирование, а затем выберите Службы.On the Start menu, point to Administrative Tools, and then click Services.

  2. В консоли службы выберите строку Служба веб-Deployment Agent .In the Services console, locate the Web Deployment Agent Service row.

  3. Щелкните правой кнопкой мыши веб-Deployment Agent службаи выберите пункт свойства.Right-click Web Deployment Agent Service, and then click Properties.

  4. В диалоговом окне Свойства веб-службы Deployment Agent нажмите кнопку » Закрыть«.In the Web Deployment Agent Service Properties dialog box, click Stop.

  5. В списке Тип запуска выберите отключенои нажмите кнопку ОК.In the Startup type list, select Disabled, and then click OK.

ЗаключениеConclusion

Настройка веб-сервера для публикации веб-развертывания (обработчик веб-развертывания)



  • Чтение занимает 13 мин

В этой статье

Загрузка PDFPDF Download

В этом разделе описывается настройка веб-сервера службы IIS (IIS) для поддержки веб-публикации и развертывания с помощью обработчика веб-развертывание IIS.This topic describes how to configure an Internet Information Services (IIS) web server to support web publishing and deployment using the IIS Web Deploy Handler.

При работе с веб-развертывание 2,0 или более поздней версии существует три основных подхода, которые можно использовать для получения приложений или сайтов на веб-сервер.When you work with Web Deploy 2.0 or later, there are three main approaches you can use to get your applications or sites onto a web server. Можно сделать следующее:You can:

  • Используйте службу удаленного агента веб-развертывание.Use the Web Deploy Remote Agent Service. Этот подход требует меньшей настройки веб-сервера, но для развертывания любых данных на сервере необходимо предоставить учетные данные администратора локального сервера.This approach requires less configuration of the web server, but you need to provide the credentials of a local server administrator in order to deploy anything to the server.
  • Используйте обработчик веб-развертывание.Use the Web Deploy Handler. Этот подход гораздо более сложен и требует более первоначальных усилий по настройке веб-сервера.This approach is a lot more complex and requires more initial effort to set up the web server. Однако при использовании этого подхода можно настроить службы IIS, чтобы разрешить пользователям без прав администратора выполнять развертывание.However, when you use this approach, you can configure IIS to allow non-administrator users to perform the deployment. Обработчик веб-развертывание доступен только в службах IIS версии 7 или более поздней.The Web Deploy Handler is only available in IIS version 7 or later.
  • Используйте автономное развертывание.Use offline deployment. Этот подход требует минимальной настройки веб-сервера, но администратор сервера должен вручную скопировать веб-пакет на сервер и импортировать его с помощью диспетчера служб IIS.This approach requires the least configuration of the web server, but a server administrator must manually copy the web package onto the server and import it through IIS Manager.

Дополнительные сведения о ключевых функциях, преимуществах и недостатках этих подходов см. в разделе Выбор правильного подхода к веб-развертыванию.For more information on the key features, advantages, and disadvantages of these approaches, see Choosing the Right Approach to Web Deployment.

Да, если вы хотите разрешить пользователям без прав администратора развертывать содержимое на определенные веб-сайты IIS.Yes, if you want to allow non-administrator users to deploy content to specific IIS websites. Этот подход часто желательно применять в сценариях такого типа:This approach is often desirable in these types of scenarios:

  • Промежуточная или рабочая среда, где у пользователя или учетной записи службы, запускающей удаленное развертывание, вряд ли будет доступа к учетным данным администратора сервера.Staging or production environments, where the person or service account that triggers the remote deployment is unlikely to have access to the credentials of a server administrator.
  • Размещенные среды, в которых вы хотите предоставить удаленным пользователям возможность обновлять свои веб-сайты, не предоставляя им полного контроля над веб-серверами (или доступом к веб-сайтам других пользователей).Hosted environments, where you want to give remote users the ability to update their websites without giving them full control of your web servers (or access to anyone else’s websites).

В сценариях разработки или тестирования или в небольших организациях развертывание содержимого с помощью учетных данных администратора сервера часто менее спорными.In development or test scenarios, or in smaller organizations, deploying content using server administrator credentials is often less contentious. В этих сценариях Настройка веб-серверов для поддержки развертывания с помощью службы веб-развертывание Remote Agent предлагает более простой подход.In these scenarios, configuring your web servers to support deployment using the Web Deploy Remote Agent Service offers a more straightforward approach.

Обзор задачTask Overview

Чтобы настроить веб-сервер на прием и развертывание веб-пакетов с удаленного компьютера с помощью обработчика веб-развертывание, вам потребуется:To configure the web server to accept and deploy web packages from a remote computer using the Web Deploy Handler approach, you’ll need to:

  • Создайте или выберите учетную запись пользователя домена («пользователь без прав администратора»), учетные данные которого будут использоваться для выполнения развертываний.Create, or choose, a domain user account (the «non-administrator user») whose credentials you’ll use to perform deployments.
  • Установите IIS 7,5, включая службу веб-управления и модуль обычной проверки подлинности.Install IIS 7.5, including the Web Management Service and the Basic Authentication module.
  • Установите веб-развертывание 2,1 или более поздней версии.Install Web Deploy 2.1 or later.
  • Настройте службу веб-управления, чтобы разрешить удаленные подключения, и запустите службу.Configure the Web Management Service to allow remote connections, and start the service.
  • Создайте веб-сайт IIS для размещения развернутого содержимого.Create an IIS website to host the deployed content.
  • Предоставьте пользователям, не являющимся администраторами, разрешения на веб-сайт в диспетчере служб IIS.Grant your non-administrator user permissions on your website in IIS Manager.
  • Убедитесь, что правила делегирования службы веб-управления позволяют службе добавлять и изменять содержимое веб-сайта с помощью учетной записи пользователя без прав администратора.Ensure that the Web Management Service delegation rules permit the service to add and change website content using your non-administrator user account.
  • Настройте все брандмауэры, разрешающие входящие подключения через порт 8172.Configure any firewalls to allow incoming connections on port 8172.

Чтобы разместить пример решения ContactManager в частности, вам потребуется:To host the ContactManager sample solution specifically, you’ll also need to:

  • Установите .NET Framework 4,0.Install the .NET Framework 4.0.
  • Установите ASP.NET MVC 3.Install ASP.NET MVC 3.

В этом разделе будет показано, как выполнить каждую из этих процедур.This topic will show you how to perform each of these procedures. В задачах и пошаговых руководствах этого раздела предполагается, что вы начинаете с чистой серверной сборки под Windows Server 2016.The tasks and walkthroughs in this topic assume that you’re starting with a clean server build running Windows Server 2016. Прежде чем продолжить, убедитесь в том, что:Before you continue, ensure that:

  • Windows Server 2016Windows Server 2016
  • Сервер присоединен к домену.The server is domain-joined.
  • Сервер имеет статический IP-адрес.The server has a static IP address.

Установка продуктов и компонентовInstall Products and Components

Этот раздел поможет вам установить необходимые продукты и компоненты на веб-сервере.This section will guide you through installing the required products and components on the web server. Прежде чем начать, рекомендуется запустить Центр обновления Windows, чтобы гарантировать, что сервер будет полностью обновлен.Before you begin, a good practice is to run Windows Update to ensure that your server is fully up to date.

В этом случае необходимо установить следующие компоненты:In this case, you need to install these things:

  • Рекомендуемая конфигурация IIS 7.IIS 7 Recommended Configuration. Это включает роль веб-сервера (IIS) на веб-сервере и устанавливает набор модулей и компонентов IIS, необходимых для размещения приложения ASP.NET.This enables the Web Server (IIS) role on your web server and installs the set of IIS modules and components that you need in order to host an ASP.NET application.
  • IIS: Служба управления.IIS: Management Service. При этом устанавливается служба веб-управления (WMSvc) в службах IIS.This installs the Web Management Service (WMSvc) in IIS. Эта служба обеспечивает удаленное управление веб-сайтами IIS и предоставляет клиентам конечную точку обработчика веб-развертывание.This service enables remote management of IIS websites and exposes the Web Deploy Handler endpoint to clients.
  • IIS: обычная проверка подлинности.IIS: Basic Authentication. При этом устанавливается модуль базовой проверки подлинности IIS.This installs the IIS Basic Authentication module. Это позволит службе веб-управления (WMSvc) пройти проверку подлинности предоставленных учетных данных.This lets the Web Management Service (WMSvc) authenticate the credentials you provide.
  • Средство веб-развертывания 2,1 или более поздней версии.Web Deployment Tool 2.1 or later. Это устанавливает веб-развертывание (и его базовый исполняемый файл MSDeploy.exe) на сервере.This installs Web Deploy (and its underlying executable, MSDeploy.exe) on your server. В рамках этого процесса он устанавливает обработчик веб-развертывание и интегрирует его со службой веб-управления.As part of this process, it installs the Web Deploy Handler and integrates it with the Web Management Service.
  • .NET Framework 4,0..NET Framework 4.0. Это необходимо для запуска приложений, созданных на основе этой версии .NET Framework.This is required to run applications that were built on this version of the .NET Framework.
  • ASP.NET MVC 3.ASP.NET MVC 3. При этом устанавливаются сборки, необходимые для запуска приложений MVC 3.This installs the assemblies you need to run MVC 3 applications.

Note

В этом пошаговом руководстве описывается использование установщика веб-платформы для установки и настройки различных компонентов.This walkthrough describes the use of the Web Platform Installer to install and configure various components. Хотя вам не нужно использовать установщик веб-платформы, он упрощает процесс установки, автоматически выявляя зависимости и гарантируя, что вы всегда получаете новейшие версии продукта.Although you don’t have to use the Web Platform Installer, it simplifies the installation process by automatically detecting dependencies and ensuring that you always get the latest product versions. Дополнительные сведения см. в разделе установщик веб-платформы Майкрософт.For more information, see Microsoft Web Platform Installer.

Установка необходимых продуктов и компонентовTo install the required products and components

  1. Скачайте и установите установщик веб-платформы.Download and install the Web Platform Installer.

  2. После завершения установки установщик веб-платформы запустится автоматически.When installation is complete, the Web Platform Installer will launch automatically.

    Note

    Теперь можно запустить установщик веб-платформы в любое время из меню » Пуск «.You can now launch the Web Platform Installer at any time from the Start menu. Для этого в меню Пуск выберите пункт все программы, а затем щелкните установщик веб-платформы Майкрософт.To do this, on the Start menu, click All Programs, and then click Microsoft Web Platform Installer.

  3. В верхней части окна Установщик веб-платформы щелкните Продукты.At the top of the Web Platform Installer window, click Products.

  4. В левой части окна в области навигации щелкните платформы.On the left side of the window, in the navigation pane, click Frameworks.

  5. В строке Microsoft .NET Framework 4 , если .NET Framework еще не установлен, нажмите кнопку Добавить.In the Microsoft .NET Framework 4 row, if the .NET Framework is not already installed, click Add.

    Note

    Возможно, вы уже установили .NET Framework 4,0 с помощью Центр обновления Windows.You may have already installed the .NET Framework 4.0 through Windows Update. Если продукт или компонент уже установлен, установщик веб-платформы сообщит это, заменив кнопку Добавить на установленныйтекст.If a product or component is already installed, the Web Platform Installer will indicate this by replacing the Add button with the text Installed.

  6. В строке ASP.NET MVC 3 (Visual Studio 2010) нажмите кнопку Добавить.In the ASP.NET MVC 3 (Visual Studio 2010) row, click Add.

  7. В области навигации щелкните сервер.In the navigation pane, click Server.

  8. В строке рекомендуемой конфигурации IIS 7 нажмите кнопку Добавить.In the IIS 7 Recommended Configuration row, click Add.

  9. В строке средства веб-развертывания 2,1 нажмите кнопку Добавить.In the Web Deployment Tool 2.1 row, click Add.

  10. В строке службы IIS: обычная проверка подлинности нажмите кнопку Добавить.In the IIS: Basic Authentication row, click Add.

  11. В строке Служба IIS: Управление нажмите кнопку Добавить.In the IIS: Management Service row, click Add.

  12. Нажмите кнопку Установить.Click Install. Установщик веб-платформы отобразит список продуктов,—вместе со всеми связанными зависимостями—, которые необходимо установить, и предложит принять условия лицензионного соглашения.The Web Platform Installer will show you a list of products—together with any associated dependencies—to be installed and will prompt you to accept the license terms.

  13. Ознакомьтесь с условиями лицензионного соглашения и, если вы согласны с условиями, нажмите кнопку принимаю.Review the license terms, and if you consent to the terms, click I Accept.

  14. По завершении установки нажмите кнопку Готово, а затем закройте окно установщик веб-платформы .When the installation is complete, click Finish, and then close the Web Platform Installer window.

Если вы установили .NET Framework 4,0 до установки служб IIS, необходимо запустить средство регистрации служб iis ASP.NET (ASPNET _regiis.exe), чтобы зарегистрировать последнюю версию ASP.NET с IIS.If you installed the .NET Framework 4.0 before you installed IIS, you’ll need to run the ASP.NET IIS Registration Tool (aspnet_regiis.exe) to register the latest version of ASP.NET with IIS. В противном случае вы обнаружите, что IIS будет обслуживать статическое содержимое (например, HTML-файлы) без проблем, но при попытке перейти к содержимому ASP.NET будет возвращена Ошибка HTTP 404,0 — не найдена .If you don’t do this, you’ll find that IIS will serve static content (like HTML files) without any problems, but it will return HTTP Error 404.0 – Not Found when you attempt to browse to ASP.NET content. Чтобы убедиться, что ASP.NET 4,0 зарегистрирован, можно использовать следующую процедуру.You can use the next procedure to ensure that ASP.NET 4.0 is registered.

Регистрация ASP.NET 4,0 в службах IISTo register ASP.NET 4.0 with IIS

  1. Нажмите кнопку Пуски введите Командная строка.Click Start, and then type Command Prompt.

  2. В результатах поиска щелкните правой кнопкой мыши пункт Командная строкаи выберите команду Запуск от имени администратора.In the search results, right-click Command Prompt, and then click Run as administrator.

  3. В окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .In the Command Prompt window, navigate to the %WINDIR%\Microsoft.NET\Framework\v4.0.30319 directory.

  4. Введите эту команду и нажмите клавишу ВВОД:Type this command, and then press Enter:

    aspnet_regiis -iru
    
  5. Если вы планируете размещать в системе 64-разрядные веб-приложения в любой момент, необходимо также зарегистрировать 64-разрядную версию ASP.NET с IIS.If you plan to host 64-bit web applications at any point, you should also register the 64-bit version of ASP.NET with IIS. Для этого в окне командной строки перейдите в каталог %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .To do this, in the Command Prompt window, navigate to the %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 directory.

  6. Введите эту команду и нажмите клавишу ВВОД:Type this command, and then press Enter:

    aspnet_regiis -iru
    

Рекомендуется использовать Центр обновления Windows на этом этапе, чтобы скачать и установить все доступные обновления для новых продуктов и компонентов, которые вы установили.As a good practice, use Windows Update again at this point to download and install any available updates for the new products and components you’ve installed.

Настройка службы веб-управленияConfigure the Web Management Service

Теперь, когда вы установили все необходимое, следующим шагом является настройка службы веб-управления в службах IIS.Now that you’ve installed everything you need, the next step is to configure the Web Management Service in IIS. На высоком уровне необходимо выполнить следующие задачи:At a high level, you’ll need to complete these tasks:

  • Включите обычную проверку подлинности на уровне сервера.Enable basic authentication at the server level.
  • Настройка службы веб-управления для приема удаленных подключений.Configure the Web Management Service to accept remote connections.
  • Запустите службу веб-управления.Start the Web Management Service.
  • Убедитесь, что установлены необходимые правила делегирования службы веб-управления.Check that the required Web Management Service delegation rules are in place.

Настройка службы веб-управленияTo configure the Web Management Service

  1. В меню Пуск укажите пункт Администрирование, а затем выберите пункт Диспетчер службы IIS (IIS).On the Start menu, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.

  2. В диспетчере служб IIS в области подключения щелкните узел сервера (например, STAGEWEB1).In IIS Manager, in the Connections pane, click the server node (for example, STAGEWEB1).

  3. В центральной области в разделе IISдважды щелкните Проверка подлинности.In the center pane, under IIS, double-click Authentication.

  4. Щелкните правой кнопкой мыши Обычная проверка подлинностии выберите команду включить.Right-click Basic Authentication, and then click Enable.

  5. В области подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.In the Connections pane, click the server node again to return to the top-level settings.

  6. В центральной области в разделе Управлениедважды щелкните Служба управления.In the center pane, under Management, double-click Management Service.

  7. В центральной области выберите включить удаленные соединения.In the center pane, select Enable remote connections.

    Note

    Если служба веб-управления уже запущена, ее необходимо сначала отключить.If the Web Management Service is already running, you’ll need to stop it first.

  8. На панели действия нажмите кнопку запустить , чтобы запустить службу веб-управления.In the Actions pane, click Start to start the Web Management Service.

  9. Если будет предложено сохранить параметры, нажмите кнопку Да.If you’re prompted to save your settings, click Yes.

    Note

    Также может потребоваться настроить автоматический запуск службы.You may also want to configure the service to start automatically. Для этого откройте консоль службы, щелкните правой кнопкой мыши Служба веб-управленияи выберите пункт свойства.To do this, open the Services console, right-click Web Management Service, and then click Properties. В раскрывающемся списке Тип запуска выберите автоматически, а затем нажмите кнопку ОК.In the Startup type dropdown list, select Automatic, and then click OK.

  10. В области подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.In the Connections pane, click the server node again to return to the top-level settings.

  11. В центральной области в разделе Управлениедважды щелкните делегирование службы управления.In the center pane, under Management, double-click Management Service Delegation.

  12. Убедитесь, что Центральная панель содержит набор правил.Verify that the center pane contains a set of rules.

    Эти правила позволяют пользователям службы веб-управления с правами использовать различные поставщики веб-развертывание.These rules allow authorized Web Management Service users to use various Web Deploy providers. Например, для развертывания веб-приложений и содержимого в службах IIS с помощью обработчика веб-развертывание необходимо правило делегирования, которое позволяет всем пользователям службы веб-управления, прошедшим проверку подлинности, использовать поставщиков контентпас и iisapp (Последнее правило, которое можно увидеть на снимке экрана).For example, to deploy web applications and content to IIS through the Web Deploy Handler, there must be a delegation rule that allows all authenticated Web Management Service users to use the contentPath and iisApp providers (the last rule that you can see in the screenshot).

    Если вы установили продукты и компоненты в порядке, описанном в этом разделе, последняя версия веб-развертывание должна автоматически добавить все необходимые правила делегирования в службу веб-управления.If you installed products and components in the order described in this topic, the latest version of Web Deploy should automatically add all the required delegation rules to the Web Management Service. Если на странице делегирования службы управления не отображаются правила, необходимо создать их самостоятельно.If the Management Service Delegation page does not show any rules, you’ll need to create them yourself. Инструкции по выполнению этой задачи см. в разделе Настройка обработчика веб-развертывания.For instructions on how to do this, see Configure the Web Deployment Handler.

  13. В области подключения снова щелкните узел сервера, чтобы вернуться к параметрам верхнего уровня.In the Connections pane, click the server node again to return to the top-level settings.

Создание и Настройка веб-сайта IISCreate and Configure an IIS Website

Прежде чем можно будет развернуть веб-содержимое на сервере, необходимо создать и настроить веб-сайт IIS для размещения содержимого.Before you can deploy web content to your server, you need to create and configure an IIS website to host the content. Веб-развертывание может развертывать только веб-пакеты на существующем веб-сайте IIS; Он не может создать веб-сайт.Web Deploy can only deploy web packages to an existing IIS website; it can’t create the website for you. Кроме того, необходимо выполнить дополнительную настройку, позволяющую учетной записи без прав администратора развертывать содержимое удаленно.You also need to do a little extra configuration to allow your non-administrator account to deploy content remotely. На высоком уровне необходимо выполнить следующие задачи:At a high level, you’ll need to complete these tasks:

  • Создайте папку в файловой системе для размещения содержимого.Create a folder on the file system to host your content.
  • Создайте веб-сайт IIS для обслуживания содержимого и свяжите его с локальной папкой.Create an IIS website to serve the content, and associate it with the local folder.
  • Предоставьте разрешения на чтение удостоверению пула приложений в локальной папке.Grant read permissions to the application pool identity on the local folder.
  • Предоставьте необходимые разрешения IIS учетной записи домена, которая будет развертывать веб-приложение.Grant the necessary IIS permissions to the domain account that will deploy your web application.

Хотя ничто не мешает развертывать содержимое на веб-сайте по умолчанию в службах IIS, этот подход не рекомендуется использовать ни для тестов, ни для демонстрационных сценариев.Although there’s nothing stopping you from deploying content to the default website in IIS, this approach is not recommended for anything other than test or demonstration scenarios. Для имитации рабочей среды следует создать новый веб-сайт IIS с параметрами, зависящими от требований приложения.To simulate a production environment, you should create a new IIS website with settings that are specific to the requirements of your application.

Создание веб-сайта IISTo create an IIS website

  1. В локальной файловой системе создайте папку для хранения содержимого (например, к:\демосите).On the local file system, create a folder to store your content (for example, C:\DemoSite).

  2. В меню Пуск укажите пункт Администрирование, а затем выберите пункт Диспетчер службы IIS (IIS).On the Start menu, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.

  3. В диспетчере служб IIS в области подключения разверните узел сервера (например, STAGEWEB1).In IIS Manager, in the Connections pane, expand the server node (for example, STAGEWEB1).

  4. Щелкните правой кнопкой мыши узел сайты и выберите команду Добавить веб-сайт.Right-click the Sites node, and then click Add Web Site.

  5. В поле имя сайта введите имя веб-сайта IIS (например, демосите).In the Site name box, type a name for the IIS website (for example, DemoSite).

  6. В поле физический путь введите (или перейдите к) путь к локальной папке (например, к:\демосите).In the Physical path box, type (or browse to) the path to your local folder (for example, C:\DemoSite).

  7. В поле порт введите номер порта, на котором будет размещен веб-сайт (например, 85).In the Port box, type the port number on which you want to host the website (for example, 85).

    Note

    Номера стандартных портов 80 для HTTP и 443 для HTTPS.The standard port numbers are 80 for HTTP and 443 for HTTPS. Однако при размещении этого веб-сайта на порту 80 необходимо будет закрыть веб-сайт по умолчанию, прежде чем можно будет получить доступ к сайту.However, if you host this website on port 80, you’ll need to stop the default website before you can access your site.

  8. Оставьте поле имя узла пустым, если не требуется настроить запись службы доменных имен (DNS) для веб-сайта, а затем нажмите кнопку ОК.Leave the Host name box blank, unless you want to configure a Domain Name System (DNS) record for the website, and then click OK.

    Note

    В рабочей среде вам, скорее всего, потребуется разместить веб-сайт через порт 80 и настроить заголовок узла вместе с соответствующими записями DNS.In a production environment, you’ll likely want to host your website on port 80 and configure a host header, together with matching DNS records. Дополнительные сведения о настройке заголовков узлов в IIS 7 см. в разделе Настройка заголовка узла для веб-сайта (IIS 7).For more information on configuring host headers in IIS 7, see Configure a Host Header for a Web Site (IIS 7). Дополнительные сведения о роли DNS-сервера в Windows Server см. в разделе Обзор DNS-сервера и DNS-сервер.For more information on the DNS Server role in Windows Server, see DNS Server Overview and DNS Server.

  9. В области Действия в разделе Изменение веб-сайтавыберите пункт Привязки.In the Actions pane, under Edit Site, click Bindings.

  10. В диалоговом окне Привязки сайта нажмите кнопку Добавить.In the Site Bindings dialog box, click Add.

  11. В диалоговом окне Добавление привязки сайта задайте IP-адрес и порт в соответствии с существующей конфигурацией сайта.In the Add Site Binding dialog box, set the IP address and Port to match your existing site configuration.

  12. В поле имя узла введите имя веб-сервера (например, STAGEWEB1) и нажмите кнопку О

Установка и настройка веб-сервера для сайта в Ubuntu

Что такое LAMP

LAMP расшифровывается как Linux, Apache, MySQL, PHP. Связка технологий Apache, MySQL, PHP необходима для того, чтобы запустить веб-сайты как собственной разработки, так и сайты на популярных CMS: WordPress, Joomla, Prestashop, Drupal и прочих.

 

 

Каждый компонент мы будем устанавливать и настраивать по отдельности.

 

Установка Apache

Apache — это веб-сервер с открытым исходным кодом. Работу веб-сервера можно описать так: На каждый запрос, веб-сервер отдает ответ в зависимости от запроса.

Иными словами, по аналогии, если вы обратитесь с каким-либо вопросом к человеку, он вам ответит или не ответит.

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

 

Для того, чтобы установить веб-сервер Apache, введите команду в терминал:

sudo apt-get install apache2

 

Что такое команда sudo и зачем она нужна, вы можете прочитать в этой статье. 

После установки Apache, для проверки работоспособности веб-сервера, введите в браузере ip адрес сервера.

Если вы устанавливали Apache сервер на локально, например на ваш домашний компьютер, введите в браузере 127.0.0.1 и вы должны увидеть страницу приветствия веб-сервера Apache.

 

 

Установка PHP

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

sudo apt-get install php5 php5-common libapache2-mod-php5 php5-cli php5-cgi php5-mysql

 

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

После выполнения команды выше, введите в терминале php -v и вы должны удивить версию php:

$ php -v
PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

 

Если вы у себя это видите в терминале, это значит, что php установлен. 

 

Установка MySQL

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

 

Установка MySQL на ваш с сервер с Ubuntu/Linux очень простая. Для установки введите команду:

sudo apt-get install mysql-server mysql-client

 

В процессе установки MySQL вас попросят ввести пароль для пользователя root в MySQL, затем попросят ввести пароль для root пользователя MySQL повторно. 

Будьте внимательны, перед вводом запишите пароль.

 

 

В данной статье мы установили не только MySQL сервер, но и консольный MySQL клиент. Для удобства работы с MySQL давайте установим графический веб-клиент к MySQL — PhpMyAdmin.

 

Для установки PhpMyAdmin введите команду:

sudo apt-get install phpmyadmin

 

В процессе установки PhpMyAdmin вам предложат настроить связку веб-сервера и phpmyadmin автоматически. На этом шаге выберите автоконфигурацию для веб-сервера apache2. 

 

 

На следующий вопрос о конфигурации ответьте Yes. После этого вас снова попросят ввести пароль к пользователю root.

После этого, установка и настройка phpmyadmin будет завершена. Для проверки работоспособности phpmyadmin введите в браузере ip адрес вашего веб-сервера и после слеша допишите phpmyadmin.

 

Если вы устанавливали phpmyadmin на локальный сервер, введите в браузере:

http://127.0.0.1/phpmyadmin/  

 

В результате вы увидите страницу авторизации phpmyadmin:

 

Введите root и пароль, который вы задавали в процессе установки MySQL и вы войдете в phpmyadmin.

 

Настройка конфига веб-сервера Apache для работы на домене

Очень часто простой установки веб-сервера Apache бывает недостаточно, если вы хотите разрабатывать сайт и просматривать его так, как будто он находится в интернете и доступен по вашему доменному имени, например superdomain.com.

Давайте настроим конфиг Apache2 для того, чтобы это реализовать.

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

cd /var/www/html/

 

После этого создайте каталог для вашего сайта:

sudo mkdir superdomain

 

Для того, чтобы мы могли вносить изменения в каталог superdomain, нам нужно изменить владельца каталога с пользователя root на вашего пользователя.

Для этого введите в терминале команду:

cd ..

 

А после этого команду:

sudo chown -R user:user superdomain

 

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

 

Затем перейдите в созданный каталог superdomain и создайте в нем файл index.php и php скриптом.

Для этого в терминале введите команду:

cd superdomain

 

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

nano index.php

 

после этого вставьте php скрипт, например с таким содержимым:

 

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

 

Команды Linux описаны в этой статье.

 

А сейчас мы настроим конфиг веб-сервера apache2.

Для этого введите команду:

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

 

и вставьте этот текст:

 

После этого нажмите сочетание клавиш ctr+x и букву y, затем enter.

В этом конфиге мы создали указали пути к директории нашего сайта superdomain, указали название домена, правила, email веб-мастера, если пользователь будет видеть ошибку, пути к лог файлам apache и другие настройки.

 

После этого нам необходимо перейти в каталог apache :

cd /etc/apache2/sites-available/

 

и выполнить команду:

sudo a2ensite superdomain.com.conf 

 

Если все сделали правильно после ввода этой команды вы должны увидеть это:

Enabling site superdomain.com.
To activate the new configuration, you need to run:
  service apache2 reload

 

Для применения нового конфига apache для нашего сайта superdomain.com введите команду:

service apache2 reload

 

Если после запуска команды выше, веб-сервер apache2 не будет ругаться на ошибки, значит вы все сделали правильно и остался последний шаг, чтобы запустить наш сайт с домена superdomain.com.

Если у вас нет понимания команд которые вы вводите в терминал Linux, прочитайте статью о Bash командах.

Последнее изменение которое необходимо внести, для запуска сайта на домене superdomain.com, прописать в файле hosts ip-адрес сервера(в данном примере веб-сервер локальный) и название домена superdomain.com:

127.0.0.1 superdomain.com

 

Файл hosts находится в Linux:

/etc/hosts

 

В операционной системе Winodows, файл hosts находится:

C:\Windows\System32\drivers\etc\hosts 

 

Все готово! Сохраните файл hosts и в браузере введите

superdomain.com

 

В результате вы должы увидеть php вывод страницы index.php из каталога superdomain.

 

Выводы

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

Мы показали базовые настройки LAMP. А если ваш проект перерастет во что-то большое, вы можете купить VDS сервер, от компании Timeweb с Ubuntu на борту и произвести настройку LAMP в нем. 

В следующих статьях мы рассмотрим расширенные настройки PHP, Apache, MySQL и то, как настройть WAMP(Windows, Apache, PHP, MySQL).

Оставайтесь с нами и следите за новыми публикациями в нашей группе VK.



Читайте также


Все материалы с сайта wh-db.com и ru.wh-db.com защищены авторским правом. Копирование, публикация, продажа и распространение материала строго запрещены.

Установка веб-сервера — Документация ISPmanager Lite

Веб-сервер обслуживает запросы пользователей к сайтам на сервере с ISPmanager.

ISPmanager работает с веб-серверами:

  • Nginx — обслуживает запросы статического содержимого;
  • Apache — обслуживает запросы статического и динамического содержимого.

Рекомендуем использовать оба веб-сервера, т. к. Nginx лучше справляется с большой нагрузкой на сервер, чем Apache, но при этом не обрабатывает динамическое содержимое. Тогда Nginx будет обслуживать запросы статического содержимого, а Apache — динамического. Статическое содержимое передаётся пользователю в том же виде, в каком оно представлено на сервере. Динамическое содержимое перед отправкой пользователю изменяется скриптами.

Веб-серверы могут работать с несколькими WWW-доменами на одном IP-адресе. В Apache для этого используется механизм виртуальных хостов (VirtualHost), в Nginx — несколько секций server в конфигурационном файле. В конфигурационных файлах веб-серверов указываются все необходимые параметры работы сайтов. Эти параметры настраиваются на основе информации, указанной при создании WWW-домена. Подробнее см. в статье Создание WWW-домена.

Чтобы установить веб-сервер:

  1. Перейдите в Настройки → Возможности → выберите Веб-сервер (WWW)Изменить.
  2. Выберите тип установки Apache:
    • не использовать;
    • Apache MPM-Prefork — Apache с модулем Prefork. При запуске создаёт несколько процессов для обработки запросов. При большом количестве запросов это позволяет быстрее их обрабатывать. Процессы работают от имени пользователя, под которым запущен Apache. В связи с этим менее безопасен по сравнению с Apache MPM-ITK и требует больше прав на файлы сайтов;
    • Apache MPM-ITK — Apache с модулем ITK. Создаёт отдельный процесс на каждый запрос. Процесс запускается под отдельным пользователем (uid) и группой пользователя (gid). За счёт этого он более изолирован и позволяет избежать проблем с доступом процесса к файлам сайта пользователя.
  3. Установите для Apache необходимые модули:
    1. Модуль PHP для поддержки режимов PHP «модуль Apache» и «FastCGI (Apache)». Подробнее см. в статье Режимы работы PHP.
    2. Анализаторы статистических журналов: Веб-статистика awstats и Веб-статистика webalizer. Подробнее см. в статье Настройка сбора статистики запросов к сайтам.
  4. Включите опцию Nginx, чтобы установить его.
  5. Установите для Nginx PHP-FPM FastCGI, чтобы поддерживался режим работы PHP «FastCGI (Nginx + PHP-FPM)». Подробнее см. в статье Режимы работы PHP.
  6. Включите опцию Ротация логов для архивирования и удаления старых журналов веб-серверов. Подробнее см. в статье Настройка сбора статистики запросов к сайтам.
  7. Нажмите Применить изменения и дождитесь окончания установки.

Настройка web сервера apache в CentOS 8 ⋆ Clip-Clap

Сегодня займемся поднятием одной из наиболее востребованных ролей любого linux сервера, которые занимают в этом функциональном сегменте лидирующую роль. Настройка web сервера CentOS 8 на базе связки популярного http сервера apache, интерпретатора php и сервера баз данных mysql, или коротко — установка lamp. Данная связка является самой популярной конфигурацией на сегодняшний день среди веб хостинга. Хотя последнее время ей на пятки наступает та же компания, но на базе nginx, возможно уже и опередила, точных данных у меня нет на этот счет.

Цели статьи

  1. Описать общий принцип настройки web сервера на базе apache.
  2. Показать, как установить актуальные версии apache, php и mariadb.
  3. Привести примеры своих конфигов для перечисленных сервисов.
  4. Настроить бесплатные ssl сертификаты let’s encrypt для сайтов.
  5. Показать, как настроить selinux для web сервера apache (httpd).
  6. Записать и показать видео настройки веб сервера apache.

Введение

В этой статье я расскажу, как настроить web сервер на базе популярного стека технологий — apache и php с модулем prefork. В связи с выходом нового релиза Centos 8, многие статьи на эту тему стали не актуальны, так как версии софта в базовых репозиториях обновились и тот же php нет смысла ставить из стороннего репозитория.

Работать будем на сервере под управлением CentOS 8. Не забудьте уделить внимание теме настройки iptables. В данной статье я ее не буду касаться, хотя тема важная для web сервера.

В своей тестовой среде я буду использовать следующие сущности.

z.serveradmin.ru имя тестового виртуального хоста и сайта
/web/sites директория для размещения виртуальных хостов
10.20.1.23 локальный ip адрес сервера
pma.serveradmin.ru имя виртуального хоста для phpmyadmin

Если вам не хочется настраивать SELinux, то просто отключите его. Если же вы планируете включить и использовать после настройки, то переведите его в режим Permissive. В этом режиме он будет отключен, но все ограничения будут отражаться в лог файле audit.log. Это позволит нам в конце статьи сформировать модуль selinux для httpd и php и включить их.

# setenforce 0

Web сервер на CentOS 8

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 3 Gb
Диск 30 Gb SSD

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

5 наиболее популярных вариантов настройки сервера для веб-приложения

Главная страница » 5 наиболее популярных вариантов настройки сервера для веб-приложения

Привет, эта статья рассматривает 5 наиболее популярных вариантов настройки сервера для веб-приложения. Какие варианты бывают и какой из них выбрать?

Существует множество факторов, которые необходимо учитывать при выборе серверного окружения (environment), такие как производительность, масштабируемость, доступность, надежность, стоимость и простота управления.

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

1. Все на одном сервере

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

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

Плюсы:

Минусы:

  • Приложение и база данных используют одни и те же ресурсы сервера (CPU, память, I/O и т.д.), что, помимо потенциально низкой производительности, затрудняет определение источника (приложение или база данных) этой самой низкой производительности.
  • Затруднительно осуществлять горизонтальное масштабирование.

2. Выделенный сервер баз данных

Система управления базами данных (СУБД) может быть отделена от остального окружения, чтобы исключить конкуренцию за ресурсы сервера между приложением и базой данных и усилить безопасность, убрав базу данных из DMZ, общедоступного интернета.

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

Плюсы:

  • Приложение и база данных не конкурируют за одни и те же ресурсы сервера (CPU, память, I/O и т.д.).
  • Вы можете вертикально масштабировать каждый компонент (приложение и базу данных) независимо друг от друга, добавляя дополнительные ресурсы к нужному серверу.
  • При определенных настройках это может повысить безопасность, убрав базу данных из DMZ.

Минусы:

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

3. Балансировщик нагрузки (обратный прокси)

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

Примеры программного обеспечения, поддерживающего обратный прокси: HAProxy, Nginx, и Varnish.

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

Плюсы:

  • Делает возможным горизонтальное масштабирование, то есть ресурсы окружения могут быть увеличены путем добавления в него новых серверов.
  • Может защитить от DDOS-атак путем ограничения клиентских соединения до приемлемого количества и частоты.

Минусы:

  • Балансировщик нагрузки может стать узким местом в производительности, если он испытывает нехватку ресурсов или плохо настроен.
  • Может создать дополнительные сложности, требующие дополнительных усилий от администратора, например, работа с приложениями, которые требуют так называемых «липких сессий» (sticky session).

4. HTTP Accelerator (кэширующий обратный прокси)

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

Примеры программного обеспечения, поддерживающего HTTP acceleration: Varnish, Squid, Nginx.

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

Плюсы:

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

Минусы:

  • Требуется настройка для достижения наилучшей производительности.
  • Если сам характер запросов пользователей не предполагает возможности эффективного кэширования, это может снизить производительность сервера.

5. Репликация базы данных по схеме ведущий-ведомый (Master-Slave)

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

Пример использования: Дает хорошее увеличение производительности приложения в части чтения из базы данных.

Вот пример репликации базы данных по схеме ведущий-ведомый с одним ведомым узлом:

Плюсы:

  • Улучшает производительность чтения из базы данных путем распределения запросов на чтение между ведомыми узлами.
  • Может улучшить производительность записи путем использования ведущего узла исключительно для записи (таким образом он не тратит время на обслуживание запросов на чтение)

Минусы:

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

Пример: комбинирование концепций

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

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

Давайте предположим, что балансировщик нагрузки настроен на распознавание статических запросов (таких как изображения, CSS, JavaScript и т.д.) и отправляет эти запросы к серверам кэширования, а все другие запросы — к серверам приложений.

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

  1. Пользователь запрашивает динамический контент с http://example.com/ (балансировщик нагрузки).
  2. Балансировщик нагрузки посылает запрос на сервер приложения (app-backend).
  3. Сервер приложения (app-backend) читает из базы и возвращает запрашиваемый контент обратно балансировщику нагрузки.
  4. Балансировщик нагрузки возвращает запрашиваемый контент пользователю.

Если пользователь запрашивает статический контент:

  1. Балансировщик нагрузки проверяет кэш (cache-backend) на предмет того, закэширован ли запрашиваемый контент.
  2. Если закэширован, то запрашиваемый контент возвращается балансирощику нагрузки, переходим в шагу 7. Если не закэширован, то сервер кэширование перенаправит запрос на сервер приложения через балансировщик нагрузки.
  3. Балансировщик нагрузки перенаправит запрос на сервер приложения.
  4. Сервер приложения (app-backend) читает из базы и возвращает запрашиваемый контент обратно балансировщику нагрузки.
  5. Балансировщик нагрузки перенаправляет ответ к серверу кэширования (cache-backend).
  6. Сервер кэширования кэширует полученный контент и возвращает его балансировщику нагрузки.
  7. Балансировщик нагрузки возвращает запрашиваемый контент пользователю.

Данное окружение имеет две возможные точки отказа (балансировщик нагрузки и ведущий сервер базы данных), но обеспечивает другие преимущества в области надежности и производительности, описанные ранее в каждом из пунктов.

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

895

Смотрите также:

Понравилась статья? Поделитесь ей с друзьями!

  • Веб разработка

Установите веб-сервер WEB1

  • 2 минуты на чтение

В этой статье

Применимо к: Windows Server (полугодовой канал), Windows Server 2016

Роль веб-сервера (IIS) в Windows Server 2016 предоставляет безопасную, простую в управлении, модульную и расширяемую платформу для надежного размещения веб-сайтов, служб и приложений.С помощью IIS вы можете обмениваться информацией с пользователями в Интернете, интрасети или экстрасети. IIS — это унифицированная веб-платформа, которая объединяет IIS, ASP.NET, службы FTP, PHP и Windows Communication Foundation (WCF).

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

Если сертификат находится в CRL как отозванный, проверка подлинности не выполняется, и ваш компьютер защищен от доверия к объекту, у которого сертификат больше не действителен.

Перед установкой роли веб-сервера (IIS) убедитесь, что вы настроили имя сервера и IP-адрес и присоединили компьютер к домену.

Для установки роли сервера веб-сервера (IIS)

Для выполнения этой процедуры вы должны быть членом группы Администраторы .

Примечание

Чтобы выполнить эту процедуру с помощью Windows PowerShell, откройте PowerShell, введите следующую команду и нажмите клавишу ВВОД.
Install-WindowsFeature Web-Server -IncludeManagementTools

  1. В диспетчере сервера щелкните Управление , а затем щелкните Добавить роли и компоненты . Откроется мастер добавления ролей и компонентов.
  2. В Перед началом работы щелкните Далее .

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

  1. На странице Тип установки щелкните Далее .
  2. На странице Выбор сервера щелкните Далее .
  3. На странице Роли сервера выберите Веб-сервер (IIS) , а затем щелкните Далее .
  4. Щелкните Далее , пока не примете все настройки веб-сервера по умолчанию, а затем щелкните Установить .
  5. Убедитесь, что все установки прошли успешно, и нажмите Закрыть .

Первые шаги программирования веб-сайтов на стороне сервера — Изучите веб-разработку

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

Предварительные требования

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

Однако вы должны кое-что понимать о работе веб-сайтов и веб-серверов. Для этого мы рекомендуем эту литературу:

Обладая базовыми знаниями, которые вы получите в результате этой подготовки, вы будете готовы работать над модулями в этом разделе.

Руководства

Введение в серверную часть
Добро пожаловать на курс серверного программирования MDN для новичков! Первая статья рассматривает программирование на стороне сервера с высокого уровня, отвечая на такие вопросы, как «Что это такое?», «Чем оно отличается от программирования на стороне клиента?» И «Почему это так полезно?».Прочитав это, вы поймете, какие дополнительные возможности доступны веб-сайтам посредством серверного кодирования.
Обзор клиент-сервер
Теперь, когда вы знаете цель и потенциальные преимущества серверного программирования, мы собираемся изучить, что происходит, когда сервер получает «динамический запрос» от браузера. Поскольку код большинства веб-сайтов на стороне сервера обрабатывает запросы и ответы аналогичным образом, это поможет вам понять, что вам нужно делать при написании собственного кода.
Серверные веб-фреймворки
В предыдущей статье объяснялось, что должно делать серверное веб-приложение, чтобы отвечать на запросы веб-браузера. В этой статье объясняется, как веб-фреймворки могут упростить эти задачи, и помогает выбрать правильный фреймворк для вашего первого серверного веб-приложения.
Безопасность веб-сайта
Безопасность веб-сайта требует бдительности во всех аспектах создания и эксплуатации сайта. Эта вводная статья поможет вам понять первые важные шаги, которые вы можете предпринять для защиты своего веб-приложения от наиболее распространенных угроз.

Оценки

Этот модуль «Первые шаги» не оценивается, потому что мы еще не показали вам никакого кода. На этом этапе у вас должно быть общее представление о том, какие функции вы можете предоставить с помощью серверного программирования, и вы приняли решение о том, какую серверную веб-структуру вы будете использовать для создания своего первого серверного приложения.

веб-серверов — Apache | Документация на сервер

Apache — наиболее часто используемый веб-сервер в системах Linux.Веб-серверы используются для обслуживания веб-страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают и просматривают веб-страницы с помощью приложений веб-браузера, таких как Firefox, Opera, Chromium или Internet Explorer.

Пользователи вводят унифицированный указатель ресурса (URL), чтобы указать на веб-сервер с помощью его полного доменного имени (FQDN) и пути к требуемому ресурсу. Например, для просмотра домашней страницы веб-сайта Ubuntu пользователь вводит только полное доменное имя:

.

  www.ubuntu.com
  

Для просмотра подстраницы сообщества пользователь вводит полное доменное имя, за которым следует путь:

  www.ubuntu.com/community
  

Наиболее распространенным протоколом, используемым для передачи веб-страниц, является протокол передачи гипертекста (HTTP). Также поддерживаются такие протоколы, как протокол передачи гипертекста через Secure Sockets Layer (HTTPS) и протокол передачи файлов (FTP), протокол для загрузки и выгрузки файлов.

Веб-серверы Apache

часто используются в сочетании с ядром базы данных MySQL, языком сценариев препроцессора гипертекста (PHP) и другими популярными языками сценариев, такими как Python и Perl.Эта конфигурация называется LAMP (Linux, Apache, MySQL и Perl / Python / PHP) и образует мощную и надежную платформу для разработки и развертывания веб-приложений.

Установка

Веб-сервер Apache2 доступен в Ubuntu Linux. Чтобы установить Apache2:

В командной строке терминала введите следующую команду:

  sudo apt установить apache2
  

Конфигурация

Apache2 настраивается путем помещения директив в файлы конфигурации в виде простого текста.Эти директивы разделены между следующими файлами и каталогами:

  • apache2.conf: основной файл конфигурации Apache2. Содержит настройки, которые являются глобальными для Apache2.

  • httpd.conf: исторически основной файл конфигурации Apache2, названный в честь демона httpd. В других дистрибутивах (или более старых версиях Ubuntu) файл может присутствовать. В Ubuntu все параметры конфигурации перенесены на apache2.conf и указанные ниже каталоги, и этот файл больше не существует.

  • conf-available: этот каталог содержит доступные файлы конфигурации. Все файлы, которые ранее находились в /etc/apache2/conf.d , следует переместить в / etc / apache2 / conf-available .

  • conf-enabled: содержит символических ссылок на файлы в / etc / apache2 / conf-available . Когда файл конфигурации имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • envvars: файл, в котором установлены переменные среды Apache2 .

  • mods-available: этот каталог содержит файлы конфигурации для загрузки модулей и их настройки. Однако не все модули будут иметь определенные файлы конфигурации.

  • с поддержкой модов: содержит символических ссылок на файлы в / etc / apache2 / mods-available . Когда файл конфигурации модуля имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • ports.conf: содержит директивы, определяющие, какие TCP-порты прослушивает Apache2.

  • сайты-доступные: в этом каталоге есть файлы конфигурации для виртуальных хостов Apache2 . Виртуальные хосты позволяют настраивать Apache2 для нескольких сайтов с отдельными конфигурациями.

  • с поддержкой сайтов: с поддержкой модов, с поддержкой сайтов содержит символические ссылки на каталог / etc / apache2 / sites-available .Точно так же, когда файл конфигурации в sites-available имеет символическую ссылку, сайт, настроенный им, будет активен после перезапуска Apache2.

  • magic: инструкции для определения типа MIME на основе первых нескольких байтов файла.

Кроме того, другие файлы конфигурации могут быть добавлены с помощью директивы Include , а подстановочные знаки могут использоваться для включения многих файлов конфигурации. Любая директива может быть помещена в любой из этих файлов конфигурации.Изменения в основных файлах конфигурации распознаются Apache2 только при его запуске или перезапуске.

Сервер также читает файл, содержащий типы документов mime; имя файла задается директивой TypesConfig , обычно через /etc/apache2/mods-available/mime.conf , который также может включать дополнения и переопределения, и по умолчанию /etc/mime.types .

Основные настройки

В этом разделе объясняются основные параметры конфигурации сервера Apache2.Обратитесь к документации Apache2 для получения более подробной информации.

  • Apache2 поставляется с конфигурацией по умолчанию, дружественной к виртуальному хосту. То есть он настроен с одним виртуальным хостом по умолчанию (с использованием директивы VirtualHost ), который можно изменять или использовать как есть, если у вас один сайт, или использовать в качестве шаблона для дополнительных виртуальных хостов, если у вас несколько сайтов. . Если оставить его в покое, виртуальный хост по умолчанию будет служить вашим сайтом по умолчанию, или пользователи сайта увидят, не соответствует ли введенный ими URL-адрес директиве ServerName любого из ваших настраиваемых сайтов.Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл /etc/apache2/sites-available/000-default.conf .

    Примечание

    Директивы, установленные для виртуального хоста, применяются только к этому конкретному виртуальному хосту. Если директива установлена ​​на уровне сервера и не определена в настройках виртуального хоста, используется настройка по умолчанию. Например, вы можете определить адрес электронной почты веб-мастера и не определять отдельные адреса электронной почты для каждого виртуального хоста.

    Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в тот же каталог с выбранным вами именем.Например:

      sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mynewsite.conf
      

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

  • Директива ServerAdmin указывает адрес электронной почты, который будет объявлен для администратора сервера. Значение по умолчанию — webmaster @ localhost. Его следует изменить на адрес электронной почты, который будет доставлен вам (если вы являетесь администратором сервера).Если на вашем веб-сайте возникла проблема, Apache2 отобразит сообщение об ошибке, содержащее этот адрес электронной почты, чтобы сообщить о проблеме. Найдите эту директиву в файле конфигурации вашего сайта в / etc / apache2 / sites-available.

  • Директива Listen указывает порт и, необязательно, IP-адрес, который Apache2 должен прослушивать. Если IP-адрес не указан, Apache2 будет прослушивать все IP-адреса, назначенные машине, на которой он работает. Значение по умолчанию для директивы Listen — 80.Измените это значение на 127.0.0.1:80, чтобы Apache2 слушал только ваш интерфейс обратной петли, чтобы он не был доступен в Интернете, на (например) 81, чтобы изменить порт, который он слушает, или оставьте его как есть для Нормальная операция. Эту директиву можно найти и изменить в ее собственном файле, /etc/apache2/ports.conf

  • Директива ServerName является необязательной и указывает, на какое полное доменное имя должен отвечать ваш сайт. Для виртуального хоста по умолчанию не указана директива ServerName, поэтому он будет отвечать на все запросы, которые не соответствуют директиве ServerName на другом виртуальном хосте.Если вы только что приобрели доменное имя mynewsite.com и хотите разместить его на своем сервере Ubuntu, значение директивы ServerName в файле конфигурации вашего виртуального хоста должно быть mynewsite.com . Добавьте эту директиву в новый файл виртуального хоста, который вы создали ранее ( /etc/apache2/sites-available/mynewsite.conf ).

    Вы также можете захотеть, чтобы ваш сайт отвечал на www.mynewsite.com , поскольку многие пользователи сочтут уместным префикс www.Используйте для этого директиву ServerAlias ​​. Вы также можете использовать подстановочные знаки в директиве ServerAlias.

    Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, заканчивающийся на .mynewsite.com .

      ServerAlias ​​* .mynewsite.com
      
  • Директива DocumentRoot указывает, где Apache2 должен искать файлы, составляющие сайт. Значение по умолчанию — / var / www / html, как указано в / etc / apache2 / sites-available / 000-default.conf . При желании измените это значение в файле виртуального хоста вашего сайта и не забудьте при необходимости создать этот каталог!

Включите новый VirtualHost с помощью утилиты a2ensite и перезапустите Apache2:

  судо a2ensite mynewsite
sudo systemctl перезапустить apache2.service
  

Примечание

Обязательно замените mynewsite на более информативное имя VirtualHost. Один из способов — присвоить файлу имя после директивы ServerName VirtualHost.

Аналогичным образом воспользуйтесь утилитой a2dissite для отключения сайтов. Это может быть полезно при устранении проблем с конфигурацией с несколькими VirtualHosts:

  судо a2dissite mynewsite
sudo systemctl перезапустить apache2.service
  

Настройки по умолчанию

В этом разделе объясняется конфигурация настроек сервера Apache2 по умолчанию. Например, если вы добавляете виртуальный хост, настройки, которые вы настраиваете для виртуального хоста, имеют приоритет для этого виртуального хоста.Для директивы, не определенной в настройках виртуального хоста, используется значение по умолчанию.

  • DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указывая косую черту (/) в конце имени каталога.

    Например, когда пользователь запрашивает страницу http://www.example.com/this_directory/ , он или она получит либо страницу DirectoryIndex, если она существует, либо список каталогов, созданный сервером, если нет, и Указана опция индексов или страница с отказом в разрешении, если ни один из них не является истинным.Сервер попытается найти один из файлов, перечисленных в директиве DirectoryIndex, и вернет первый найденный. Если он не находит ни одного из этих файлов и если для этого каталога установлено значение Options Indexes , сервер сгенерирует и вернет список в формате HTML подкаталогов и файлов в каталоге. Значение по умолчанию, которое находится в /etc/apache2/mods-available/dir.conf , — «index.html index.cgi index.pl index.php index.xhtml index.htm». Таким образом, если Apache2 найдет файл в запрошенном каталоге, соответствующий любому из этих имен, будет отображаться первый.

  • Директива ErrorDocument позволяет указать файл, который Apache2 будет использовать для определенных событий ошибки. Например, если пользователь запрашивает ресурс, которого не существует, возникает ошибка 404. По умолчанию Apache2 просто возвращает код возврата HTTP 404. Прочтите /etc/apache2/conf-available/localized-error-pages.conf для получения подробных инструкций по использованию ErrorDocument, включая расположение файлов примеров.

  • По умолчанию сервер записывает журнал передачи в файл / var / log / apache2 / access.журнал . Вы можете изменить это для каждого сайта в файлах конфигурации вашего виртуального хоста с помощью директивы CustomLog или опустить его, чтобы принять значение по умолчанию, указанное в / etc / apache2 / conf-available / other-vhosts-access-log .conf . Вы также можете указать файл, в котором регистрируются ошибки, с помощью директивы ErrorLog , значение по умолчанию которой — /var/log/apache2/error.log . Они хранятся отдельно от журналов передачи, чтобы помочь в устранении проблем с вашим сервером Apache2.Вы также можете указать LogLevel (значение по умолчанию — «предупреждение») и LogFormat (значение по умолчанию см. В /etc/apache2/apache2.conf ).

  • Некоторые параметры указываются для каждого каталога, а не для каждого сервера. Опции — одна из этих директив. Раздел каталога заключен в теги, подобные XML, например:

      
    ...
    
      

    Директива Options в разделе Directory принимает одно или несколько из следующих значений (среди прочих), разделенных пробелами:

    • ExecCGI — Разрешить выполнение сценариев CGI.Если этот параметр не выбран, сценарии CGI не выполняются.

      Осторожно

      Большинство файлов не должны выполняться как сценарии CGI. Это было бы очень опасно. Сценарии CGI должны храниться в каталоге отдельно от вашего DocumentRoot и вне его, и только в этом каталоге должна быть установлена ​​опция ExecCGI. Это значение по умолчанию, а расположение по умолчанию для сценариев CGI — / usr / lib / cgi-bin .

    • Включает — Разрешить включение на стороне сервера.Серверные включения позволяют HTML-файлу включать других файлов. См. Документацию Apache SSI (сообщество Ubuntu) для получения дополнительной информации.

    • Включает NOEXEC — Разрешить серверные включения, но отключить команды #exec и #include в сценариях CGI.

    • Индексы — отображение форматированного списка содержимого каталога, если в запрошенном каталоге нет DirectoryIndex (например, index.html).

      Осторожно

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

    • Multiview — Поддержка мультиракурсов с согласованием содержимого; эта опция по умолчанию отключена из соображений безопасности. См. Документацию Apache2 по этому параметру.

    • SymLinksIfOwnerMatch — Переходить по символическим ссылкам только в том случае, если у целевого файла или каталога того же владельца, что и у ссылки.

Настройки apache2

В этом разделе объясняются некоторые основные параметры конфигурации демона apache2.

LockFile — Директива LockFile устанавливает путь к файлу блокировки, который используется при компиляции сервера с использованием USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT.Он должен храниться на локальном диске. Следует оставить значение по умолчанию, если каталог журналов не находится в общей папке NFS. В этом случае значение по умолчанию следует изменить на расположение на локальном диске и на каталог, доступный для чтения только пользователю root.

PidFile — Директива PidFile устанавливает файл, в который сервер записывает свой идентификатор процесса (pid). Этот файл должен быть доступен для чтения только root. В большинстве случаев следует оставить значение по умолчанию.

Пользователь — Директива User устанавливает идентификатор пользователя, используемый сервером для ответа на запросы.Этот параметр определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, также будут недоступны для посетителей вашего сайта. Значение по умолчанию для пользователя — «www-data».

Предупреждение

Если вы точно не знаете, что делаете, не устанавливайте в директиве User значение root. Использование root в качестве пользователя создаст большие дыры в безопасности для вашего веб-сервера.

Группа — Директива группы аналогична директиве пользователя. Группа устанавливает группу, в которой сервер будет отвечать на запросы.Группа по умолчанию также «www-data».

Модули Apache2

Apache2 — модульный сервер. Это означает, что в главный сервер включены только самые основные функции. Расширенные функции доступны через модули, которые можно загрузить в Apache2. По умолчанию базовый набор модулей включается в сервер во время компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули можно скомпилировать отдельно и добавить в любое время с помощью директивы LoadModule.В противном случае необходимо перекомпилировать Apache2 для добавления или удаления модулей.

Ubuntu компилирует Apache2 для динамической загрузки модулей. Директивы конфигурации могут быть условно включены при наличии конкретного модуля, заключив их в блок .

Вы можете установить дополнительные модули Apache2 и использовать их на своем веб-сервере. Например, выполните следующую команду в командной строке терминала, чтобы установить модуль Python 3 WSGI:

  sudo apt установить libapache2-mod-wsgi-py3
  

Установка включит модуль автоматически, но мы можем отключить его с помощью a2dismod :

  судо a2dismod wsgi
sudo systemctl перезапустить apache2.оказание услуг
  

А затем используйте утилиту a2enmod , чтобы снова включить ее:

  судо a2enmod wsgi
sudo systemctl перезапустить apache2.service
  

См. Каталог / etc / apache2 / mods-available для дополнительных модулей, уже доступных в вашей системе.

Конфигурация HTTPS

Модуль mod_ssl добавляет важную функцию к серверу Apache2 — возможность шифровать обмен данными. Таким образом, когда ваш браузер обменивается данными с использованием SSL, префикс https: // используется в начале унифицированного указателя ресурсов (URL) на панели навигации браузера.

Модуль mod_ssl доступен в пакете apache2-common. Выполните следующую команду в командной строке терминала, чтобы включить модуль mod_ssl :

  судо a2enmod SSL
  

Файл конфигурации HTTPS по умолчанию находится в /etc/apache2/sites-available/default-ssl.conf . Чтобы Apache2 предоставлял HTTPS, также необходимы сертификат и файл ключа . В конфигурации HTTPS по умолчанию будут использоваться сертификат и ключ, сгенерированные пакетом ssl-cert .Они подходят для тестирования, но автоматически сгенерированные сертификат и ключ следует заменить сертификатом, специфичным для сайта или сервера. Для получения информации о создании ключа и получении сертификата см. Сертификаты.

Чтобы настроить Apache2 для HTTPS, введите следующее:

  sudo a2ensite default-ssl
  

Примечание

Каталоги / etc / ssl / certs и / etc / ssl / private являются местоположениями по умолчанию.Если вы устанавливаете сертификат и ключ в другой каталог, обязательно измените SSLCertificateFile и SSLCertificateKeyFile соответственно.

Теперь, когда Apache2 настроен для HTTPS, перезапустите службу, чтобы активировать новые настройки:

  sudo systemctl перезапустить apache2.service
  

Примечание

В зависимости от того, как вы получили сертификат, вам может потребоваться ввести кодовую фразу при запуске Apache2.

Вы можете получить доступ к страницам защищенного сервера, набрав https: // your_hostname / url / в адресной строке браузера.

Совместное использование разрешения на запись

Для того, чтобы более одного пользователя могли писать в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они разделяют. В следующем примере предоставляется общее разрешение на запись в / var / www / html группе «веб-мастера».

  sudo chgrp -R webmasters / var / www / html
sudo chmod -R g = rwX / var / www / html /
  

Эти команды рекурсивно устанавливают права группы для всех файлов и каталогов в / var / www / html , чтобы разрешить чтение, запись и поиск каталогов.Многие администраторы считают это полезным, позволяя нескольким пользователям редактировать файлы в дереве каталогов.

Предупреждение

Демон apache2 будет работать как пользователь www-data , которому соответствует группа www-data . Этим не следует предоставлять доступ на запись в корень документа, поскольку это будет означать, что уязвимости в Apache или обслуживаемых им приложениях позволят злоумышленникам перезаписать обслуживаемый контент.

Ссылки

  • Документация Apache2 содержит подробную информацию о директивах конфигурации Apache2.Кроме того, официальную документацию Apache2 см.

Добавить комментарий

Ваш адрес email не будет опубликован.