Установка apache php mysql debian. Установка необходимых пакетов. подтверждение пароля для MySQL пользователя root

23.04.2019

В современном Web-е Linux является основной платформой для размещения разнообразных веб-серверов. Бесперебойность работы, удобство развертывания и обслуживания — наше все.

При рассмотрении развертывания веб-сервера на системе Linux за основу возьмем один из самых популярных дистрибутивов – Debian. Он зарекомендовал себя как один из самых стабильных дистрибутивов, имеет наиболее из всех дистрибутивов хранилище пакетов, а каждая его версия сопровождается длительным периодом поддержки. Использование Debian позволяет быть уверенным, что при обновлении пакетов на сервере, в большинстве, случаев ничего не поломается. Но это не точно.

Быстрый, надежный, хостинг в Европе!

Ищете хороший, и при этом недорогой хостинг для сайтов? Хотите быстрый, по-европейски надежный и самый лучший для вашего проекта? Компания FORNEX рада Вам помочь.

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

Теперь стоит перейти к LAMP.

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

L – Linux – операционная система

A – Apache2 – веб-сервер

M – Mysql (на данный момент пакет Mysql заменен на MariaDB) – система управления базами данных

P – PHP – язык программирования

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

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

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

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

Теперь можно перейти по ссылке http://(IP_адресвеб сервера) и проверить, появилась ли страница-заглушка.

Для начала остановимся на этом и перейдем к следующему пункту.

Mysql (MariaDB)

Как уже было сказано выше, в Debian 9 стандартный пакет Mysql был заменен на MariaDB. Данная СУБД является полностью совместимой, обладает идентичным синтаксисом и полностью открытым исходным кодом. Присутствие MariaDB, и СУБД как таковой, на веб-сервере необходимо для работы разнообразных систем управления контентом (CMS), таких как WordPress, Joomla и прочих.

Также, при установке MariaDB понадобится один из пакетов PHP, необходимый для работы с СУБД:

sudo apt install mariadb-server mariadb-client php7.0-mysql -y

Утилита просит на ввести пароль root-пользователя, но так как мы его еще не задали, то просто нажимаем Enter .

Задаем пароль привилегированного пользователя, утвердительно ответив на первый вопрос (вводим y на клавиатуре и жмем Enter) . Набираем придуманный нами пароль и подтверждаем его, введя еще раз.

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

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

  1. Удалить анонимных пользователей?

Отвечаем утвердительно – нам необходимо, чтобы вход в консоль управления СУБД осуществлялся только после ввода пароля.

  1. Запретить удаленное подключение к пользователю root?

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

  1. Удалить тестовую базу данных?

Удаляем не боясь. Она нам не к чему.

  1. Обновить привилегии пользователей?

Снова отвечаем утвердительно.

Убедимся, что все настроено правильно. Для этого подключимся к консоли управления MariaDB:

Sudo mysql –u root –p

sudo mysql –u root –p

Mysql – вызов утилиты управление СУБД

u root – подключаемся от пользователя root

p – указываем, что необходим ввод пароля

Вводим команду status; , чтобы получить информацию о состоянии сервера и убедиться, что MariaDB готова к работе:

Для выхода из консоли управления СУБД вводи команду exit;

PHP7.0

Мы подошли к заключительному компоненту стека LAMP – гипертекстовому процессору PHP. Он представляет собой скриптовый язык общего назначения, применяемый для разработки web-приложений. Давайте установим его интерпретатор и некоторые библиотеки для работы с Apache:

sudo apt install php7.0-common libapache2-mod-php7.0 php7.0-cli -y

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

ИНФО: каталогом для хранения web-приложений по умолчанию является /var/www/html. Изменить каталог или добавить новый можно путем редактирования виртуальных хостов – файлов конфигурации Apache, что будет рассмотрено в следующем пункте.

Cd /var/www/html

Веб-сервер Apache без преувеличения можно назвать стандартом де-факто в интернет. Большинство популярных систем управления сайтами и иных веб-приложений разрабатываются таким образом, чтобы работать с данным веб-сервером "из коробки". Поэтому, если вам нужен веб-сервер широкого применения, то Apache будет лучшим выбором. В данной статье мы расскажем, как установить и настроить полноценный веб-сервер на базе Debian / Ubuntu Server.

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

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

Для установки мы будем использовать платформу Debian / Ubuntu. Системы, в зависимости от релиза, отличаются набором ПО, но все изложенное ниже будет одинаково применимо к любой из них. Существующие отличия будут оговорены отдельно. На момент написания статьи актуальны следующие релизы систем и версии ПО:

  • Debian 8 Jessie: Apache 2.4.10, PHP 5.6.7, MySQL 5.5.43
  • Debian 7 Squeeze: Apache 2.2.22, PHP 5.4.39, MySQL 5.5.43
  • Ubuntu Server 14.04 LTS: Apache 2.4.7, PHP 5.5.9, MySQL 5.5.43
  • Ubuntu 12.04 LTS: Apache 2.2.22, PHP 5.3.10, MySQL 5.5.43

Все вышеуказанные выпуски содержат относительно современные версии ПО, но есть некоторые особенности. Так входящий в состав Ubuntu 14.04 и Debian 8, Apache 2.4 имеет достаточно серьезные отличия от Apache 2.2 и не все CMS (системы управления контентом, "движки") и веб-приложения умеют работать с ним, особенно это касается старых версий. Так, например, вы не сможете использовать Apache 2.4 для веб-доступа к базам 1С:Предприятие. Поэтому, если вы решили выбрать версию 2.4 - уточните совместимость с нею всех планируемых к размещению CMS и веб-приложений.

Кроме того, MySQL из состава Ubuntu Server 12.04 / 14.04 не работает внутри контейнеров OpenVZ, которые широко используются для предоставления услуги VPS. Проблема решается заменой MySQL из репозитория на версию от MySQL Community (разработчики) или один из форков, например, MariaDB.

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

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

Установка Apache

Установка веб-сервера предельно проста:

Apt-get install apache2

Для проверки его работы наберите в браузере IP-адрес сервера, и вы увидите стандартную страницу заглушку:

Для Apache 2.4 она выглядит несколько иначе, но смысл от этого не меняется.

Настройки сервера содержатся в /etc/apache2/apache2.conf , к которому подключаются дополнительные файлы из директорий mods-enabled и sites-enabled . При этом никто не мешает вам внести все указанные настройки непосредственно в apache2.conf - все будет работать, но это резко снижает удобство администрирования, так как требует постоянной правки основного файла конфигурации, в то время как настройки во внешних файлах легко включаются и отключаются при помощи специальных инструментов.

С этой целью каталоги mods-enabled и sites-enabled не содержат файлов конфигурации, а только символические ссылки на директории mods-available и sites-available , где следует располагать сами файлы. Как понятно из названий, в данных каталогах находятся настройки модулей и виртуальных хостов. Если с модулями дело приходится иметь редко, то управлять таким образом виртуальными хостами, т.е. сайтами, очень удобно.

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

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

Apt-get install apache2-mpm-itk

В Ubuntu 14.04 при установке данного пакета вы можете столкнуться с ошибкой:

Dpkg: error processing package apache2-mpm-itk (--configure):
проблемы зависимостей -- оставляем не настроенным

Закрываем открытые секции: и , затем сохраняем файл. Конфигурация виртуального хоста готова.

Чтобы включить сайт необходимо сделать символьную ссылку на файл конфигурации в каталоге sites-enabled , а, чтобы выключить - удалить эту ссылку. Это можно сделать вручную, при помощи команды ln -s, или использовать специальную утилиту apache:

A2ensite example.com

Данная команда включит сайт, для выключения введите:

A2dissite example.com

В качестве опции команде передается имя конфигурационного файла из sites-available , в случае Apache 2.4 без расширения. После каждого такого действия веб-сервер необходимо перезапустить:

Service apache2 reload

Чтобы проверить работу виртуального хоста разместите в его корневой директории любой html-файл и обратитесь к серверу по имени домена (при этом А-запись домена должна быть настроена и указывать на ваш веб-сервер).

Например, создадим индексный файл:

Touch /var/www/examlpe.com/index.html

И разместим в нем строку:

OK!

В итоге в браузере вы должны увидеть следующее:

Установка PHP

Если веб-сервер был нужен вам для размещения статического содержимого или сторонних веб-приложений, например, публикации баз 1С:Предприятия, то дальше можно не читать. Но если вы собираетесь создать сайт на основе популярных CMS - вам потребуется поддержка скриптового языка PHP, на базе которого разработаны большинство современных "движков".

Важно! В современных дистрибутивах используется более новая версия PHP7, чтобы работать с новой версией языка вместо php5 в приведенных ниже командах следует указывать php7.0 , например, вместо php5-imagick нужно набрать php7.0-imagick

Выполним команду:

Apt-get install php5

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

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

Например, для работы с графикой вам потребуется поддержка графической библиотеки GD2 , поэтому установим соответствующий модуль:

Apt-get install php5-gd

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

Service apache2 reload

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

Установим утилиту и модуль PHP для нее:

Apt-get install imagemagick php5-imagick

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

Touch /var/www/examlpe.com/info.php

И внесем в него следующий текст:

phpinfo();
?>

Теперь наберем в браузере http://example.com/info.php , в результате работы данного скрипта вы увидите стандартную страницу с информацией о PHP, установленных модулях, настройках и т.д.

Установка MySQL

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

Установим сервер баз данных и модуль PHP для работы с ним:

Apt-get install mysql-server php5-mysql

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

Для удобного управления базами данных имеет смысл установить phpMyAdmin - удобную веб-утилиту для управления сервером MySQL:

Apt-get install phpmyadmin

Инсталлятор утилиты умеет автоматически настраивать популярные веб-сервера Apache и Lighttpd , нужный сервер следует указать при установке:

Веб-интерфейс утилиты будет доступен по адресу http://example.com/phpmyadmin , для входа следует использовать учетные данные пользователя MySQL, в нашем случае это root (других еще нет) с паролем, который мы указали во время установки MySQL.

В Ubuntu 14.04 мы столкнулись с небольшой проблемой, утилита сообщила нам, что расширение mcrypt не найдено, хотя соответствующий модуль PHP был установлен среди зависимостей.

Проверим. В /etc/php5/apache2/conf.d ссылка на данный модуль отсутствует, в то время как в /etc/php5/mods-available нужный файл есть. Следовательно, модуль установлен, но, по какой-то причине, не подключен. Возможно это связано с Apache 2.4 и тогда подобная ситуация может иметь место и в Debian 8 .

Однако ничего страшного не произошло, все что нам нужно - это подключить модуль, создав символьную ссылку:

Ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

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

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

Теперь прокрутим страничку чуть ниже и установим опцию Предоставить полные привилегии на базы данных подпадающие под шаблон (имя пользователя\_%)

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

Для проверки создадим базу данных phpMyAdmin - Базы данных - Новая база данных .

При создании БД обращайте внимание на кодировку. Сегодня большинство движков и веб-приложений работают с UTF-8 (utf8_general_ci) , однако старые версии движков могут использовать национальные кодировки, поэтому нужно будет правильно указать их еще на стадии создания базы, в противном случае, залив в базу, созданную в UTF-8 дамп в кодировке Windows-1252 вместо русских букв на сайте окажутся "крякозяблики".

Создав базу, проверим ее привилегии, нажав одноименную ссылку рядом с именем базы.

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

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

  • Теги:

Please enable JavaScript to view the

И требуют именно веб-сервера apache с модулем php. Чаще всего причина этого — необходимость использования модуля rewrite для работы сайта.

Одной командой установите базовые компоненты. Зависимости будут установлены автоматически.

# aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd

Первым делом включите mod_rewrite. Он обязательно понадобится, если ваш сайт будет использовать ЧПУ.

# a2enmod rewrite

Включать mod_php не потребуется, поскольку при установке он будет включён автоматически.

# a2dismod -f autoindex deflate setenvif status

Это позволит вам сократить расход памяти.

Откройте файл /etc/apache2/conf-available/charset.conf и раскомментируйте следующую строку:

AddDefaultCharset UTF-8

Данная директива указывает, что кодировкой по-умолчанию будет UTF-8. Если ваши сайты используют другую кодировку, например, CP-1251, то необходимо указать её либо тут же, либо в параметрах виртуального хоста.

Сохраните изменения.

Откройте файл /etc/apache2/conf-available/security.conf и преобразуйте строку ServerTokens OS в ServerTokens Prod . Это скроет версию apache для клиентов.

Строку ServerSignature On преобразуйте в ServerSignature Off .

Сохраните изменения.

Откройте для редактирования файл /etc/apache2/apache2.conf и найдите параметр KeepAlive On . Если после настройки apache вы установите nginx и будете проксировать от него запросы, то этот параметр нужно преобразовать в KeepAlive Off , поскольку эту функцию (поддержание соединения с клиентом) будет выполнять nginx. Если вы планируете использовать apache в качестве основного веб-сервера, эту функцию следует настроить.

MaxKeepAliveRequests — максимальное количество запросов на поддержание постоянного соединения. Для большей производительности рекомендуется установить высокое значение. Для начала подойдёт значение по-умолчанию — 100.

KeepAliveTimeout — время в секундах для ожидания следующего запроса от того же самого клиента.

Сохраните изменения и перезапустите apache.

Откройте файл /etc/apache2/mods-available/mpm_prefork.conf.

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

Приведите значения по-умолчанию к такому виду:

StartServers 2 MinSpareServers 2 MaxSpareServers 6 MaxRequestWorkers 32 MaxConnectionsPerChild 0

StartServers — количество дочерних процессов сервера, создаваемых при запуске.

MinSpareServers — минимальное количество простаивающих процессов.

MaxSpareServers — максимальное количество простаивающих процессов.

MaxRequestWorkers — максимальное количество соединений, которые будут обрабатываться одновременно.

MaxConnectionsPerChild — максимальное количество соединений, обработав которые, дочерний процесс будет завершён. Может быть полезен в борьбе с утечками памяти.

Также сохраните изменения и перезапустите apache: service apache2 restart .

Создание виртуального хоста

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

Мне нравится размещать конфигурации виртуальных хостов в одном файле — apache2.conf. Если потребуется массово заменить какое-то значение для всех сайтов, то не нужно будет открывать поочерёдно все конфигурационные файлы виртуальных хостов.

В первую очередь отключите default site.

# a2dissite 000-default

В конце файла /etc/apache2/apache2.conf пропишите следующую директиву:

В этой директиве группируются все параметры сайта. Именно она является виртуальным хостом. Следующие параметры прописываем внутри этой директивы.

ServerName — ваш домен без www. (Например, example.com.)

ServerAlias — домен с www (www.example.com)

DocumentRoot — каталог, где располагаются файлы вашего сайта. Например, /var/www/.

ServerAdmin — email администратора сайта.

ErrorLog — местоположение лог-файла ошибок. Как правило, они располагаются в каталоге /var/log/apache2/. Для него служит алиас ${APACHE_LOG_DIR}. Пример:

ErrorLog ${APACHE_LOG_DIR}/example.com .error.log

LogLevel warn . Ничего не меняем, прописываем так. Задаёт уровень логирования ошибок.

CustomLog — Расположение и тип access-лога сайта. По-умолчанию тип — combined. Хотя существуют и другие типы. Пример:

CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

В обоих примерах example.com заменяем на ваш домен без www.

Добавляем настройки для mpm-itk, поскольку произвели установку именно этого модуля. Что он даёт? Позволяет обрабатывать php-скрипты от имени пользователя — владельца сайта.

AssignUserId user group

Здесь нужно заменить user на имя пользователя и group на имя группы, в чьей домашней папке размещены сайты.

Определяем настройки для директорий.

Options +FollowSymLinks AllowOverride None Require all granted Options -Indexes +FollowSymLinks AllowOverride All Order allow,deny allow from all

Директорию /var/www замените на ту, где размещены ваши сайты.

Подключаем обработчик php-скриптов.

php_admin_flag engine on php_admin_value open_basedir "/var/www:/tmp/sessions:/tmp/upload_tmp" php_admin_value upload_tmp_dir /tmp/sessions php_admin_value session.safe_path /tmp/upload_tmp php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]"

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

upload_tmp_dir — каталог для хранения временных файлов. Когда вы загружаете картинку (или что-то ещё) на сайт, загруженный файл сначала помещается в этот каталог, а затем в конечное местоположение.

session.safe_path — каталог для хранения сессий.

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

sendmail_path — путь к sendmail и параметры. Как правило, sendmail располагается в каталоге /usr/sbin. После параметра -f следует указать email, не разделяя пробелом.

Сохраняем конфигурационный файл apache2.conf, перезапускаем apache:

Service apache2 restart

Тестирование настроенной связки

В каталоге сайта создайте файл index.php. Пропишите в нём код:

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

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

Вконтакте

06Сен

LAMP - является набором программных продуктов, широко применяемых для создания веб-сервисов. Данный набор состоит из операционной системы Linux, одного из самых распространенных веб-серверов Apache, СУБД Mysql и скриптового языка PHP. Данная статья посвящена процедуре стандартной установки и настройки данного набора для дальнейшего использования под веб-сервисы.

В качестве операционной системы был выбран Debian 8, как один из самых популярных дистрибутивов GNU/Linux. Сам процесс установки данной операционной системы рассматриваться не будет, так как не относится к теме статьи.

Все операции по установке и настройке будут выполняться под учетной записью пользователя root.

Установка Apache

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

Apt-get install apache2

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

Конфигурационный файл Apache, находится в /etc/apache2/apache2.conf

Директория /etc/apache2/sites-enabled/ содержит файлы конфигурации созданных веб-сервисов, а директория /etc/apache2/sites-available/ символические ссылки на файлы конфигураций веб-сервисов, которые на данный момент включены.

С помощью данных файлов конфигураций можно управлять настройкой виртуальных хостов. Сервер Apache позволяет размещать несколько виртуальных хостов (сервисов) на одном сервере. По умолчанию все содержимое веб сервисов располагается в папке /var/www. Размещение содержимого можно изменять, указав это в конфигурационном файле виртуального хоста, за это отвечает директива DocumentRoot.

Рассмотрим создание простейшей веб странички с надписью “Hello World”. Для начала создадим папку, где будет храниться содержимое. Для этого выполним команду:

Mkdir /var/www/helloworld.net

В данной папке создадим простейший html файл index.html следующего содержания:

Hello World

This is a test page.

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

ServerName helloworld.net ServerAdmin [email protected] ServerAlias www.helloworld.net DocumentRoot /var/www/helloworld.net CustomLog ${APACHE_LOG_DIR}/helloworld.net.access.log combined ErrorLog ${APACHE_LOG_DIR}/helloworld.net.error.log

Здесь присутствуют параметры:

  • ServerName – доменное имя виртуального хоста (нашей странички);
  • ServerAdmin – адрес электронной почты администратора;
  • ServerAlias – псевдоним виртуального хоста (доменное имя хоста с добавлением www);
  • DocumentRoot – место, где хранится содержимое самого сервиса;
  • CustomLog - название файла журнала доступа с сервису;
  • ErrorLog – название файла журнала ошибок.

Подробное описание всех параметров и их значений в конфигурационном файле можно посмотреть в официальной документации(http://httpd.apache.org/docs/2.4).

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

Cd /etc/apache2/sites-enabled ln -s ../sites-available/helloworld.net.conf helloworld.net.conf

Также включение и выключение виртуальных хостов можно выполнять, применяя команды a2ensite и a2dissite соответственно.

Для включения:

A2ensite helloworld.net

Для выключения:

A2dissite helloworld.net

После включения хоста, необходимо перезапустить сервер Apache:

/etc/init.d/apache2 restart

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

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

Xxx.xxx.xxx.xxx helloworld.net

Где xxx . xxx . xxx . xxx – это IP-адрес сервера с установленным Apache. Файл hosts, находится:

  • C:\Windows\System32\drivers\etc (в Win7);
  • /etc/hosts (в Debian).

Установка PHP

Следующий шаг – это установка скриптового языка PHP. Установка осуществляется командой:

Apt-get install php5

Теперь необходимо проверить работу PHP. Для этого добавим в папку с содержимым сайта (/var/www/helloworld.net) файл test.php. В данный файл необходимо написать следующее:

Следует отметить, что существует модуль PHP под сервер Apache. Этот модуль позволяет Apache и PHP работать более эффективно. Проверить установлен ли модуль можно:

Dpkg -l | grep libapache2-mod-php5

Если модуля нет, то его надо установить:

Apt-get install libapache2-mod-php5.

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

Ls -l /etc/apache2/mods-enabled/ | grep php5

Должно появиться следующее:

Lrwxrwxrwx 1 root root 27 Sep 2 10:07 php5.conf -> ../mods-available/php5.conf lrwxrwxrwx 1 root root 27 Sep 2 10:07 php5.load -> ../mods-available/php5.load

Если модуль не включен, его по аналогии с виртуальными хостами можно включить командой

A2enmod php5

Выключается модуль командой a2dismod.

Установка mysql

Последним шагом к подготовке среды для работы с веб-сервисами является установка СУБД mysql. Установка осуществляется командой:

Apt-get install mysql-server php5-mysql

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

После завершения установки проверить работу mysql можно подключившись к самой СУБД.

Mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.49-0+deb8u1 (Debian) … mysql>

На этом базовая подготовка сервера завершена. Дополнительно для управления базой данных можно еще установить утилиту phpmyadmin.

Apt-get install phpmyadmin

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

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

И несколько раз ввести пароль для администратора базы данных (тот что был указан для root пользователя при установке mysql).

После завершения установки phpmyadmin. Его работу можно проверить перейдя по ссылке http://localhost/phpmyadmin (если браузер открывается с того же сервера) или по ссылке http://xxx.xxx.xxx.xxx/phpmyadmin с другого компьютера, где xxx.xxx.xxx.xxx – это IP-адрес сервера.

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

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

В этой статье мы рассмотрим как выполняется установка LAMP Debian 9. Аббревиатура LAMP расшифровывается как Linux Apache Mysql PHP, это набор программного обеспечения, который чаще всего используется для размещения сайтов. Раньше мы уже говорили про , процесс не будет очень сильно отличаться в Debian, но все же есть нюансы.

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

sudo aptitude update && sudo aptitude upgrade

1. Установка компонентов

Сначала установим веб-сервер и интерпретатор языка программирования PHP:

sudo aptitude install apache2 php php-mysql libapache2-mod-php php-mbstring php-zip php-gd

Мы установили не только веб-сервер, но и основные библиотеки PHP, которые могут понадобиться для работы с графикой, строками и сжатыми архивами. Пакет libapache2-php отвечает за интеграцию поддержки php для веб-сервера Apache.

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

sudo aptitude install mariadb-server mariadb-client mariadb-common

А для установки MySQL:

sudo aptitude install mysql-server mysql-client mysql-common

В этой статье мы будем рассматривать MariaDB, но работа с MySQL не будет очень сильно отличаться.

2. Настройка Apache и PHP

Уже прошли те времена, когда для того чтобы подключить PHP к Apache нужно было пересмотреть кучу конфигурационных файлов, теперь установка LAMP Debian 9 выполняется достаточно просто. Если уже сейчас запустить Apache, и ввести адрес localhost, то все будет работать. Но давайте сначала добавим домен к нашему сайту. На локальной машине это тоже полезно. Сначала создадим папку для сайта:

sudo mkdir /var/www/test-site/

Конфигурационные файлы виртуальных хостов хранятся в каталоге /etc/apache2/sites-available/ просто скопируйте конфигурацию по умолчанию 000-default в новый файл:

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

Теперь полученный файл нужно отредактировать. Нас будут интересовать директивы ServerName и DocumentRoot. Установите для них правильные значения:

ServerName test-site.com
DocumentRoot /var/www/test-site/

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

sudo a2ensite test-site.conf

Теперь осталось перезапустить Apache:

Чтобы проверить как все работает создайте файл index.php со следующим содержимым в папке /var/www/test-site/:

Если домен зарегистрирован в интернете и все запросы к нему направляются на ваш ip то уже можно открыть сайт в браузере. Если же нет, вы можете настроить маршрут для домена локально с помощью файла /etc/hosts:

sudo vi /etc/hosts

127.0.0.1 test-site.com

Теперь можете открывать сайт в браузере и проверять:

http://test-site.com

Если вы увидели информацию о версии php, как на снимке экрана, значит все работает и нам осталось только настроить базу данных.

3. Настройка базы данных

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

mysql_secure_installation



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

CREATE DATABASE testsite;

Затем создайте пользователя и дайте ему доступ к этой базе данных:

CREATE USER "testuser"@"localhost" IDENTIFIED BY "password";
GRANT ALL PRIVILEGES ON testsite.* TO "testuser"@"localhost";

Ну и для тестирования добавим таблицу:

USE testsite;
CREATE TABLE testtable (
id INT NOT NULL AUTO_INCREMENT,
str VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
);

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

INSERT INTO testtable (str) VALUES ("test1"), ("test2"), ("test3");

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

sudo vi /var/www/test-site/testmysql.php

$connection = mysqli_connect("localhost","testuser","password","testsite") or die("Error " . mysqli_error($connection));
$sql = "SELECT id, str FROM testtable";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));
$items = array();
while($row = mysqli_fetch_assoc($result))
{
$items = $row;
}
echo json_encode($items);
?>

http://test-site.com/testmysql.php

Похожие статьи