Главная >> Инструкции >> Установка LAMP в Debian 9

Установка LAMP в Debian 9

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

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


Содержание статьи

Установка LAMP в 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/:

<?php phpinfo() ?>

Если домен зарегистрирован в интернете и все запросы к нему направляются на ваш 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. После того как процесс первоначальной настройки завершится, создадим новую базу данных:

sudo mysql -u root -p

 

Далее, для создания базы выполните:

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

<?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

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

Выводы

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

26 комментариев к “Установка LAMP в Debian 9”

  1. Есть ли принципиальная разница между командами apt-get и aptitude?
    Например, как в вашей статье aptitude update или как в ролике apt-get update?

    Я привык использовать большей частью apt-get

    Ответить
  2. 17 год, уже эпоха nginx и postgresql, а тут статься как поставить гаумно мамонта, апач и мускл, коттрый уже даже не мускл, а марьядб

    Ответить
  3. Статья хорошая. Но когда установил все как написано, столкнулся с проблемой, apache отзывается только на localhost. Любой созданный виртуальный хост не работает. Убил кучу времени, но так и не смог настройть хосты, может кто-то сталкивался с такой проблемой?

    Ответить
  4. Здравствуйте. Хотелось бы прояснить вот какой вопрос. В общем то не принципиально на чем разворачивать сервер (apache или nginx), большинство хостингов использует apache, если вы созрели купить vds, то установка и настройка nginx для вас уже не проблема. Этот мануал в основном для начинающих.
    Но вот почему то совершенно не затронут вопрос настройки прав на директорию сайта и на сами сайты. Автор создает директорию через sudo и владельцем сайта автоматически становится root.В самом же сайте вам надо работать от обычного пользователя , а не root чтобы иметь полную аналогию с хостингом. В основном это нормально работает без особых проблем. Но вот, например , если в вашем сайте в каком нибудь скрипте будет mkdir(), то сразу же получите permitions denied и никакая смена прав на нужную директорию на 777 не поможет.
    Внятных мануалов найти не могу почему то.
    Может автор внесет ясность ?

    Ответить
    • Я писал об этом в одной из статей про ошибки Nginx. Владельцем каталога должен быть тот пользователь, от имени которого запущен php-fpm и apache/nginx. Также нужно убедиться, что на протяжении всего пути к папке сайта у этого пользователя есть право на чтение. Это можно сделать с помощью команды namei -l /путь/к/папке/сайта

      Ответить
  5. По факту вместо mysql ставится какое-то гавно похожее на mysql по имени mariadb. И нихрена не дает сделать тк не дает задать пароль рута

    Ответить
  6. Большое спасибо за рабочий урок по первоначальной настройке. Это далеко не первый просмотренный и опробованный мной урок, но это первый, который заработал! Огромное спасибо!
    Для меня это начало для построения собственного облачного хранилища NextCloud.

    Ответить
  7. Как вижу в результатах поиска Google ссылку на ваш сайт, игнорирую, (сейчас перешел, чтобы оставить отзыв), пишете очень сложные и непонятные статьи (инструкции) не для обычных пользователей!

    Ответить

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