установка LAMP-сервера на Debian 10 - Полное руководство

Сервер LAMP (аббревиатура от Linux, Apache, MySQL, PHP/Perl/Python) — это сервер с открытым исходным кодом, используемый для разработки веб-приложений или хостинга веб-сайтов с определенной конфигурацией. Для работы веб-приложения необходимо несколько компонентов: операционная система, веб-сервер, база данных и язык программирования. Эти компоненты необходимы для создания динамического веб-сайта. LAMP — это аббревиатура от следующих программ: L — операционная система Linux A — HTTP-сервер Apache M — система управления базами данных MySQL P — язык программирования PHP Installing a LAMP server Каждый компонент должен быть установлен отдельно и в определенном порядке. В этом руководстве мы рассмотрим все этапы установки LAMP Stack на Debian 10. Для целей этого руководства мы предполагаем, что у вас есть сервер, установленный и настроенный с:
  • SSH-доступ как root
  • Debian 10 или 11
  • Доступ к терминалу/командной строке

Установка сервера Apache

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

sudo apt update

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

sudo apt install apache2

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

http://<your_server_ip>

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

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

Введите адрес в браузере, и вы увидите стандартную веб-страницу Apache, которая предназначена для информационных и тестовых целей. Она должна выглядеть примерно так: Installing an Apache server Если эта страница отображается, ваш веб-сервер установлен правильно и доступен в Интернете.

Установка MySQL MariaDB

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

sudo apt install mariadb-server

Эта команда также отобразит список пакетов, которые будут установлены, а также объем дискового пространства, которое они займут. Введите Y, а затем ENTER, чтобы подтвердить и продолжить. После завершения установки запустите скрипт безопасности, который поставляется с MySQL, который удалит некоторые опасные настройки по умолчанию и заблокирует доступ к системе баз данных. Запустите скрипт через консоль и следуйте инструкциям на экране: 

sudo mysql_secure_installation

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

sudo mariadb

Эта команда подключит нас к серверу MariaDB в качестве администратора базы данных root с помощью sudo. Результат должен выглядеть следующим образом:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 74

Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

 
Обратите внимание, что вам не нужно было вводить пароль для входа в систему как root. Это работает, потому что метод аутентификации по умолчанию для пользователя root MariaDB осуществляется через unix_socket, а не через пароль. Хотя на первый взгляд это может показаться проблемой безопасности, на самом деле это делает сервер базы данных более безопасным, поскольку единственными пользователями, которым разрешено входить в систему как пользователь root MariaDB, являются системные пользователи с привилегиями sudo, которые входят в систему с терминала или через приложение, работающее с этими привилегиями. Роль пользователя root является исключительно административной, поэтому вы не можете подключить свое приложение PHP. Для повышения безопасности мы настроим выделенные учетные записи пользователей с соответствующими привилегиями для каждой базы данных. Чтобы продемонстрировать эту настройку, мы создадим базу данных с именем example_database и пользователя с именем example_user. Вы можете заменить эти имена любыми другими. Чтобы создать новую базу данных, выполните следующую команду из консоли MariaDB:

CREATE DATABASE example_database;

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

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

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

FLUSH PRIVILEGES;

Затем вы можете выйти из MariaDB:

exit

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

mariadb -u example_user -p

Примечание: Использование -p в этой команде вызовет запрос пароля, который вы выбрали при создании пользователя example_user. После входа в консоль MariaDB убедитесь, что у вас есть доступ к базе данных example_database:

SHOW DATABASES;

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

+--------------------+

| Database           |

+--------------------+

| example_database   |

| information_schema |

+--------------------+

2 rows in set (0.000 sec)

Чтобы выйти из MariaDB, введите:

exit

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

Установка PHP на LAMP

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

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

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

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

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

<IfModule mod_dir.c>

    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

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

<IfModule mod_dir.c>

    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

Наконец, сохраните файл. Если вы используете nano, вы можете сделать это, нажав CTRL + X, а затем Y и ENTER для подтверждения. Теперь перезагрузите Apache с помощью:

sudo systemctl reload apache2

Вы можете проверить статус apache2:

sudo systemctl status apache2

 

apache2.service - The Apache HTTP Server

   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

   Active: active (running) since Mon 2019-07-08 12:58:31 UTC; 8s ago

     Docs: https://httpd.apache.org/docs/2.4/

  Process: 11948 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)

 Main PID: 11954 (apache2)

    Tasks: 6 (limit: 4719)

   Memory: 11.5M

   CGroup: /system.slice/apache2.service

           ├─11954 /usr/sbin/apache2 -k start

           ├─11955 /usr/sbin/apache2 -k start

           ├─11956 /usr/sbin/apache2 -k start

           ├─11957 /usr/sbin/apache2 -k start

           ├─11958 /usr/sbin/apache2 -k start

           └─11959 /usr/sbin/apache2 -k start

На этом настройка вашего сервера LAMP завершена. Теперь вы можете заняться остальными настройками, такими как vhosts.

2026 © Linux Hosting - Веб-хостинг с 2011 года