Как установить Linux, Apache, MariaDB, PHP (LAMP) в Debian 9

Вступление

Стек «LAMP» - это группа программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы сервер мог размещать динамические веб-сайты и веб-приложения. Этот термин на самом деле является аббревиатурой, обозначающей операционную систему L inux с веб-сервером A pache. Данные сайта хранятся в базе данных M ariaDB, а динамический контент обрабатывается P HP.

В этом руководстве мы установим стек LAMP на сервере Debian 9.

Предпосылки

Чтобы завершить это руководство, вам понадобится сервер Debian 9 с учетной записью пользователя без полномочий root + + sudo + `и базовым брандмауэром. Это можно настроить, используя наше initial руководство по настройке сервера для Debian 9.

Шаг 1 - Установка Apache и обновление брандмауэра

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

Установите Apache, используя менеджер пакетов Debian, + apt +:

sudo apt update
sudo apt install apache2

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

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

Далее, предполагая, что вы выполнили инструкции по начальной настройке сервера, установив и включив брандмауэр UFW, убедитесь, что ваш брандмауэр допускает трафик HTTP и HTTPS.

При установке в Debian 9 в UFW загружаются профили приложений, которые можно использовать для настройки параметров брандмауэра. Просмотрите полный список профилей приложений, запустив:

sudo ufw app list

Профили + WWW + используются для управления портами, используемыми веб-серверами:

OutputAvailable applications:
. . .
 WWW
 WWW Cache
 WWW Full
 WWW Secure
. . .

Если вы проверите профиль + WWW Full +, он показывает, что он разрешает трафик на порты + 80 + и + 443 +:

sudo ufw app info "WWW Full"
OutputProfile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)

Ports:
 ,

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

sudo ufw allow in “WWW Full”

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

http://

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

изображение: http: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_apache_default_debian9.png [Debian 9 Apache по умолчанию]

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

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

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

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

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

Альтернативный метод - использовать утилиту + curl +, чтобы связаться с внешней стороной и рассказать, как it видит ваш сервер. Это делается путем запроса конкретного сервера, каков ваш IP-адрес:

sudo apt install curl
curl http://icanhazip.com

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

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

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

MariaDB - это сообщество MySQL, созданное сообществом. В Debian 9 сервером MySQL по умолчанию является MariaDB 10.1, а пакет + mysql-server +, который обычно используется для установки MySQL, является переходным пакетом, который фактически устанавливает MariaDB. Тем не менее, рекомендуется установить MariaDB, используя реальный пакет программы + mariadb-server.

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

sudo apt install mariadb-server

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

Когда установка будет завершена, запустите простой сценарий безопасности, который поставляется с MariaDB и предустановлен, который удалит некоторые небезопасные настройки по умолчанию и заблокирует доступ к вашей системе базы данных. Запустите интерактивный скрипт, выполнив:

sudo mysql_secure_installation

Это проведет вас через серию запросов, в которых вы сможете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первая подсказка попросит вас ввести текущую базу данных * root * пароль. Это административная учетная запись в MariaDB с повышенными привилегиями. Считайте, что это похоже на учетную запись * root * для самого сервера (хотя настраиваемая вами сейчас учетная запись MariaDB). Поскольку вы только что установили MariaDB и еще не внесли никаких изменений в конфигурацию, этот пароль будет пустым, поэтому просто нажмите + ENTER + в приглашении.

Следующая подсказка спросит вас, хотите ли вы установить пароль * root * для базы данных. Введите + A + и затем нажмите + ENTER. В Debian учетная запись * root * для MariaDB тесно связана с автоматическим обслуживанием системы, поэтому мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволило бы обновлению пакета сломать систему базы данных, удалив доступ к административной учетной записи. Позже мы расскажем, как дополнительно настроить дополнительную учетную запись администратора для доступа по паролю, если аутентификация сокета не подходит для вашего случая использования.

Оттуда вы можете нажать + Y +, а затем + ENTER +, чтобы принять значения по умолчанию для всех последующих вопросов. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленные логины * root * и загрузит эти новые правила, чтобы MariaDB сразу же учла внесенные вами изменения.

В новых установках в системах Debian пользователь * root * MariaDB настроен на аутентификацию с использованием плагина + unix_socket + по умолчанию, а не с паролем. Это обеспечивает большую безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам необходимо разрешить административные права внешней программы (например, phpMyAdmin).

Поскольку сервер использует учетную запись * root * для таких задач, как ротация журналов, запуск и остановка сервера, лучше не изменять данные аутентификации учетной записи * root *. Изменение учетных данных учетной записи в + / etc / mysql / debian.cnf + может сработать изначально, но обновления пакета могут перезаписать эти изменения. Вместо изменения учетной записи * root * сопровождающие пакета рекомендуют создать отдельную административную учетную запись, если вам нужно настроить доступ на основе пароля.

Для этого мы создадим новую учетную запись с именем + admin + с теми же возможностями, что и у учетной записи * root *, но настроенную для аутентификации по паролю. Для этого откройте подсказку MariaDB с вашего терминала:

sudo mariadb

Теперь мы можем создать нового пользователя с привилегиями * root * и доступом на основе пароля. Измените имя пользователя и пароль в соответствии с вашими предпочтениями:

GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

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

FLUSH PRIVILEGES;

После этого выйдите из оболочки MariaDB:

exit

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

mariadb -u  -p

На этом этапе ваша система баз данных настроена, и вы можете перейти к установке PHP, последнего компонента стека LAMP.

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

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

Еще раз, используйте систему + apt + для установки PHP. Кроме того, на этот раз включите несколько вспомогательных пакетов, чтобы код PHP мог работать на сервере Apache и общаться с вашей базой данных MariaDB:

sudo apt install php libapache2-mod-php php-mysql

Это должно установить PHP без проблем. Мы проверим это через минуту.

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

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

sudo nano /etc/apache2/mods-enabled/dir.conf

Это будет выглядеть так:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
   DirectoryIndex index.html index.cgi index.pl  index.xhtml index.htm
</IfModule>

Переместите индексный файл PHP (выделенный выше) на первую позицию после спецификации + DirectoryIndex +, например:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
   DirectoryIndex  index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Когда вы закончите, сохраните и закройте файл, нажав + CTRL + X +. Подтвердите сохранение, набрав + Y +, а затем нажмите + ENTER +, чтобы проверить место сохранения файла.

После этого перезапустите веб-сервер Apache, чтобы ваши изменения были распознаны. Сделайте это, набрав это:

sudo systemctl restart apache2

Вы также можете проверить состояние службы + apache2 +, используя + systemctl +:

sudo systemctl status apache2
Sample Output● apache2.service - The Apache HTTP Server
  Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago
 Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
 Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 22221 (apache2)
   Tasks: 6 (limit: 4915)
  CGroup: /system.slice/apache2.service
          ├─22221 /usr/sbin/apache2 -k start
          ├─22222 /usr/sbin/apache2 -k start
          ├─22223 /usr/sbin/apache2 -k start
          ├─22224 /usr/sbin/apache2 -k start
          ├─22225 /usr/sbin/apache2 -k start
          └─22226 /usr/sbin/apache2 -k start

Для расширения функциональности PHP у вас есть возможность установить некоторые дополнительные модули. Чтобы увидеть доступные опции для модулей и библиотек PHP, направьте результаты + apt search + в + less +, пейджер, который позволяет вам прокручивать вывод других команд:

apt search php- | less

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

Результатом являются все дополнительные компоненты, которые вы можете установить. Это даст вам краткое описание для каждого:

OutputSorting...
Full Text Search...
bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64
 Tracks usage of TCP/IP and builds html files with graphs

bluefish/stable 2.2.9-1+b1 amd64
 advanced Gtk+ text editor for web and software development

cacti/stable 0.8.8h+ds1-10 all
 web interface for graphing of monitoring systems

cakephp-scripts/stable 2.8.5-1 all
 rapid application development framework for PHP (scripts)

ganglia-webfrontend/stable 3.6.1-3 all
 cluster monitoring toolkit - web front-end

haserl/stable 0.9.35-2+b1 amd64
 CGI scripting program for embedded environments

kdevelop-php-docs/stable 5.0.3-1 all
 transitional package for kdevelop-php

kdevelop-php-docs-l10n/stable 5.0.3-1 all
 transitional package for kdevelop-php-l10n
…
:

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

apt show

Будет много выходных данных с одним полем с именем + Description +, которое будет содержать более подробное объяснение функциональности, предоставляемой модулем.

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

apt show php-cli

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

Output…
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Debian's default
PHP version (currently 7.0).
…

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

Если вы решили, что + php-cli + - это то, что вам нужно, вы можете набрать:

sudo apt install php-cli

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

sudo apt install

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

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

Чтобы проверить, правильно ли настроена ваша система для PHP, создайте очень простой скрипт PHP под названием + info.php +. Чтобы Apache мог найти этот файл и правильно его обслужить, он должен быть сохранен в очень конкретном каталоге, называемом web root.

В Debian 9 этот каталог находится в + / var / www / html / +. Создайте файл в этом месте, запустив:

sudo nano /var/www/html/info.php

Это откроет пустой файл. Добавьте следующий текст, который является действительным кодом PHP, внутри файла:

/var/www/html/info.php

<?php
phpinfo();
?>

Когда вы закончите, сохраните и закройте файл.

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

Адрес, который вы хотите посетить:

http:///info.php

Страница, на которую вы заходите, должна выглядеть примерно так:

изображение: https: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_php_info_debian9.png [Информация PHP по умолчанию для Debian 9]

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

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

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

sudo rm /var/www/html/info.php

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

Заключение

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

Related