Установка LAMP-сервера и phpMyAdmin в Debian 10
Установка LAMP-сервера
LAMP-сервер состоит из трёх основных частей: apache-сервер
, php
и MariaDB
(MySQL
).
Сразу же предупрежу: не боимся устанавливать MariaDB, вместо MySQL. Этот сервер баз данных абсолютно идентичен MySQL. Все проекты которые работали на MySQL, будут работать на MariaDB, без изменений и доработок.
Устанавливаем по порядку все три компоненты LAMP-сервера.
Установка Apache
Выполняем в терминале команду
sudo apt install apache2
Проверяем работу сервера в браузере, перейдя на страницу — http://localhost/
Если видим эту страницу приветствия, то отлично — сервер работает.
На этом этапе трудностей не должно возникнуть.
Установка пакетов PHP
Теперь переходим к установке модулей PHP.
Установим основные модули
sudo apt install php libapache2-mod-php php-mysql
Установка пакетов MariaDB
Сервер баз данных устанавливаем командой
sudo apt install mariadb-server
Устанавливаем phpMyAdmin для управления базами данных
Добавляем модули PHP для работы панели управления базами данных (phpMyAdmin)
sudo apt install php-mbstring php-zip php-gd php-curl php-json php-gettext php-xml php-phpseclib
Переходим в домашний каталог
cd
phpMyAdmin нет в репозиториях Debian, по этому качаем архив с официального сайта.
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
Если не установлен распаковщик zip, то устанавливаем
sudo apt install unzip
Распаковываем архив
unzip ~/phpMyAdmin-latest-all-languages.zip
Перемещаем распакованный каталог в каталог файлов конфигурации по умолчанию
Внимание!
Название каталога может отличаться от приведённого в примере. По этому в команде, каталог phpMyAdmin-5.0.2-all-languages
, замените на тот, который был создан при распаковывании архива phpMyAdmin-latest-all-languages.zip
.
sudo mv phpMyAdmin-5.0.2-all-languages/ /usr/share/phpmyadmin
Удаляем скачанный архив
rm ~/phpMyAdmin-latest-all-languages.zip
Настройка phpMyAdmin
Настройка phpMyAdmin состоит из трёх этапов: создание каталога временных файлов, установка нужного владельца на каталог phpmyadmin, создание конфигурационного файла.
Последовательно выполняем следующие команды:
Создаём каталог
sudo mkdir -p /var/lib/phpmyadmin/tmp
Устанавливаем владельца
sudo chown -R www-data:www-data /var/lib/phpmyadmin
Создаём конфигурационный файл config.inc.php
, копируя конфигурационный файл пример
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Редактируем конфигурационный файл в редакторе nano
sudo nano /usr/share/phpmyadmin/config.inc.php
Код в файле можно заменить кодом под кнопкой "config.inc.php", но заменив значения в директивах $cfg['blowfish_secret']
и $cfg['Servers'][$i]['controlpass']
.
Директива $cfg['blowfish_secret']
отвечает за шифрование (вводим парольную фразу не менее 32-х символов). В директиве $cfg['Servers'][$i]['controlpass']
меняем пароль 111111, на свой.
В нашем файле есть ссылки на таблицы базы данных phpmyadmin. Создаём базу phpmyadmin
sudo mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
Далее
Подключаемся к MariaDB
sudo mariadb
Создаём пользователя pma для phpMyAdmin.
Внимание!
pass
заменяем на пароль, который указывали в директиве $cfg['Servers'][$i]['controlpass']
.
GRANT {select}, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'pass';
Создаём пользователя, от имени которого будем входить в панель phpMyAdmin и создавать базы данных.
Т.к. сервер разворачиваем на локальной машине, то хватит одного пользователя.
Внимание!
user
и pass
меняем на логин и пароль, которыми вы будете пользоваться при авторизации в phpMyAdmin и работе с базами данных.
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;
Выходим из режима управления БД
exit
Теперь создаём конфигурационный файл phpmyadmin.conf
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Вставляем в него код по кнопкой.
Выполним активацию конфигурационного файла phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
Конфигурируем Apache2
Создаём каталог для нашего проекта
mkdir /home/user/www/site1
заменить user
на название каталога пользователя.
Создаём каталог для архивов БД
mkdir /home/user/www/backupbd
заменить user
на название каталога пользователя.
Делаем текущего пользователя и его группу владельцем каталога site1
chown -R $USER:$USER /home/user/www/site1
и владельцем каталога backupbd
chown -R $USER:$USER /home/user/www/backupbd
Создаём конфигурационный файл для нашего проекта site1
sudo nano /etc/apache2/sites-available/site1.conf
Копируем и вставляем в него следующий код
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/user/www/site1 ServerName site1.loc ErrorLog /home/user/www/site1/error.log CustomLog /home/user/www/site1/access.log combined </VirtualHost>
заменить user
на название каталога пользователя.
Для того, чтобы адрес сайта site1.loc
наш браузер нашёл и обработал, нам нужно внести изменения в файл hosts
.
Открываем файл hosts для редактирования
sudo nano /etc/hosts
Этот файл может иметь следующий вид:
127.0.0.1 localhost 127.0.1.1 HomePC # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
где HomePC
— это имя вашего компьютера.
Приводим его к следующему виду:
127.0.0.1 localhost site1.loc 127.0.1.1 HomePC # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
то есть дописываем в конце первой строки адрес нашего сайта — site1.loc
.
Сохраняем и закрываем файл hosts.
Теперь подключим виртуальный хост site1.loc
, выполнив следующую команду
sudo a2ensite site1.conf
После произведённых настроек перезагрузим конфигурацию сервера Apache
sudo systemctl reload apache2
Для перезапуска сервера Apache используем следующую команду
sudo systemctl restart apache2
Включаем обработку .htaccess и вывод ошибок php
Включаем обработку .htaccess
Открываем файл apache2.conf
sudo nano /etc/apache2/apache2.conf
Находим такую часть кода
<Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
и ниже вставляем свою директиву
<Directory /home/user/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
заменить user
на название каталога пользователя.
Сохраняем файл и закрываем.
Включаем mod_rewrite
выполнив следующую команду
sudo a2enmod rewrite
Вывод ошибок php
Открываем файл php.ini
sudo nano /etc/php/7.3/apache2/php.ini
В нём последовательно находим строки содержащие следующие инструкции:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
заменяем на
error_reporting = E_ALL
находим
display_errors = Off
заменяем на
display_errors = On
находим
display_startup_errors = Off
заменяем на
display_startup_errors = On
Сохраняем файл и закрываем его.
Можно начинать работать со своим проектом.