Як розмістити веб-сайт (Керівництво по налаштуванню власного сервера)

Як створити сервер


Щоб розмістити веб-сайт на сервері, вам потрібно забруднити руки та налаштувати все середовище самостійно. Нижче ви знайдете узагальнений приклад того, як зробити справи за допомогою віртуального приватного сервера Ubuntu 18.04

Якщо коротко, вам потрібно:

    • Виконайте початкові налаштування сервера
    • Налаштуйте DNS-зону та вкажіть свій домен
    • Встановіть програмний стек
    • Створіть віртуальний хост
    • Розпочніть роботу свого веб-сайту

P.S. Якщо ви не хочете пройти ці складні кроки, подумайте, як отримати веб-хостинг.

1. Перші кроки налаштування сервера

Якщо ви вирішили взяти напрокат виділений сервер або VPS, спочатку потрібно закласти міцну основу. Це передбачає доступ до вашого сервера через термінал або SSH-клієнт та внесення змін до оновлень безпеки та оновлень.

Підключіться до свого сервера

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

ssh [захищено електронною поштою] _server_IP -port

Під час першого підключення вам може бути запропоновано додати IP-сервер до списку відомих хостів. Введіть так щоб продовжити, і вам буде запропоновано ввести корінний пароль.

додавання IP-адреси сервера до відомих хостів

Ось приклад того, що ви повинні бачити на екрані, якщо все пішло правильно.

початковий екран входу в Ubuntu SSH

Отримайте останні оновлення

Виконайте такі команди, щоб отримати останні оновлення для вашого сервера Ubuntu 18.04:

sudo apt оновлення
оновлення sudo apt

Під час запуску другої команди ви побачите екран підтвердження. Введіть Y продовжити.

підтвердження оновлень сервера Ubuntu

Створіть нового користувача

Далі вам потрібно буде додати нового користувача, оскільки використовувати корінь для повсякденних завдань не рекомендується. Назвемо це веб-майстром. Щоб розпочати створення користувача, виконайте:

adduser webmaster

створення нового користувача Ubuntu

Після створення пароля вам буде запропоновано ввести загальні дані (які ви можете залишити порожніми). Потім введіть Y щоб підтвердити створення нового користувача.

За замовчуванням у нового користувача не буде достатньо привілеїв, щоб зробити все необхідне, отже, вам потрібно буде додати їх вручну. Ось як це зробити:

usermod -aG sudo webmaster

Це воно! Ваш новий адміністративний користувач готовий. Щоб почати використовувати його замість root, виконайте:

su – вебмайстер

зміна користувача системи

Налаштування автентифікації відкритого ключа (необов’язково)

Використання пароля для автентифікації залишає вас вразливими до спроб грубої сили та піддає вашому серверу помірний ризик (особливо якщо ви лінуєтеся встановити унікальний і сильний пароль).

Прекрасний спосіб поліпшити цілісність сервера – використовувати ключі SSH замість звичайного пароля. Етапи повинні бути однаковими незалежно від того, який дистрибутив Linux ви використовуєте. Починати вийти вашого сервера і виконайте наступну команду на своєму локальний комп’ютер щоб створити новий відкритий ключ:

ssh-keygen

Вам буде запропоновано ввести додаткову парольну фразу та місце збереження відкритого ключа. За замовчуванням це все економить /Users/Your_User/.ssh каталог (який ви можете зберегти, якщо не маєте на увазі інші плани).

запуск SSH keygen

Як тільки це закінчиться, скопіюйте ключ SSH на свій сервер, використовуючи:

ssh-copy-id [захищено електронною поштою] _server_IP

Ви також можете зробити те ж саме для свого кореневого користувача на всякий випадок:

ssh-copy-id [захищено електронною поштою] _server_IP

переміщення ключа SSH на віддалений сервер

Нарешті, вам потрібно буде знову увійти на свій сервер. Лише цього разу ви будете використовувати ключ SSH та його парольну фразу для автентифікації. Якщо хтось вгадає ваш пароль, він не зможе увійти, оскільки для успішного з’єднання потрібен відкритий ключ.

увійти в сервер за допомогою ключа SSH

Вимкнути автентифікацію пароля (необов’язково)

Оскільки тепер ви можете отримати доступ до свого сервера за допомогою новоствореного ключа SSH, доцільно відключити звичайну автентифікацію пароля. Для цього ми можемо використовувати нано текстовий редактор:

sudo nano / etc / ssh / sshd_config

Шукайте рядок із написом #PasswordAuthentication так, видаліть # і змінити так до а ні. Кінцевий результат повинен виглядати так:

відключення автентифікації пароля в sshd config

Щоб зберегти ці зміни та вийти з наноредактора, натисніть CTRL + X, введіть Y і натисніть Введіть. І нарешті, застосуйте все, перезавантаживши службу sshd:

sudo systemctl перезавантажити sshd

І це все! Тепер ви використовуватимете відкритий ключ для автентифікації замість пароля, що вважається більш безпечним способом доступу та керування сервером.

Налаштування брандмауера

І останнє, але не менш важливо, доцільно використовувати брандмауер, щоб убезпечити себе від небезпеки, що криється в Інтернеті. Нескладний брандмауер – один з найкращих інструментів для роботи. Щоб налаштувати його, виконайте:

sudo apt-get install ufw

При встановленні брандмауер не працюватиме, якщо його не ввімкнути вручну. Ви можете ввімкнути це за допомогою:

sudo ufw enable

включення ufw Ubuntu

Щоб перевірити, чи працює він, виконайте:

sudo ufw status verbose

2. Налаштування зони DNS

Наступним завданням буде створення зони DNS, яка виступає в якості зв’язуючого матеріалу між доменним іменем та сервером. Ми можемо розбити його на два менші кроки:

  1. Налаштування DNS-зони на вашому сервері
  2. Створення користувальницьких серверів імен у вашого реєстратора домену

Створіть нову DNS-зону

Щоб створити нову зону DNS, ми будемо використовувати інструмент під назвою bind9. Зрештою, це сервіс, який дозволяє завантажувати веб-сайт через доменне ім’я замість IP-адреси.

Щоб встановити Bind9 на свій сервер Ubuntu 18.04, виконайте:

sudo apt-get install bind9

Після встановлення всі файли будуть доступні в / тощо / прив’язувати каталог. Давайте перейдемо до нього спочатку:

cd / etc / bind

Щоб все було чітко та організовано, ми створимо окремий каталог для наших DNS-зон:

sudo mkdir -p зони

Давайте створимо новий файл зони DNS для нашого домену. Ми будемо використовувати domain-example.com для демонстраційних цілей (слід замінити його фактичним доменним іменем).

sudo nano zone / domain-example.com

Приклад фрагмента зони DNS:

;
; Файл даних BIND для domain-example.com
;
$ TTL 3h
@ У SOA ns1.domain-example.com. admin.domain-example.com. (
1; Серійний
3 год; Оновіть через 3 години
1 год; Повторіть спробу через 1 годину
1w; Термін дії закінчується через 1 тиждень
1 год); Негативний кешування TTL 1 день
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

domain-example.com. ЗА ВАШ_СЕРВЕР_ІП
ns1 В YOUR_SERVER_IP
ns2 ВАШИЙ_SERVER_IP
www IN CNAME domain-example.com.
пошта В YOUR_SERVER_IP
ftp IN CNAME domain-example.com.
domain-example.com. IN MX 10 domain-example.com.

Не забудьте замінити всі ваші екземпляри Your_Server_IP і domain-example.com з фактичними значеннями. Збережіть файл зони, натиснувши CTRL + X а потім набирати текст Y щоб підтвердити зміни.

Далі нам потрібно буде відредагувати локальну конфігурацію та вказати місце новоствореної DNS-зони. Це гарантує, що сервер знає, до якого доменного імені належить файл зони.

sudo nano named.conf.local

Вставте наступні рядки внизу файлу під час заміни domain-example.com з вашою фактичною адресою веб-сайту.

зона "domain-example.com" {
тип майстра;
файл "/etc/bind/zones/domain-example.com";
};

Натисніть CTRL + X і вхід Y щоб зберегти зміни та вийти з наноредактора.

Ви також можете перевірити, чи все було додано та налаштовано правильно, виконавши таку команду:

sudo з назвою-checkzone domain-example.com /etc/bind/zones/domain-example.com

перевірка зони ДНС

Нарешті, запустіть ці дві команди, щоб перезапустити службу DNS вашого сервера та переконатися, що він працює:

sudo /etc/init.d/bind9 перезапустити
sudo /etc/init.d/bind9 старт

На даний момент зона DNS готова з вашого сервера. Для його завершення вам потрібно буде створити власні записи серверів імен у своєму реєстраторі домену.

Створіть власні сервери імен для свого домену

Оскільки ми вказали двох серверів імен (ns1.domain-example.com і ns2.domain-example.com) у нашому прикладі зони DNS нам потрібно буде створити ці записи в реєстраторі домену та використовувати їх.

Ось як мають виглядати записи:

Спеціальний сервер іменБали до
ns1.domain-example.comYour_Server_IP
ns2.domain-example.comYour_Server_IP

створення дитячого сервера імен

Після створення вам потрібно буде вказати свій домен на цих нових серверів імен.

оновити сервери імен

3. Встановіть LAMP Stack

LAMP – це один із найбільш використовуваних стеків програмного забезпечення в Інтернеті. Це короткий термін для Linux, Apache HTTP Server, MySQL / MariaDB та PHP. Перш ніж розміщувати веб-сайт, потрібно переконатися, що всі ці інгредієнти доступні на вашому сервері. Ось як виглядав би процес їх налаштування за допомогою Ubuntu 18.04:

Апач

Сервер Apache HTTP вже може бути включений до пакетів за замовчуванням, які постачаються з вашим сервером. Якщо ні, то виконайте:

sudo apt-get install apache2

встановити Apache

Оскільки є брандмауер, ми повинні переконатися, що ці порти відкриті, оскільки Apache не працюватиме належним чином інакше. Ось що потрібно дозволити через брандмауер:

sudo ufw дозволяють 80 / тс
sudo ufw дозволяють 443 / тс

Потім перезапустіть його, щоб переконатися, що зміни застосовані:

sudo ufw reload

На даний момент, ось що ви повинні побачити, відвідавши IP-адреса вашого сервера через браузер:

сторінка Apache2 за замовчуванням

PHP

Щоб отримати останню версію PHP з кількома додатковими модулями, необхідними WordPress, виконайте:

sudo apt-get install php php-поширений php-mysql php-gd php-cli

підтвердити встановлення PHP

Ви можете перевірити, яка версія PHP була встановлена ​​на вашому сервері, ввівши:

php -v

перевірити PHP-версію

MySQL / MariaDB

MariaDB і MySQL – два найкращі варіанти для вашого сервера баз даних в Linux. Для цього прикладу ми використовуватимемо MariaDB. Щоб встановити його на свій сервер, виконайте:

sudo apt-get install mariadb-server mariadb-client

встановити Mariadb

Після завершення вам потрібно буде скористатися додатковим сценарієм, який постачається разом із пакетом. Він встановить основні заходи безпеки для вашого сервера баз даних. Почніть це, ввівши:

sudo mysql_secure_installation

На першому кроці вам буде запропоновано вказати кореневий пароль MySQL. Натисніть кнопку Введіть кнопка для продовження, оскільки вона ще не створена. Потім дотримуйтесь решти інструкцій, що з’являються в інтерфейсі командного рядка.

Безпечна установка Mariadb

Нарешті, ви можете перевірити, чи працює мій сервер баз даних, запустивши:

sudo systemctl статус mysql

4 Створіть віртуальний хост

Наступним завданням буде створення спеціального каталогу для файлів вашого веб-сайту. Почніть із зміни робочого каталогу:

cd / var / www / HTML

Використовуйте цю команду для створення папки для вашого домену та додаткової в межах:

sudo mkdir -p domain-example.com/public_html

Потім зробіть вебмайстер користувача, якого ми створили власником раніше, використовуючи:

sudo chown -R webmaster: webmaster domain-example.com/public_html

Вам також потрібно переконатися, що дозволи до читання застосовуються до кореневої каталогу Apache. В цьому випадку:

sudo chmod -R 755 / var / www / html /

У цей момент Apache отримує всі налаштування від 000-default.conf файл. Нам потрібно буде скопіювати вміст цього файлу та створити окремий для нашого доменного імені. Найпростіший спосіб скопіювати шаблон конфігурації віртуального хоста за допомогою наступної команди:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

По суті, це робить копію файла під іншим іменем в одному каталозі. Це файл, який повідомляє веб-серверу Apache про розташування кореневого каталогу домену, журналу помилок та інших важливих шляхів. Щоб змінити його вміст, ми будемо використовувати нано:

sudo nano /etc/apache2/sites-available/domain-example.com.conf

Приклад конфігурації Apache:

# Директива ServerName встановлює схему запиту, ім’я хоста та порт, що
# сервер використовує для ідентифікації себе. Це використовується при створенні
# URL-адреси переспрямування. У контексті віртуальних хостів ServerName
# вказує, яке ім’я хоста повинно з’являтися в заголовку хоста:
# відповідає цьому віртуальному хосту. Для віртуального хоста за замовчуванням (цей файл) це
# значення не є визначальним, оскільки воно використовується як крайній хост незалежно.
# Однак ви повинні встановити його для будь-якого подальшого віртуального хоста явно.

ServerAdmin [захищено електронною поштою]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName domain-example.com
ServerAlias ​​www.domain-example.com

# Доступні рівнини: trace8, …, trace1, налагодження, інформація, повідомлення, попередження,
# помилка, критик, попередження, з’являються.
# Також можливо налаштувати loglevel для конкретного
# модулів, напр.
#LogLevel info ssl: попередження

ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log разом

# Для більшості конфігураційних файлів із конфіденційності /, які є
# увімкнено або вимкнено на глобальному рівні, можна
# включати рядок лише для одного конкретного віртуального хоста. Наприклад
# наступний рядок включає конфігурацію CGI лише для цього хоста
# після її глобального відключення "a2disconf".
# Включити конф-доступ / serve-cgi-bin.conf

Не забудьте замінити всі екземпляри domain-example.com фактичним доменним іменем. Щоб зберегти файл, натисніть CTRL + X і підтвердити, ввівши Y. Кінцевий результат повинен виглядати так:

додавання конфігурації домену в Apache

У цей момент вам потрібно буде вимкнути конфігураційний файл віртуального хоста за замовчуванням і використовувати новостворений. Ця команда вимкне її:

sudo a2dissite 000-default.conf

Потім додайте нещодавно створений файл конфігурації, як показано нижче:

sudo a2ensite domain-example.com.conf

Нарешті, вам потрібно буде перезапустити Apache, щоб застосувати зміни. Це можна зробити, виконавши:

sudo systemctl reload apache2

Ви успішно встановили LAMP на своєму сервері. Оскільки ваш домен уже вказаний на сервер, можливо, вам доведеться почекати кілька годин, щоб DNS повністю розповсюдився. Тоді вам слід побачити подібний екран під час відвідування вашого домену через браузер.

Вміст кореневого каталогу домену

5. Налаштування WordPress (або завантаження веб-сайту)

Оскільки початкова настройка сервера нарешті завершена, настав час розмістити веб-сайт на ньому. У цьому розділі ми покажемо вам узагальнений приклад того, як налаштувати та запустити сайт WordPress.

Створіть нову базу даних і користувача MySQL

Почніть з доступу до інтерфейсу MySQL через термінал:

sudo mysql

>Використовуйте такий синтаксис, щоб створити нову базу даних:

СТВОРИТИ ДАТАБАЗУ wpdatabase;

Потім створіть нового користувача та вкажіть пароль:

СТВОРИТИ КОРИСТУВАЧ “wpuser” @ “localhost” ІДЕНТИФІКОВАНО “SuperSecurePassword123”;

Потім призначте адміністративні привілеї новоствореному користувачеві за допомогою:

НАДАЙТЕ ВСІ ПРИВІЛЕГИ НА wpdatabase. * TO ‘wpuser’ @ ‘localhost’;

Це воно! Ваш користувач та база даних MySQL готові до дії. Щоб вимкнути інтерфейс, введіть:

вихід

Перемістіть файли WordPress на свій сервер

І останнє, але не менш важливе, ми повинні отримати фактичні файли веб-сайтів, завантажені в кореневий каталог вашого домену. Є два підходи, які ми опишемо покроково:

  • Використовуючи команду wget, щоб отримати останню версію WordPress
  • Налаштування FTP-клієнта (наприклад, FileZilla)

Спосіб 1: Використання інструментів командного рядка

Перший спосіб – використовувати команду під назвою wget. Щоб використовувати його на своєму сервері, вам доведеться встановити його:

sudo apt-get install wget

Потім змініть робочий каталог на кореневу папку вашого доменного імені:

cd /var/www/html/domain-example.com/public_html

Використовуйте команду wget, щоб завантажити останню версію WordPress з Інтернету:

wget https://www.wordpress.org/latest.zip

Потім витягніть весь вміст архіву, використовуючи:

unzip latest.zip

За замовчуванням всі файли з’являться в новій папці під назвою WordPress (що може призвести до роботи вашого веб-сайту domain-example.com/wordpress). Щоб все працювало правильно, нам потрібно буде перемістити всі файли з цього каталогу в той, що був вище. Ось як це зробити:

CD WordPress

Наступна команда перемістить усі файли з поточного каталогу у вказане місце:

sudo mv * /var/www/html/domain-example.com/public_html/

Перед початком установки вам потрібно буде підготувати файл wp-config.php. Оскільки надано лише зразок першого. Почніть з перейменування:

sudo mv wp-config-sample.php wp-config.php

Потім відредагуйте файл за допомогою nano та додайте деталі конфігурації бази даних MySQL.

sudo nano wp-config.php

Обов’язково оновіть MySQL Користувач, База даних, і Господар розділи зі значеннями, які ви створили раніше.

редагування конфігурації WP

Нарешті, відвідайте своє доменне ім’я в браузері, і ви побачите початковий екран налаштування WordPress.

початкова настройка WordPress

Після цього ви можете встановити плагін міграції, такий як All-in-One WP Migration для імпорту існуючого веб-сайту WordPress.

Спосіб 2: Використання FTP-клієнта

Крім того, ви можете використовувати клієнт FTP, такий як FileZilla. Якщо ви налаштували ключ SSH та відключили автентифікацію пароля, вам потрібно буде використовувати його для входу, а не звичайну комбінацію імені користувача та пароля. Щоб налаштувати з’єднання SFTP:

  1. Йти до Менеджер сайтів FileZilla і додати а Новий сайт.
  2. Встановіть протокол на SFTP – протокол передачі файлів SSH.
  3. Введіть IP свого сервера в Господар поле та встановіть порт 22.
  4. Встановіть тип входу на Файл ключа.
  5. Вкажіть шлях до вашого ключа SSH (напр. /Users/Name/.ssh/id_rsa).
  6. FileZilla перетворить його в .ppk файл, який потім можна використовувати для встановлення з’єднання.

перетворення ключа SSH

Кінцева конфігурація повинна виглядати приблизно так:

Конфігурація FileZilla sftp

Тепер ви зможете отримати доступ до свого сервера через FTP та завантажити будь-які файли безпосередньо зі свого комп’ютера.

З'єднання FileZilla sftp

Вітаємо! Ви дізналися, як розмістити веб-сайт на віртуальному приватному сервері під управлінням Ubuntu 18.04. Було висвітлено все, від початкової настройки сервера до підготовки стека програмного забезпечення. Залишилося лише схопити сервер і забруднити руки!

Ця стаття була опублікована за допомогою Hostinger.com.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map