Створення web сервера на основі ubuntu

Коли з'являється необхідність створити власний сервер для хостингу сайтів, то кращим вибором тудет використовувати одну з безкоштовних операційних систем на базі LINUX. Вони є найбільш захищеними і найменш примхливими до ресурсів. В добавок до таких серйозні переваг, деякі дистрибутиви Linux (наприклад Ubuntu) цілком не складні в налаштуванні.

У даній статті буде розглянута повна настройка готового WEB сервера хостингу сайтів на основі дистрибутива UBUNTU 16.04

Для зручності роботи з командним рядком віддаленого сервера, рекомендую використовувати програму PuTTY.

1. Поновити пакети сервера

sudo apt-get update
sudo apt-get upgrade

2. Встановлюємо пакет компонентів Apache, MySQL, PHP (LAMP)

sudo apt-get install lamp-server ^

Символ ^ в кінці обов'язковий - це частина команди

Під час установки MySQL буде виведений запит на створення пароля root (це окремий пароль адміністратора саме для SQL сервера, а не для основного адміністратора сервера).

3. Встановлюємо phpMyAdmin

sudo apt-get install phpmyadmin
sudo service apache2 restart

Для всіх версій, починаючи з Ubuntu 13.10

Необхідно виконати наступні команди:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload

Додатково для версії Ubuntu 16.04

sudo apt-get install php-mbstring php-gettext
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo systemctl restart apache2

4. Встановлюємо FTP (для зручності роботи з файлами)

sudo apt-get install proftpd

Під час установки буде запропоновано вибрати один з двох різних варіантів установки:

From inetd - демон ProFTPd буде працювати з-під служби inetd.
Standalone - ProFTPd буде встановлений як самостійний демон.

Рекомендую вибрати варіант Standalone, тому що набагато зручніше працювати з ProFTPd, як з окремою службою.

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

Однак, бажано його додатково налаштувати:

sudo nano /etc/proftpd/proftpd.conf

Після настройки FTP потрібно перезапустити:

sudo /etc/init.d/proftpd restart

5. Установка apache2-mpm-itk

Навіщо потрібен модуль apache2-mpm-itk:

Цей модуль потрібен, щоб сервер Apache міг Рабтана з файлами сайту від імені власника папки.

За замовчуванням на директорію з файлами сайту поширюються права 755 і права 644 на всі файли. Це дає права на запис файлів і папок тільки їх власником. З цієї причини при роботі з файлами через FTP і Apache (наприклад через інтерфейс CMS) файли будуть Сзданіе від імені різних користувачів і виникають проблеми з їх зміною або видаленням. У рішенні саме цієї проблеми і допомагає даний модуль. Він вказує в налаштуваннях хоста кожного сайту від імені якого користувача і групи буде працювати Apache у вказаній директорії.

sudo apt-get install libapache2-mpm-itk
sudo a2enmod mpm_prefork
sudo a2enmod mpm_itk
sudo systemctl restart apache2

6. Включення mod_rewrite (для можливості роботи ЧПУ)

sudo a2enmod rewrite
sudo service apache2 restart

7. Створюємо користувача і каталогу для роботи з сайтами

sudo useradd -m -s / bin / false имя_пользователя
sudo passwd имя_пользователя

(Ім'я користувача - новий користувач, від імені якого будуть виконуватися роботи з сайтом. Це допоможе розмежувати права при роботі з декількома сайтами на одному сервері)

На пропозицію системи вводимо пароль нового користувача (двічі)

(Оскільки в попередній команді, при створенні користувача для нього не була вказана існуюча група, то була автоматично створена група з таким же ім'ям, як ім'я користувача. Тобто в команді вище ім'я користувача одно імені групи користувача)

Створюємо файл конфігурації віртуального хоста з варіанта за замовчуванням

sudo cp /etc/apache2/sites-available/000-default.conf / etc / apache2 / sites-available / новий_сайт .conf

sudo nano / etc / apache2 / sites-available / новий_сайт .conf

Змінюємо і доповнюємо такі значення:

DocumentRoot / home / ім'я користувача / www
ServerName новий_сайт
ServerAdmin webmaster @ localhost

AllowOverride All
Require all granted


AssignUserId імя_пользователягруппа_пользователя

Включаємо створений віртуальний хоста і перезапускаємо apache

sudo a2ensite новий_сайт

sudo service apache2 reload

9. Створюємо базу даних MySQL

Необхідно зайти в кансоль управління mysql

При цьому система запросить пароль root від mysql (саме від mysql, який задавався при установці LAMP). При вдалому вході в кансоль mysql значення перед курсором зміниться на mysql>. Після цього створення нової бази sql і користувача для управління нею можна виконати однією командою:

create database імя_бази; GRANT ALL ON імя_бази. * TO 'пользователь_бази' @ 'localhost'IDENTIFIED BY' пароль_пользователя_базя_sql ';

Для виходу з кансолі mysql потрібно ввести команду

Додатково для зручності управління і контролю за сервером через WEB-інтерфейс можна встановити панель управління Webmin

Також додатково можна налаштувати параметри роботи PHP ( "за смаком" - наприклад розмір завантажуваних фалів в параметрі upload_max_filesize = 2M)

Для UBUNTU 16.04:

sudo nano /etc/php/7.0/apache2/php.ini

Для UBUNTU 14.04:

sudo nano /etc/php5/apache2/php.ini