Наша статья предлагает полезную информацию, которая пригодится каждому коллеге из ИТ-сектора. Пошаговая инструкция по созданию простого классического веб-сервера на apache2, системы управления базами данных MariaDB, php 7.3, с использованием бесплатного центра сертификации Letsencrypt.
Исходные данные
Имеется установленная операционная система 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 curp 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. 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