У цій статті ми дамо вам покрокові інструкції щодо налаштування веб-середовища на сервері під керуванням Linux. Перш за все, вам потрібно зрозуміти, що типовий веб-сервер складається з кількох взаємодіючих компонентів:
- HTTP-сервер
- інтерпретатор мови програмування
- система управління базами даних (СУБД)
Щоб керувати своїм веб-сайтом, вам також потрібно буде налаштувати систему керування контентом (CMS), веб-інтерфейс для керування базами даних і доступ до FTP.
Давайте розглянемо налаштування дуже популярної конфігурації Apache-PHP-MySQL(MariaDB) на Linux. Також ми встановимо ftp-сервер vsftpd, phpMyAdmin - веб-інтерфейс для управління базами даних, систему управління контентом WordPress.
Для початку будь ласка замовити VPS сервер or Виділений сервер. Наприклад, ми використовували віртуальний сервер зі статичною IP-адресою під керуванням Ubuntu Server 18.04. Усі команди виконує користувач root.
Конфігурація HTTP-сервера Apache
1. Установка
apt install apache2
Після завершення встановлення відкрийте браузер і перевірте “http://[ip_адреса_сервера]”
Якщо ви бачите таку сторінку привітання, як на знімку екрана вище, це означає, що ваш HTTP-сервер працює.
2. Створіть тестову сторінку
Стандартним кореневим каталогом веб-сайту є “/var/www/html”. Тут ви можете знайти сторінку привітання, яку ви щойно бачили. Давайте створимо окремий каталог “/var/www/sites” для віртуальних хостів і вкладеної папки “/var/www/sites/site1” з індексною сторінкою вашого тестового веб-сайту.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
У результаті файл “/var/www/sites/site1/index.html” має містити лише один рядок html-коду:
<H1>Welcome</H1>
3. Конфігурація сервера Apache
Конфігураційні файли веб-сайтів містяться “/etc/apache2/sites-available/” каталог. Давайте створимо файл конфігурації для нового віртуального хосту, взявши з нього конфігурацію за замовчуванням «000-default.conf» як основу.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Відкрийте файл «site1.conf» і змінити «DocumentRoot» атрибут. Помістіть шлях вашого веб-сайту як значення, отже, в нашому випадку це так “/var/www/sites/site1”
На цьому етапі нам не потрібно налаштовувати одночасну роботу кількох веб-сайтів, тому ми можемо вимкнути веб-сайт за замовчуванням і ввімкнути новий сайт. Перезавантажте конфігурацію сервера, щоб застосувати зміни.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Відкрийте посилання “http://[IP_адреса_сервера]” і переконайтеся, що замість сторінки привітання за умовчанням у нас є наша нова сторінка.
Ми завершили налаштування нашого HTTP-сервера, і ми можемо переходити до наступного кроку.
Конфігурація FTP-сервера
1. Установка
Давайте встановимо наш ftp-сервер і додатковий пакет «db-util», що нам знадобиться для налаштування віртуальних користувачів
apt install vsftpd db-util
2. Створіть локальний обліковий запис
Сервер vsftpd дозволяє нам дуже гнучко налаштовувати права доступу. Для наших завдань ми повинні надати користувачам ftp наступне:
- повний доступ до вмісту “/var/www/sites/”;
- вимкнути все, що вище “/var/www/”;
- підключення до віртуального рахунку;
Створіть локальний обліковий запис «віртуальний» без дозволу на вхід, але з доступом до домашньої папки “/var/www/”. Цей обліковий запис використовуватимуть користувачі ftp для підключення до сервера
useradd -d /var/www virtual
«Корінь» буде власником “/var/www” за замовчуванням. Щоб дозволити користувачам ftp змінювати вміст веб-сайтів, давайте змінимо власника “/var/www/sites/” включаючи вкладені папки «віртуальний».
chown -R virtual:root /var/www/sites
В результаті користувач «віртуальний» зможе побачити вміст “/var/www/” і запишіть у “/var/www/sites/” підпапка.
3. конфігурація
Основна конфігурація знаходиться у файлі “/etc/vsftpd.conf”, тож давайте відкриємо його та відредагуємо таким чином:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Створіть базу даних
Вам знадобиться база даних для зберігання даних віртуальних облікових записів.
Спочатку давайте створимо простий текстовий файл «users.txt» у домашній папці та зберігайте дані доступу (логін і пароль) віртуальних користувачів у кожному другому рядку. Наприклад, нам знадобиться віртуальний користувач з логіном «ftp» і пароль “Qwe123”. Тоді файл матиме такий вигляд:
ftp
Qwe123
Давайте створимо базу даних
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Давайте змінимо стандартний файл PAM “/etc/pam.d/vsftp” наступним чином:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Зверніть увагу, що шлях до “pam_userdb.so” бібліотека може бути іншою, але ви можете змінити її, якщо потрібно.
Перезавантажте сервер vsftpd, щоб застосувати зміни.
systemctl restart vsftpd
Ми закінчили налаштування FTP-сервера.
Деталі підключення:
- ftp://[ip_адреса_сервера]
- логін: ftp
- пароль: Qwe123
Конфігурація сервера PHP
1. Встановлення PHP
На сьогодні останньою стабільною версією PHP є php 7.4.5, яка не включена в офіційні репозиторії Ubuntu. Давайте підключимо сторонній репозиторій і встановимо останню версію PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. перевірити
Щоб PHP міг виконуватися, файл веб-сторінки повинен мати “.php” розширення. Давайте перейменуємо нашу тестову сторінку:
cd /var/www/sites/site1/
mv index.html index.php
Додайте наступний рядок php до файлу “/var/www/sites/site1/index.php”, тому файл має виглядати так:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Збережіть зміни та перевірте результат у браузері.
Якщо ви бачите результат функції “phpinfo()”, інтерпретатор PHP працює належним чином. Тепер переходимо до наступного кроку.
Конфігурація MySQL (MariaDB).
1. Установка
Давайте встановимо MariaDB і модуль PHP для MySQL, а потім перезавантажимо Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Оновіть тестову сторінку та перейдіть до розділу PDO в таблиці конфігурації PHP. Якщо ви можете знайти розділ “PDO_mysql”, то це означає, що драйвер для Mysql встановлено правильно.
Потім нам потрібно буде виконати початкову конфігурацію безпеки MariaDB і встановити пароль для "Корінь" користувача, вимкнути віддалений доступ і видалити всі облікові записи гостей.
mysql_secure_installation
На першому кроці ми повинні ввести "корінь" пароль користувача для доступу до СУБД або натисніть Enter, якщо пароля немає. Оскільки пароль не встановлено для "корінь" користувача після встановлення, просто натисніть "Enter".
Зверніть увагу, що в MariaDB вже є власні облікові записи, які не мають нічого спільного з обліковими записами ОС. Отже, єдиний користувач, з яким ми маємо справу в MariaDB, це "корінь".
Після цього конфігуратор попросить нас встановити пароль для користувача root. Тип "Y" для підтвердження та введення нового пароля. У нашому випадку це так “Qwe123”
відповісти "Y" на всі інші питання до самого кінця.
Налаштування виконано!
Деталі доступу до MariaDB:
- Логін: root
- Пароль: Qwe123
Конфігурація phpMyAdmin
1. Установка
Давайте встановимо необхідне розширення для PHP - mbstring.
apt install php-mbstring
В офіційному репозиторії є лише застаріла версія phpMyAdmin, тому давайте встановимо нову вручну.
Відкрити офіційний сайт проекту “https://www.phpmyadmin.net/» і завантажте останній архів.
Скопіюйте архів на сервер в “/var/www/sites/” папку за допомогою будь-якого ftp-клієнта.
Розархівуйте папку та перейменуйте її на “phpMyAdmin”. Не забудьте встановити «розпакувати» корисність. Ви можете видалити архів після його розархівування.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Створіть таку папку “/var/www/sites/phpMyAdmin/tmp” для тимчасових файлів і дозволити доступ для всіх. Якщо ви цього не зробите, phpMyAdmin повідомить про заборону доступу до тимчасової папки.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Створіть псевдонім
Оскільки phpMyAdmin не є окремим віртуальним хостом і розташований за межами кореневого каталогу, давайте налаштуємо псевдонім.
Відкрийте файл “/etc/apache2/mods-available/alias.conf” і додайте цей рядок:
Alias /pma “/var/www/sites/phpMyAdmin"
в цьому розділі:
<IfModule alias_module>
</IfModule>
Перезавантажте Apache, щоб застосувати зміни.
systemctl reload apache2
Псевдонім встановлено, тому ми можемо отримати доступ до phpMyAdmin тут “http://[IP-адреса_сервера]/pma”.
3 Підготуйте базу даних
Оскільки ми обмежили використання користувача root під час початкової конфігурації MariaDB, нам доведеться створити новий обліковий запис з усіма дозволами, які використовуватимуться для доступу до phpMyAdmin.
Крім того, щоб увімкнути додаткові функції phpMyAdmin, нам знадобиться база даних служби та обліковий запис для доступу до неї.
Давайте створимо облікові записи
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Будь ласка, зверніть увагу, що ім’я бази даних у другому запиті міститься в іскрах «… ON `phpmyadmin`.* TO 'pma'@'localhost' IDENTIFICED BY …”,
У результаті в MariaDB буде створено два облікові записи:
- Логін: pma, Пароль: Qwe123Повний доступ, використовуватиметься для входу в phpMyAdmin
- Логін: pmaservice, Пароль: Qwe123 Сервісний обліковий запис потрібен для роботи додаткових функцій
На наступному кроці ми встановимо ці деталі у файлі конфігурації “config.inc.php”.
Потім нам потрібно буде імпортувати базу даних із файлу “phpMyAdmin/sql/create_tables.sql”.
Давайте імпортуємо його за допомогою phpMyAdmin.
Відкрийте посилання “http://[IP_адреса_сервера]/pma”
Введіть логін «pma» і пароль “Qwe123”
Перейдіть до «Імпорт», Натисніть «Виберіть файл» і виберіть файл ”sql/create_tables.sql” у кореневому каталозі phpMyAdmin. На вашому комп’ютері має бути папка “phpMyAdmin” з файлами. Розархівуйте його, якщо необхідно.
Натисніть "Далі" щоб розпочати імпорт.
4. конфігурація
Давайте скопіюємо файл конфігурації з шаблону
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Давайте відкриємо файл конфігурації “/var/www/sites/phpMyAdmin/config.inc.php” і внесіть наступні зміни:
Встановіть для атрибута випадкове значення з 32 символів “$cfg['blowfish_secret']”. Для цього використовуйте будь-який генератор паролів.
Видалити коментарі з усіх рядків «Налаштування зберігання конфігурації phpMyAdmin» і встановіть логін і пароль облікового запису служби MariaDB для «контролер» та «контрольний пропуск» атрибути відповідно. У нашому випадку це так pmaservice та Qwe123.
Збережіть зміни.
Деталі доступу до phpMyadmin:
- http://[server’s_ip_address]/pma/
- Логін: pma
- Пароль: Qwe123
Як встановити та налаштувати WordPress на сервері Linux
1. Пакет WordPress і розміщення файлів
Перейдіть на офіційний сайт WP "https://ru.wordpress.org/” і завантажте архів на локальний ПК.
Завантажте архів на сервер в “/var/www/sites/” і розархівуйте її в папку “wordpressПапка ".
Скопіюйте вміст “/var/www/sites/wordpress/” коренева папка “/var/www/sites/site1/” .
Оскільки ми скопіювали файли через консоль із правами root, давайте змінимо власника “/var/www/sites/” папку з вмістом «віртуальний». Це потрібно, щоб увімкнути повний доступ для підключення ftp через клієнт.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Створіть базу даних для WordPress
Увійдіть у phpMyAdmin і натисніть «Створити базу даних». Вкажіть довільне ім'я бази даних, в нашому випадку «wordpress_db» і натисніть кнопку «Створити».
Виберіть нову базу даних у лівому розділі та натисніть «Привілеї»
Потім натисніть «Додати обліковий запис користувача».
Введіть логін і пароль (wpservice / Qwe123) у вікні, що відкрилося, перевірити «Надати всі привілеї в wordpress_db» і натисніть кнопку "Далі"
На наступній сторінці натисніть «Скасувати все» щоб скинути всі привілеї на рівні бази даних і натисніть "Далі".
3. Конфігурація WordPress на сервері Linux
Перейдіть до кореневого каталогу вашого сайту та скопіюйте файл конфігурації з шаблону
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Відкрийте “wp-config.php” файл і введіть параметри підключення до бази даних, створені на попередньому кроці, і збережіть зміни.
4. Встановіть CMS WordPress
Відкрийте наступне посилання в браузері “http://[IP_адреса_сервера]/wp-admin/install.php”.
Заповніть усі поля та натисніть «Встановити WordPress». Встановіть випадкове ім'я користувача та пароль. У нашому випадку це так wpadmin та Qwe123 відповідно.
Ці дані використовуватимуться для доступу до WordPress.
Після завершення встановлення перейдіть за посиланням “http://[IP_адреса_сервера]/wp-login.php”, введіть дані доступу та увійдіть до WordPress.
Ви повинні побачити один із шаблонів WordPress на головній сторінці.
Налаштування завершено.
Деталі доступу до WordPress:
- http://[server’s_ip_address]/wp-login.php
- Логін: wpadmin
- Пароль: Qwe123