Настройка apache ubuntu 16

Обновлено: 04.07.2024

Решил поделиться с вами опытом установки софта на Ubuntu 16.04.

Напомню, все ниже описанные операции нужно выполнять под рутом (sudo su -).

обновляем софт

ставим Apache2

настроим Apache2

перезапускаем Apache

Настраиваем виртуальные хосты (VirtualHost)

(только для локальных хостов) создать файл vhosts.sh со следующим содержимым:

Даете права на выполнение:

Пример создания хоста:

Все последующие шаги по virtualhosts можно пропускать.

В /etc/hosts прописываем наши хосты: (nano /etc/hosts)

Переходим в папку /etc/apache2/

Смотрим, что внутри:

- rw - r - r -- 1 root root 7728 26 апреля 22 : 55 apache2 . conf - rw - r - r -- 1 root root 7691 26 апреля 22 : 34 apache2 . conf drwxr - xr - x 2 root root 4096 26 апреля 22 : 52 conf - available drwxr - xr - x 2 root root 4096 26 апреля 22 : 52 conf - enabled - rw - r - r -- 1 root root 1782 3 января 16 : 48 envvars drwxr - xr - x 2 root root 12288 26 апреля 22 : 27 mods - available drwxr - xr - x 2 root root 4096 26 апреля 22 : 27 mods - enabled - rw - r - r -- 1 root root 320 7 января 15 : 23 ports . conf drwxr - xr - x 2 root root 4096 26 апреля 22 : 43 sites - available drwxr - xr - x 2 root root 4096 26 апреля 22 : 44 sites - enabled

В папке sites-available хранятся кофниги доступных хостов, а в sites-enabled ссылки на активные хосты.

Переходим в доступные хосты и создаем конфиг для mysite.loc. Кстати, если ваш дефолтный конфиг заканчивается на .conf тогда создавайте конфиги с расширением * .conf.

ServerName mysite . loc DocumentRoot / var / www / mysite . loc AllowOverride All

Данной записи достаточно, чтобы работал ваш локальный хост. Теперь нужно создать ссылку на него в sites-enabled.

Ошибки: если в вас возникает ошибка и вы не можете создать ссылку. Тогда это сделать можно следующей записью:

ln / etc / apache2 / sites - available / mysite . conf / etc / apache2 / sites - enabled /

Теперь нужно только перезагрузить настройки Apache2:

Итак, Apache2 работает, первый хост добавлен!

ставим MySQL

MySQL содержится в репозиториях Ubuntu. Он разбит на несколько пакетов.

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

При установке конфигурации скрипт запросит пароль администратора (root) базы данных.

Ставим PHP 5.6

Сначала нужно удалить все старые версии, если есть

sudo apt - get purge ` dpkg - l | grep php | awk '' | tr "\ n" "" ` sudo apt - get install php5 . 6 - mbstring php5 . 6 - mcrypt php5 . 6 - mysql php5 . 6 - xml Zend Engine v2 . 6.0 , Copyright ( c ) 1998 - 2016 Zend Technologies with Zend OPcache v7 . 0.6 - dev , Copyright ( c ) 1999 - 2016 , by Zend Technologies

ставим PhpMyadmin

Если вы все выполнили правильно, то у вас будет готов настроен локальный сервер.

Нет похожих статей.

3 Responses

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

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

Эта статья описывает процесс установки LAMP на виртуальный сервер (Droplet) в Ubuntu 16.04. Ubuntu удовлетворяет первому требованию к LAMP: это операционная система на базе Linux.

Необходимые условия

Перед тем, как начать следовать шагам, описанным в этой статье, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере. Вы можете сделать это следуя шагам 1-4 статьи о первичной настройке сервера на Ubuntu 16.04.

Шаг 1 - Установка Apache и настройка файрвола

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

Мы с легкостью можем установить Apache используя менеджер пакетов Ubuntu apt . Менеджер пакетов позволяет нам легко установить большую часть программного обеспечения из репозиториев Ubuntu. О том, как использовать apt , вы можете узнать из этой статьи.

Для начала установки выполним команды:

Поскольку мы используем команду sudo , эти команды будут выполняться с привилегиями root. В процессе операционная система запросит ваш пароль пользователя.

После ввода пароля apt сообщит, какие пакеты будут установлены и сколько места они займут на диске. Нажмите Y и Enter для продолжения установки.

Настройка глобальной переменной ServerName

Далее мы добавим одну строку в /etc/apache2/apache2.conf для устранения предупреждений (warnings) о синтаксических ошибках. Несмотря на то, что это просто предупреждение и никакой проблемы не существует, если не задать глобальную переменную ServerName , вы будете получать следующее предупреждение об ошибке при проверке настройки конфигурации Apache:

Откройте главный конфигурационный файл в своём текстом редакторе командой:

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

Если вы не знаете IP-адрес Вашего сервера, вы можете прочитать об этом в разделе Как найти публичный IP адрес вашего сервера.

После этого сохраните и закройте файл.

Теперь можно проверить результат напечатав следующую команду:

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

Перезапустите Apache для применения внесённых изменений:

Теперь можно приступать к настройке файрвола.

Настройка файрвола

Проверим настройку профиля Apache Full , она должна разрешать трафик для портов 80 и 443:

Разрешим входящий трафик для этого профиля:

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

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

Тестовая страница Apache

Если вы видите эту страницу, ваш веб-сервер корректно установлен и доступен через файрвол.

Как найти публичный IP адрес вашего сервера

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

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

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

В качестве альтернативы можно узнать, как curl видит ваш сервер. Это можно сделать следующим образом:

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

Шаг 2 - Установка MySQL

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

Мы можем вновь использовать apt для загрузки и установки программного обеспечения. В этот раз мы также установим некоторые вспомогательные пакеты, которые помогут нам в налаживании взаимодействия между компонентами:

В данном случае вам нет необходимости предварительно выполнять команду sudo apt-get update , т.к. мы выполняли ее недавно при установке Apache, и индекс пакетов на вашем комьпютере уже должен быть обновлен.

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

В процессе установки ваш сервер попросит вас задать и подтвердить пароль для пользователя “root” в MySQL. Это администраторский аккаунт в MySQL, который имеет расширенные права. Рассматривайте его как аналог root-аккаунта для самого сервера (однако тот, который вы конфигурируете в данный момент, подходит только для MySQL). Задайте надёжный уникальный пароль, не оставляйте пароль не заданным.

После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:

Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей ( VALIDATE PASSWORD PLUGIN ).

Введите y для включения плагина или что-нибудь другое для продолжения без его включения:

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

Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите n или no:

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

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

Шаг 3 - Установка PHP

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

Мы можем вновь воспользоваться менеджером пакетов apt для установки компонентов. Мы также добавим некоторые вспомогательные пакеты, чтобы код на PHP мог работать с нашим сервером Apache, а также обращаться к базе данных MySQL:

Данная команда должна установить PHP без каких либо проблем. Вскоре мы это проверим.

В большинстве случаев, мы захотим изменить способ, который использует Apache для поиска файлов при запросе директории. На данный момент, если пользователь запрашивает директорию с сервера, Apache в первую очередь будет искать файл с названием index.html . Мы хотим, чтобы наш веб-сервер отдавал предпочтение PHP файлам, так что мы настроим Apache таким образом, чтобы сначала он искал файлы index.php .

Для этого введите следующую команду, чтобы открыть файл dir.conf в текстовом редакторе с привилегиями root-пользователя:

Содержимое файла будет выглядеть следующим образом:

Мы хотим переместить PHP файл index.php , выделенный выше, на первое место после спецификации DirectoryIndex следующим образом:

После внесения правок сохраните и закройте файл сочетанием клавиш CTRL-X. Вам придется подтвердить операцию вводом Y и затем нажатием клавиши ENTER для подтверждения места сохранения файла.

После этого нам необходимо перезапустить Apache для применения внесенных изменений. Вы можете сделать это при помощи команды:

Мы также можем проверить статус сервиса apache2 используя systemctl :

Установка модулей PHP

Чтобы расширить функциональность PHP, мы можем установить некоторые дополнительные модули.

Для просмотра доступных опций для модулей и библиотек PHP вы можете передать результат apt-cache search в less , которая позволит вам проматывать вывод:

Используйте клавиши стрелок вверх и вниз для промативания списка, для выхода нажмите q.

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

Чтобы получить больше информации по каждому модулю, вы можете поискать в Интернете или посмотреть полное описание пакета при помощи команды:

Ответ будет содержать много текста, среди которого есть поле Description-en . Именно оно и будет содержать расширенное описание функциональности, предоставляемой модулем.

Например, чтобы узнать назначение модуля php-cli , мы можем выполнить команду:

Помимо большого количества прочей информации, вы увидите следующее:

Если после изучение вы решили, что хотите установить пакет, вы можете сделать это используя команду apt-get install как мы делали ранее при установке другого программного обеспечения.

Если мы решили, что хотим установить php-cli , мы можем ввести команду:

Для установки сразу нескольких модулей, вы можете перечислить их через пробелы следом за командой apt-get install следующим образом:

Теперь ваш стек LAMP установлен и сконфигурирован. Однако нам еще предстоит протестировать PHP.

Шаг 4 - Тестирование работы PHP на вашем веб-сервере

Чтобы проверить, что наша система сконфигурирована должным образом, мы можем создать простой PHP скрипт.

Назовем скрипт info.php . Чтобы Apache нашел и обработал файл корректно, он должен быть сохранен в специальную директорию, которая называется “web root”.

В Ubuntu 16.04 данная директория находится по адресу /var/www/html/ . Мы можем создать там файл введя следующую команду:

Откроется пустой файл. Мы хотим ввести в файл следующий текст, который является корректным PHP кодом:

После внесения изменений сохраните и закройте файл.

Теперь мы можем проверить, может ли веб-сервер корректно отображать контент, сгенерированный PHP скриптом. Для проверки нам просто нужно открыть данную страницу в веб-браузере. Вам снова потребуется публичный IP-адрес сервера.

Откроем этот адрес:

Тестовая страница PHP

Данная страница содержит информацию о вашем сервере с точки зрения PHP. Она полезна для отладки и чтобы удостовериться в корректности применения настроек.

Если все прошло успешно, значит ваш PHP работает корректно.

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

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

Заключение

Теперь, когда ваш стек LAMP установлен, у вас есть множество вариантов того, что делать дальше. Фактически, вы установили платформу, которая позволит установить (развернуть) большинство типов веб-сайтов и сетевого программного обеспечения на вашем сервере.

Некоторые другие популярные мероприятия:

    - наиболее популярную систему управления контентом в интернете. для управления базами данных MySQL из веб-браузера. для управления базами данных. для передачи файлов на ваш сервер и с него.

Обратите внимание: Мы будем обновлять указанные выше ссылки на документацию для 16.04 по мере ее написания.

Linux - отличная платформа для создания и тестирования веб-сайтов. Учитывая, что большинство веб-серверов используют Linux в качестве операционной системы, то и тестировать сайты лучше в этой системе, с использованием тех же инструментов, даже если это домашний компьютер. Намного удобнее иметь всё под рукой и не боятся повредить сайт на сервере.

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

В этой инструкции будет рассмотрена установка LAMP Ubuntu 16.04. Мы рассмотрим, как установить Apache 2.4, MariaDB в качестве базы данных MySQL и самую новую версию языка PHP 7. Для начала будет выполнена установка Apache Ubuntu 16.04, так как это главный компонент всей системы, а уже потом подключим к нему дополнительные компоненты.

Установка Apache Ubuntu 16.04

Apache - это кроссплатформенный веб-сервер с открытым исходным кодом. Он поддерживает все необходимые функции веб-сервера, включая CGI, SSL, и виртуальные домены.

Установить Apache в Ubuntu очень просто, для этого достаточно выполнить:

sudo apt-get install apache2

После установки добавим программу в автозагрузку:

sudo systemctl enable apache2

И запустим веб-сервер сейчас:

sudo systemctl start apache2

lamp

Теперь можно проверить, что получилось, откройте браузер и наберите в адресной строке localhost:

lamp1

Как видите, установка apache ubuntu 16.04 завершена, и веб-сервер уже работает. Но это ещё не всё. Если у вас один сайт, который нужно тестить на локальной машине, то всё отлично. Но если их несколько, то собирать их все в подпапках веб-сервера не совсем удобно, да и не все движки нормально относятся к этому. Потому давайте рассмотрим, как настроить виртуальные хосты.

Создайте новую папку для нашего виртуального хоста:

sudo mkdir /var/www/test.site

Дадим права на доступ:

sudo chmod -R 755 /var/www

Необходимо создать небольшой файл, index.html, чтобы он открылся, когда вы запустите этот сайт:

sudo vi /var/www/test.site/public_html/index.html

Теперь можно добавлять виртуальный хост, для этого создайте файл и наполните его содержимым:

sudo vi /etc/apache2/sites-available/test.site.conf

Вот что значат некоторые строки:

  • ServerName - имя нашего сайта, виртуального хоста
  • ServerAlias - сайт будет доступен также по этому имени
  • DocumentRoot - корневой каталог с файлами сайта

Теперь сохраните файл, далее нужно активировать наш хост:

sudo a2ensite test.site.conf

sudo systemctl restart apache2

Теперь необходимо завернуть трафик с этого домена на локальный сервер, для этого добавьте строчку в /etc/hosts:

sudo vi /etc/hosts

Откройте браузер и в адресной строке наберите test.site:

lamp2

Кроме того, мы можем включить поддержку ssl для нашего веб-сервера. Для этого выполните:

a2enmod ssl
a2ensite default-ssl

После этого нужно будет перезагрузить веб-сервер:

sudo systemctl restart apache2

lamp20

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

lamp21

Установка PHP 7

Без языка программирования установка и настройка LAMP в Ubuntu будет не завершена. PHP - это самый популярный язык программирования в веб. Его название - это рекурсивный акроним (PHP: Hypertext Preprocessor). Кроме того, что этот язык используется в веб, его можно применять как язык общего назначения, язык сценариев.

Установка PHP 7 в Ubuntu 16.04 выполняется следующей командой:

sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0

Если вы хотите установить все доступные модули PHP, чтобы в будущем не было проблем, можно выполнить команду:

sudo apt-get install php*

После завершения установки проверим версию PHP:

lamp3

Теперь пора проверить, как всё работает. Для этого создайте файл со следующим кодом на PHP:

sudo vi /var/www/test.site/public_html/test.php

lamp5

Осталось перезапустить Apache2:

sudo systemctl restart apache2

Откройте ещё раз наш сайт в браузере, на этот раз нас интересует страница test.php:

lamp4

Установка PHP 7 в Ubuntu 16.04 завершена, и всё очень хорошо работает. Но нужно ещё кое-что настроить, а именно включить отображение ошибок в PHP. Иначе при возникновении ошибки вы увидите просто пустую страницу. Для этого откройте файл /etc/php/7.0/apache2/php.ini, найдите строку display_errors = Off и поменяйте off на on:

lamp6

Теперь переходим к следующему этапу.

Установка MySQL Ubuntu 16.04

Базы данных используются сейчас почти в каждом движке интернет сайтов. Поэтому важно иметь на своём компьютере и это программное обеспечение. Установка LAMP Ubuntu 16.04 не может обойтись без базы данных, но в этой инструкции вместо MySQL мы будем использовать её улучшенную и оптимизированную версию - MariaDB. Это очень надёжный и масштабируемый сервер SQL со множеством улучшений и усовершенствований.

Установка MariaDB Ubuntu 16.04 выполняется с помощью команды:

sudo apt-get install mariadb-server mariadb-client

Когда установка MySQL Ubuntu 16.04 будет завершена, мы можем переходить к настройке базы данных, для этого выполните команду:

Сначала необходимо ввести текущий пароль root: просто нажимаем Enter, поскольку шифр ещё не задан:

lamp7

Далее нажимаем у, чтобы задать новый пароль:

lamp8

Затем отключаем гостевые аккаунты:

lamp9

Отключаем удалённый доступ через root:

lamp10

Удаляем тестовые базы данных:

lamp11

Перезаписываем таблицы привилегий:

lamp12

Вот и всё, установка MySQL в Ubuntu 16.04 завершена, и база данных готова к работе.

Установка Phpmyadmin в Ubuntu 16.04

Установка и настройка LAMP в Ubuntu 16.04 также будет включать инсталляцию Phpmyadmin. Phpmyadmin - это бесплатный инструмент с открытым исходным кодом для реализации веб-интерфейса управления базами данных MySQL. Он доступен в официальных репозиториях Ubuntu 16.04, установим его с помощью команды:

sudo apt-get install phpmyadmin php-mbstring php-gettext

Но тут уже во время установки потребуется немного конфигурации. Сначала нужно выбрать наш веб-сервер:

lamp14

Для перемещения по пунктам используйте стрелки вверх/вниз, для выбора - пробел, для переключения - Tab.

В следующем окне мастера нам предлагают настроить базу данных Рhpmyadmin, соглашаемся:

lamp15

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

lamp16

lamp17

По умолчанию в MariaDB есть плагин под названием unix_socket, он предотвращает вход под именем пользователя root в Рhpmyadmin или с помощью других TCP-интерфейсов. Для его отключения выполните:

sudo -i
echo "update user set plugin='' where User='root'; flush privileges;" | mysql -u root -p mysql

Когда установка Рhpmyadmin в Ubuntu 16.04 будет завершена, откройте браузер и наберите в адресной строке localhost/phpmyadmin:

lamp18

Всё работает, для доступа к базе данных вы можете ввести логин root и его пароль, который задали на этапе настройки MySQL:

lamp19

Выводы

Вот и всё: установка LAMP в Ubuntu 16.04 завершена успешно. Теперь всё работает, и вы можете приступать к созданию своих проектов.

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

Из этого руководства вы узнаете о том, как установить Apache на сервер с установленной ОС Ubuntu 16.04.

Требования

Для того, чтобы выполнить необходимые действия, вам понадобится сервер с установленной ОС Ubuntu 16.04 и пользователем, который может выполнять команды sudo (не суперпользователь). Также вы можете настроить базовый фаервол для блокировки несущественных портов.

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

VPS/VDS

Шаг 1: установка Apache

Apache доступен в стандартных репозиториях Ubuntu, поэтому веб-сервер можно установить, используя обычную утилиту для установки программных пакетов apt-get.

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

После этого нужно установить пакет apache2:

После подтверждения утилита apt-get установит Apache и все необходимые зависимости.

Шаг 2: настройка фаервола

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

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

Для того, чтобы вывести все профили UFW, используйте команду:

Вывод будет примерно таким:

Как вы видите, для Apache доступно три профиля:

В данном случае вам необходимо разрешить входящий трафик профиля Apache Full следующей командой:

Как вы видите, профиль был активирован, и доступ к веб-серверу разрешен.

Шаг 3: проверка веб-сервера

В конце процесса установки Ubuntu 16.04 запускает Apache. Веб-сервер уже должен работать.

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

Вывод будет примерно вот таким:

Как вы видите, сервис успешно запущен. Однако лучший способ протестировать – это запросить у Apache страницу.

Например, можно получить доступ к стандартной лендинг-странице Apache для того, чтобы убедиться в том, что все работает корректно. Это можно сделать используя доменное имя сервера или IP-адрес. IP-адрес можно использовать в том случае, если вы не хотите задавать какое-либо имя вашему серверу.
Если вы не знаете IP-адрес вашего сервера, то получить его можно следующими способами.

1 вариант. Ввести в командной строке сервера:

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

2 вариант. Следующие команды также помогут вам получить IP-адрес вашего сервера (как будто вы обращаетесь к нему из другого места сети):

После того, как вы узнали IP-адрес или домен, введите его в адресную строку браузера. Вам должна высветиться стандартная приветственная страница Apache, которая будет выглядеть вот так:

Apache на Ubuntu 16.04

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

Шаг 4: базовые команды Apache

Для работы с веб-сервером Apache вам необходимо знать базовые команды.

Команда для остановки веб-сервера:

Команда для запуска веб-сервера (после остановки):

Команда для перезапуска (остановки и запуска):

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

По умолчанию Apache настроен на автоматический запуск после начала работы сервера. Но эту настройку можно изменить при помощи команды:

Если же вы все-таки хотите, чтобы Apache запускался вместе с сервером, введите:

Теперь Apache снова будет автоматически запускаться после загрузки сервера.

Шаг 5: важные файлы и директории Apache

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

Контент

  • /var/www/html : здесь находится тот веб-контент, который изначально стоит только из стандартной приветственной страницы Apache, которую вы видели выше.

Конфигурация сервера

  • /etc/apache2 : конфигурационная директория Apache. Здесь находятся все конфигурационные файлы.
  • /etc/apache2/apache2.conf : основной конфигурационный файл Apache. Его можно использовать для общих конфигурационных изменений Apache. Этот же файл отвечает за загрузку остальных конфигурационных файлов в этой директории.
  • /etc/apache2/ports.conf : этот файл отвечает за порты, которые используются для подключения к серверу. По умолчанию это порт 80 и иногда 443 порт (если включен модуль для обработки SSL).
  • /etc/apache2/sites-available/ : в этой директории для каждого сайта хранятся виртуальные хосты (Virtual Hosts). Apache не будет использовать файлы из этой директории до тех пор, пока они не привязаны к директории sites-enables. То есть sites-available – это все доступные хосты, а sites-enabled – это включаемые сервером. Поэтому для создания нового виртуального хоста вам нужно сначала создать его файл в этой директории, а затем дать ссылку на этот виртуальный хост в директории sites-enabled для того, чтобы включить его.
  • /etc/apache2/sites-enabled/ : директория для включения виртуальных хостов, которая была упомянута выше.
  • /etc/apache2/conf-available/ , /etc/apache2/conf-enabled/ : директории для тех конфигурационных фрагментов, которые не связаны с виртуальными хостами. Связь между этими диреториями схожа со связью между двумя директориями выше. Файлы в conf-available вы можете включать при помощи команды a2enconf и выключать командой a2disconf.
  • /etc/apache2/mods-available/ , /etc/apache2/mods-enabled/ : эти директории содержат доступные и включенные модули соответственно. Файлы, которые заканчиваются на .load, содержат фрагменты для загрузки определенных модулей, а файлы, заканчивающиеся на .conf , содержат настройки для этих модулей. Для включения модулей используйте команду a2enmod, для выключения – a2dismod.

Логи сервера

  • /var/log/apache2/access.log : по умолчанию каждый запрос к вашему серверу записывается в этот лог (до тех пор, пока вы не измените эту настройку).
  • /var/log/apache2/error.log : по умолчанию в этот лог записываются все ошибки. Директива LogLevel определяет, какое количество информации об ошибках будет записываться.

Заключение

Теперь у вас есть установленный веб-сервер, и у вас есть большой выбор контента, который вы можете размещать, и технологий, которые вы можете использовать.

В интернете кучу статей по настройке сервера, настройки Apache, Nginx и т.п. В данной статье будет пошагово настроен простой shared хостинг. Все операции производятся через консоль.

В посте будут решены и описаны следующий задачи:

1. Установка Apache + PHP
2. Возможность выбора версий PHP
3. Возможность работы сайтов от разных пользователей, с ограничением на чтение директорий других сайтов.
4. Установка Nginx с модулем pagespeed от google
5. Настройка Nginx как reverse proxy

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

ЭТАП 1 (Установка Apache + PHP)

Запускаем оболочку с root правами:


Ключ нужен для того чтобы в процессе установки, автоматически на все вопросы отвечал положительно. К примеру если выполнить:


то в процессе установки нас спросят, действительно ли мы хотим установить.

Устанавливаем php (как mod_php)


На данном этапе у нас установиться php версии 7 как модуль apache.

ЭТАП 2 (Возможность выбора версий PHP)

На первом этапе мы установили сервер Apache + PHP при чем PHP у нас работает как модуль Apache. Существует несколько режимов работы PHP подробную информацию можно прочитать по ссылке «Коротко о CGI, FastCGI, PHP-FPM и mod_php».

Если вам лень читать, то объясню проще:

1. mod_php — сам Apache выполняет php скрипт.

Плюсы: работает быстро, требует минимум настроек и знаний
Минусы: скрипты выполняются от пользователя apache (как правило www-data)

2. CGI/FastCGI — Сервер Apache запускает прикладной скрипт интерпретатора php-cgi, который в свою очередь выполняет php скрипт

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

3.PHP-FPM — это модернизированный fast-cgi сервер который постоянно держит готовые для работы пул-процессов.

Плюсы: скорость работы, скрипты выполняются от произвольного пользователя, можно использовать в связке с другими приложениями (Nginx + PHP-FPM — самая распространная реализация)
Минусы: дополнительная настройка, занимает порт, на каждого пользователя открывается свой порт.

Мы остановимся на CGI/FastCGI. На самом деле многие может испугать, что он самый медленный, но на большинстве shared хостингов, именно этот режим работы (ispmanager использует именно этот режим работы). Нам потребуется собрать из исходников версии php которые нам необходимы.

2.1 Сборка php из исходников


Устанавливаем необходимые для сборки пакеты:


Символ \ используется как перенос строки, для удобства чтения.

Создаем папки для php:


Переходим в директорию в которой будут храниться исходники php


Скачиваем необходимую версию php и распаковываем ёё:


В последней команде мы скачали по ссылке php-5.6.18 и сохранили как php-5.6.18.tar.bz2
После чего распаковали архив.

Переходим в директория скаченного и распакованного php


Стоить обратить внимание на строку --prefix=/opt/php/php-5.6.18. Именно в эту директорию будет собран проект. Также вы самостоятельно можете добавлять или удалять необходимые модуль и компоненты php. Но при конфигурации обязательно должны быть --enable-fastcgi и --enable-force-cgi-redirect. После конфигурации собираем php


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


В результате будет что то вроде:

2.2 Настройка Apache

Далее нам потребуется чтобы Apache вызывал php скрипт через режим fastcgi. Устанавливаем и активируем mod_fcgi


перезапустим сервис Apache


2.3 Создание CGI скрипта

Создадим обертку для запуска PHP-FastCGI


Вставляем код, выходим CTRL+X и подтверждаем изменения.

Делаем файл испольняемым:


В той же директории создаем файл php.ini () можно скопировать /opt/source/php/php-5.6.18/php.ini-production.

2.4 Настройка хоста для Apache

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


Перезапускаем настройки Apache:


ЭТАП 3 ( Возможность работы сайтов от разных пользователей, с ограничением на чтение директорий других сайтов.)

Для разграничения прав по пользователям у Apache есть 2 разных модуля suEXEC и ITK.

Рассмотрим как работает каждый из них:

ITK — При поступлении запроса, apache создает процесс-обработчик, который наследует права корневого процесса, но после проверки контекста меняет свои права на указанного пользователя.

suEXEC -При поступлении запроса apache запускает CGI и аналогичные собственные или сторонних разработчиков скрипты/программы внутри веб-папки домена от имени указанного пользователя.

suEXEC в нашем варианте предпочтительней из-за особенности архитектуры работы. Устанавливаем suEXEC

Важно, для правильной работы suexec необходимы правильно выставить права на директории.
Как располагать директории вы должны определиться сами, в примере приведется пример, и он не является оптимальным.

Иерархия папок следующая:

|--/var/www/ - Корневая папка, права 751 владелец root
|----/php-bin - Папка храннения дефолтных настроек для php
|------/php-5.6.18 - Папка храннения дефолтных настроек для php-5.6.18
|--------php - Исполняемый файл для php-5.6.18
|--------php.ini - Дефольный файл настроке
|--------php.ini - Дефольный файл настроке
|----/apache-cert - папка хранения сертификатов для apache

Создаем папки для пользователя:


Копируем файлы настроек для php:


Создаем юзера (важно помнить что все пользователи в группе admin имеют доступ на запуск программ из sudo, поэтому при выборе имени admin он автоматически будет иметь права на выполнения sudo. В данном примере это не критично, но вам следует помнить об этом при создании пользователя).


Выставляем владельца папки:


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


Настраиваем виртуальные хосты в apache:


В настройках php.ini пользователя меняем session.save_path
session.save_path = /var/www/users/admin/temp/php-session


ЭТАП 4 (Установка Nginx с модулем pagespeed от google)

Забегая вперед, для поддержки pagespeed в Nginx требуется пересобрать сам Nginx с этим модулем, но чтобы потом не лазить дополнительно в настройках, проще сначало установить его.
Изменяем порты для Apache:


Собираем Nginx с pagespeed

Вначале необходимо установить все необходимы для сборки пакеты:


Создаем папки для исходников nginx:


Скачиваем и распаковываем pagespeed и psol. Yt cnjbn g


Сам psol скачивается и распаковывается в директории с ngx_pagespeed. Переходим в папку с Ngnix


Проверяем версию ngnix (по умолчанию в ubuntu 16.0.4 устанавливается 1.10.0):


Загружаем т версию NGINX:


Собираем nginx с теми же параметрами что и установленный, но в конце добавляем дополнительные модули:


Собранный бинарный файл Nginx располагается в директории /opt/source/nginx/nginx-1.10.0/objs/nginx. Для того чтобы установить, требуется просто заменить текущий испоняемый файл Nginx на собранный.

Остановим Nginx, заменим файл, и перезапустим его.


Создаем папку хранения кэша для pagespeed:


ЭТАП 5 (Настройка Nginx как reverse proxy )

Скажу скажу что в интернете кучу статей для настройки Nginx как reverse proxy. Я лиш приведу ознакомительный вариант настройки.

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