Створення 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