Версия для печати

Создание WEB сервера на основе UBUNTU Избранное

Оцените материал
(26 голосов)

Когда появляется необходимость создать собственный сервер для хостинга сайтов, то лучшим выбором тудет использовать одну из бесплатных операционных систем на базе 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 сервера, а не для основного администратора сервера).

Проверяем установку web-сервера http://[ip адрес сервера ubuntu] - должна отобразиться тестовая страница apache.

3. Устанавливаем phpMyAdmin

sudo apt-get install phpmyadmin
sudo service apache2 restart

Необходимо выполнить следующие команды:

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

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

Проверяем доступность интерфейса http://[ip адрес сервера ubuntu]/phpmyadmin

4. Устанавливаем FTP (для удобства работы с файлами)

sudo apt-get install proftpd

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

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

Рекомендую выбрать вариант Standalone, т.к. гораздо удобней работать с ProFTPd, как с отдельной службой.

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

Однако, желательно его дополнительно настроить:

sudo nano /etc/proftpd/proftpd.conf

Раскомментировать значение RequireValidShell off и DefaultRoot ~

После настройки FTP нужно перезапустить:

sudo /etc/init.d/proftpd restart

5. Установка 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 имя_пользователя

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

На предложение системы вводим пароль нового пользователя (дважды)

После создания пользователя размещаем отдельный каталог для сайта (например www), зайдя новым пользователем по FTP в домашний каталог, либо следующей командой:

sudo mkdir /home/имя_пользователя/www
sudo chown -R имя_пользователя:группа_пользователя /home/имя_пользователя/www/

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

8. Создаём виртуальный хост для сайта

Создаём файл конфигурации виртуального хоста из варианта по-умолчанию

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
<Directory /home/имя_пользователя/www>
AllowOverride All
Require all granted
</Directory>
<IfModule mpm_itk_module>
AssignUserId имя_пользователя группа_пользователя
</IfModule>

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

sudo a2ensite новый_сайт
sudo service apache2 reload

9. Создаём базу данных MySQL

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

mysql -u root -p

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

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

Для выхода из кансоли mysql нужно ввести команду

\q

На этом можно закончить. Полноценный хостинг для сайта готов.

Дополнительно для удобства управления и контроля за сервером через 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

Основной источник: http://senokosov.info/lamp/install-lamp

Дополнительные материалы:

http://la2ha.ru/dev-seo-diy/unix/add_new_ubuntu_user

https://dyrik.ru/linux/ustanovka-apache2-mpm-itk-v-ubuntu-16-04.html

http://paperplane.su/ustanovka-ftp-servera-proftpd-na-debianubuntu/