Наша стаття пропонує корисну інформацію, яка стане в нагоді кожному колезі з ІТ-сектору. Покрокова інструкція створення простого класичного веб-сервера на 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- запис та, налаштувати систему резервування. Хай щастить.
Компанія ТОВ “ІНФОТЕК.УА” надає професійні послуги з обслуговування комп’ютерів організацій
August 23, 2019