« Назад

Наша стаття пропонує корисну інформацію, яка стане в нагоді кожному колезі з ІТ-сектору. Покрокова інструкція створення простого класичного веб-сервера на apache2, системи управління базами даних MariaDB, php 7.3, з використанням безкоштовного центру сертифікації Letsencrypt.

Інструкція з налаштування класичного веб-серверу apache2 на базі ОС Linux Debian 10 (Buster)

 

Вихідні дані

Маємо встановлену операційну систему Linux Debian 10 (Buster). FQDN — web.example.com. IP-адреса — 192.168.10.10.

1. Інсталяція системи управління базами даних MariaDB

Інсталяція MariaDB проходить в два этапи: спершу встановлюємо потрібні пакети, а потім налаштовуємо необхідні елементи безпеки.

Встановлюємо пакети:

#apt -y install mariadb-client mariadb-server

Вводимо в дію майстер безпеки MariaDB:

#mysql_secure_installation

На запитання відповідаємо наступним чином:

Set the root password? [Y/n] <-- y
New password: <-- вводимо новий пароль для користувача root MariaDB
Re-enter new password: <-- повторюємо пароль
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

2. Інсталяція веб-сервера apache2

Тут все вкрай просто — встановимо його з пакету Debian:

#apt -y install apache2

І якщо ми зайдемо в браузер за адресою http://192.168.10.10, то побачимо наступну сторінку:

3.  Інсталяція php 7.3

Встановимо php версії 7.3 та де-які додаткові до нього пакети з deb пакетів:

#apt -y install libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu

Створимо файл /var/www/html/info.php:

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

<?php
phpinfo();

Відкривши його у браузері http://192.168.10.10/info.php,отримаємо відомості про те,що php працює через Apache 2.0 Handler,а також інформацію про всі встановлені модулі:

 

4. Phpmyadmin

Phpmyadmin — це оболонка для управління базами даних MariaDB або Mysql через веб-інтерфейс. Додаток надзручний і дозволяє зберегти чимало часу та нервів системного адміністратора. У десятій версії Linux Debian його, з незрозумілих причин, було усунено з deb-пакетів, і встановлювати phpmyadmin доведеться з джерел.

Створимо каталоги для phpmyadmin:

#mkdir /usr/share/phpmyadmin
#mkdir /etc/phpmyadmin
#mkdir -p /var/lib/phpmyadmin/tmp
#chown -R www-data:www-data /var/lib/phpmyadmin
#touch /etc/phpmyadmin/htpasswd.setup

Вантажимо архів додатку:

#cd /tmp
#wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Розпакувавши архів, переносимо його в папку /usr/share/phpmyadmin:

#tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
#mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
#rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
#rm -rf phpMyAdmin-4.9.0.1-all-languages

Створюємо конфігураційний файл phpmyadmin на базі файлу-зразка:

#cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

Редагуємо його:

#nano /usr/share/phpmyadmin/config.inc.php

Прописуємо безпечний пароль (blowfish secret), який має містити 32 символи:

$cfg['blowfish_secret'] = '5Gty6y67YJH7778r5fggfhydfgfyHAS3'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Неодмінно вигадайте власний пароль, оскільки використання наведеного вище буде необачним та небезпечним.

Доповнимо конфігураційний файл рядком, в якому буде вказано шлях до зберігання тимчасових файлів:

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Створимо конфігураційний файл для apache з наступним вмістом:

#nano /etc/apache2/conf-available/phpmyadmin.conf
# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
 Options FollowSymLinks
 DirectoryIndex index.php
 <IfModule mod_php7.c>
 AddType application/x-httpd-php .php
 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 </IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
 <IfModule mod_authn_file.c>
 AuthType Basic
 AuthName "phpMyAdmin Setup"
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 </IfModule>
 Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
 Order Deny,Allow
 Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
 Order Deny,Allow
 Deny from All
</Directory>

Включаємо конфігурацію та перезавантажуємо apache:

#a2enconf phpmyadmin
#systemctl restart apache2

Створюємо нову базу даних для phpmyadmin та коннектимось до системи управління базами даних MariaDB під користувачем root:

#mysql -u root -p

Додаємо нову базу phpmyadmin:

MariaDB [(none)]> CREATE DATABASE phpmyadmin;

Додаємо нового користувача pma для управління базою даних. Змініть слово «пароль» на свій власний пароль:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'пароль' WITH GRANT OPTION;

Застосовуємо зміни і — на вихід:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Завантажуємо таблички у базу даних:

#mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql

Для завантаження необхідно ввести пароль root MariaDB.

Конфігураційному файлу /usr/share/phpmyadmin/config.inc.php надаємо наступного вигляду:

#nano /usr/share/phpmyadmin/config.inc.php
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'пароль';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

‘пароль’ —  це пароль створеного Вами користувача pma.

І врешті, встановлюємо метод аутентифікації по паролю в native, щоб отримати можливість підключатися у PHPMyAdmin під користувачем root:

#echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

Веб-сервер налаштовано!

Наостанок необхідно ще дещо попрацювати: завантажити сайт, базу даних, додати конфігураційний файл в apache, прописати NS- запис та, налаштувати систему резервування. Хай щастить.

Компанія ТОВ «ІНФОТЕК.УА» надає професійні послуги з обслуговування комп’ютерів організацій

Август 23, 2019

Если у вас возникли вопросы

СВЯЖИТЕСЬ С НАМИ!

Оставьте свои данные и мы свяжемся
с вами ближайшее время