В данной статье будет рассмотрена полная настройка готового 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:// - должна отобразиться тестовая страница 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:///phpmyadmin
4. Устанавливаем FTP (для удобства работы с файлами)
Во время установки будет предложено выбрать один из двух различных вариантов установки:
From inetd
- демон ProFTPd будет работать из-под службы inetd.
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
AllowOverride All
Require all granted
AssignUserId имя_пользователя группа_пользователя
Включаем созданный виртуальный хоста и перезапускаем apache
sudo a2ensite новый_сайт
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
Для jqgrid существует 4 вcтроенных механизма фильтрации данных
- Опция search:true в параметрах футера грида. Выражается в появлении иконки в футере, по нажатию на которую появляется диалог поиска по одному полю. Минусы в том, что поле только одно, используется текстовое поле для задание искомой величины и набор операторов универсален (общий) для всех полей.
- Конструкция
jQuery("#mysearch" ) .filterGrid ("#grid_id" , { ...} )
Она создает на странице в месте элемента “#mysearch” поисковую панель. Набор полей в панели и элементов управления для них статичен и определяется по colModel или по специальной опции filterModel. Минус в статичности панели (пользователь не может менять набор полей) и в том, что поисковые условия посылаются в отдельных post-параметрах, а не в json-массиве. Это плохо ложится на концепцию универсального источника данных (server-side) для грида. Так же используется только один оператор сравниения для всех условий (равно).
- Опция multipleSearch:true футера грида. В футере появляется кнопка поиска, по нажатию на которую появляется диалог. В этом диалоге можно добавлять поисковые условия и объединять их всех условием OR или условием AND. Минус данной возможности в том, что как элемент управления для задания значений поиска используется только текстовое поле. Операторы сравления тоже всегда одинаковые.
- Поисковый toolbar.
jQuery("#toolbar" ) .jqGrid ("filterToolbar" , { stringResult: true } ) ;
Его минус в использовании тестовых полей и постоянного оператора справления (равно). Все условия объединяются одним только общим (AND).
Как мы видим все 4 механизма поиска имеют ряд недостатков. Эти недостатки и призван решить новый компонент smartSearchPanel.
    Средство системного администрирования Webmin , представляет собой бесплатное программное обеспечение, облегчающее работу системных администраторов операционных систем семейства Linux .
Webmin представляет собой простой веб-сервер, и несколько сотен скриптов, написанных на языке Perl , с помощью которых выполняются команды конфигурирования отдельных элементов системы, системных служб и самого Webmin. Практически, Webmin - это удобная панель управления, доступная через веб-браузер, а модули Webmin - это внешний интерфейс к консольным утилитам. При настройках по умолчанию, для доступа к Webmin достаточно в любом обозревателе открыть URL
https://host:10000
https://localhost:10000 - обычно, при настройках по умолчанию, доступ к средствам Webmin возможен только через петлевой интерфейс.
Не смотря на то, что работа в среде Webmin достаточно проста и имеется неплохая справочная документация, необходимо понимать что для выполнения задач администрирования, в первую очередь требуются знания, хотя бы базовые, которые невозможно заменить никакими инструментами. Webmin - это всего лишь средство, облегчающее администрирование, упрощающее рутинные действия, позволяющее отображать данные в удобном для восприятия виде и выполнять настройки с меньшими затратами сил и средств.
Для тех, кто приступил к изучению Linux, Webmin позволит, в первую очередь, сэкономить время затрачиваемое на скучные и утомительные задачи.
Webmin работает фактически на всех *nix-платформах, включая Linux, AIX, HPUX, Solaris, OS X и другие. Он может работать практически на любом графическом браузере как локально так и удаленно. Данные передаваемые между сервером и браузером могут шифроваться при помоощи SSL. Кроме того, для начинающего системного администратора Linux полезным свойством может быть то, что в Webmin имеется возможность изменить используемый язык и тему оформления.
Установка и настройка Webmin .
Скачать инсталляционный пакет Webmin под конкретный дистрибутив Linux можно с сайта проекта www.webmin.com в разделе Downloads :
Установка должна выполняться под учетной записью суперпользователя и может быть выполнена либо в консоли, либо с использованием графической оболочки и Центра Приложений Ubuntu (Ubuntu Software Center) . Второй способ проще - достаточно открыть скачиваемый установочный пакет Webmin в Центре приложений:
После загрузки установочного пакета будет выполнена установка Webmin и модулей, необходимых для удовлетворения зависимостей, что будет отражено в Центре приложений статусом "Установлено " (Installed).
Установка Webmin из консоли с использованием Advanced Packaging Tool (APT) потребует некоторых дополнительных действий из -за того, что репозиторий релизов Webmin отсутствует в списке источников для установки программного обеспечения Ubuntu и чтобы его подключить, необходимо в конфигурационный файл /etc/apt/sources.list добавить строку:
deb http://download.webmin.com/download/repository sarge contrib
Http://download.webmin.com/download/repository/ - определяет каталог с источниками - пакетами для установки Webmin.
Sarge - семейство процессоров архитектуры Intel x86
Contrib - дополнительное программное обеспечение.
После сохранения sources.list необходимо ыкачать и установить GPG-ключ, используемый в качестве удостоверяющей подписи репозитория. Переходим в каталог /root :
cd /root
Скачиваем ключ:
wget http://www.webmin.com/jcameron-key.asc
Устанавливаем ключ в своей системе:
apt-key add jcameron-key.asc
Также, нужно установить поддержку транспорта HTTPS для инструментов APT:
apt-get install apt-transport-https
После этого необходимо выполнить пересинхронизацию файлов описаний пакетов с их источниками из sources.list :
apt-get update
После завершения синхронизации выполнить установку Webmiin из репозитория разработчика:
apt-get install webmin
В процессе установки могут быть выданы запросы на установку дополнительных пакетов для удовлетворения зависимостей для Webmin. В результате (в случае успешной установки) будет выведена итоговая информация - имя установленного пакета, раздел, к которому он относится, размер, автор, поддерживаемая архитектура, состав модулей и т. п.:
Package: webmin
Status: install ok installed
Priority: optional
Installed-Size: 134432
Maintainer: Jamie Cameron [email protected]
Architecture: all
Replaces: webmin-adsl, webmin-apache, webmin-bandwidth,
Provides: webmin
Depends: perl, libnet-ssleay-perl, openssl, libauthen-pam-perl, libpam-runtime, libio-pty-perl, apt-show-versions, python
Pre-Depends: perl
/etc/pam.d/webmin
/etc/init.d/webmin
Description: web-based administration interface for Unix systems
Using Webmin you can configure DNS, Samba, NFS, local/remote filesystems and more using your web browser. After installation, enter the URL
Https://localhost:10000/ into your browser and login as root with your root password.
Работа с Webmin .
В правой части основного окна отображается информация о системе, в левой - разделы, доступные для настройки с использованием Webmin:
Webmin - настройки модуля Webmin - настройка слушаемых сервером адресов и портов, настройки пользователей, язык и тема оформления, журналы действий, резервное копирование и т.п.
System - информация и системные настройки - управление пользователями, процессами, службами, файловыми системами, системными журналами, резервное копирование и управление приложениями.
Servers - настройки для установленных в системе серверов DNS, DHCP, FTP и т.п.
Others - прочие инструменты для администрирования - командная оболочка, менеджер файлов, SSH-клиент и т.п.
Networking - сетевые настройки, средства мониторинга сетевого трафика, брандмауэры и т.п.
Hardware - системное время, средства управления принтерами, разделами на дисках, запись на CD/DVD
Cluster - управление несколькими системами, объединенными в кластер. Webmin устанавливается на одной из систем, входящих в кластер, и взаимодействие с остальными осуществляется через протокол удаленного вызова процедур RPC (Remote Procedure Call .
Un-used Modules - неиспользуемые модули Webmin - модули которые были установлены, но в системе нет объектов для их использования. Если после установки Webmin выполнялась, например, установка сервера SSH, то для перевода его из категории неиспользуемых в категорию "Servers" (Серверы) необходимо выполнить обновление модулей (Refresh Modules в меню Webmin)
Search - контекстный поиск в Webmin
View Module"s Logs - просмотр журналов изменений для отдельных модулей Webmin.
System Information - отображение информации о системе - имя узла, версия ОС, информация о процессоре, версия ядра и т.п..
Refresh Modules - обновить модули. Для того, чтобы изменения в составе модулей вступили в силу нужно завершить сеанс работы с Webmin (кнопка Logout) и повторно авторизоваться.
Logout - выход из Webmin
Для того, чтобы использовать Webmin с русским интерфейсом, нужно в меню Webmin выбрать пункт Change Language and Theme и установить персональный выбор Personal choice - русский язык Russian (RU_RU) и нажать кнопку Make Changes . Выйти из Webmin и авторизоваться повторно.
При выполнении настроек с помощью Webmin необходимо учитывать тот факт, что в большинстве случаев, для того, чтобы сделанные настройки вступили в силу, требуется нажатие кнопки "Применить настройки" (Apply Changes) и для некоторых сервисов - остановка и запуск. Многие модули Webmin, кроме собственных сценариев настроек позволяют выполнить прямое редактирование конфигурационных файлов, что позволяет выполнять настройки, не реализованные в текущей версии модуля.
Настройка сети в Webmin .
Для настройки сети используется меню "Сеть" - "Настройка сети"
В режиме настроек сетевых интерфейсов можно просматривать список сетевых интерфейсов, активируемых при загрузке и активных в данный момент, удалять их или добавлять новые, а также изменять существующие настройки:
В списке активных интерфейсов присутствуют eth0 и lo . Для изменения настроек активного интерфейса нужно нажать на ссылку с его именем, например - eth0.
Все изменения для выбранного сетевого интерфейса будут применены только после нажатия кнопки "Сохранить". Если же нажать "Вернуться к списку сетевых интерфейсов", то изменения настроек игнорируются.
Как видим, имеется возможность изменения стандартных параметров - IP-адреса, маски, широковещательного адреса, MTU, MAC-адреса. Разрешать или запрещать использование IPv6 и настраивать его параметры, а также добавлять виртуальные сетевые интерфейсы.
Для возврата к предыдущему пункту меню модуля Webmin можно пользоваться ссылками, расположенными в самом низу активного окна, или кнопкой "Назад" используемого браузера.
В данной конфигурации сети существует определенная проблема, связанная с тем, что при установке Ubuntu Linux Desktop 13.04 на данном оборудовании, имя компьютера не привязано к непетлевому сетевому интерфейсу, что видно в пункте настроек "Адреса узлов":
Как видно, имени компьютера UbDesk13 соответствует адрес 127.0.0.1 , так же как и имени localhost что может привести к различным проблемам с использованием данного компьютера в локальной сети. Для того, чтобы устранить данную проблему, необходимо удалить строку:
127.0.0.1 UbDesk13
Отметив ее галочкой и нажав кнопку "Удалить выбранные адреса хоста". Затем нажать "Добавить новый адрес узла", и ввести адрес непетлевого интерфейса (в данном примере 192.168.0.248 на eth0) и имя (UbDesk13). После нажатия на кнопку "Создать" эти данные будут записаны в файл /etc/hosts и имя UbDesk13 будет разрешаться в IP-адрес 192.168.0.248 .
Вместо удаления существующей записи об адресе узла и добавления новой, можно было воспользоваться простым ее редактированием, изменив адрес 127.0.0.1 на 192.168.0.248.
Будет интересно узнать как можно получить удобный доступ с помощью webmin в ubuntu server. Лучшего инструмента для управления unix сестемами через веб-интерфейс.
Посредством webmin – можно не только удобно просматривать логи, вносить правки в конфигурацию установленных служб, но и устанавливать пакеты, удалять их, обновлять систему и т.д. Даже получить доступ к терминалу!
Webmin – представляет собой готовый веб-сервер с целой кучей скриптов. Все прелести его использования можно будет прочуствовать после установки.
Установка Webmin
В первую очередь нужно добавить репозитории webmin в файл /etc/apt/sources.list
sudo nano /etc/apt/sources.list
В самый конец файла добавляем две строчки:
Deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Сохраняем и закрываем файл. Теперь импортируем ключи
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
Обновляем список источников пакетов
sudo apt-get update
установим webmin
sudo apt-get install webmin
Запуск Webmin
После успешной установки пакета, открывайте браузер и переходите по адресу
https://IP-адрес-сервера:10000/
вместо “IP-адрес-сервера ” введите либо IP адрес сервера, либо его имя. Если все сделали правильно, то вы увидите приглашение ввести логин и пароль
Введите в поля свои логин и пароль к серверу, после чего вы попадете на главную страницу webmin
Первое что мы сделаем – поменяем язык на Русский. Для этого перейдем в пункт меню “Webmin
” — “Change Language and Theme
” и установим кодировку Russian (RU.UTF-8)
После применения изменений, нужно обновить страницу. Отлично! Теперь у вас полностью русифицированный webmin
Маленький обзор webmin
Все пункты меню описывать не буду, сами посмотрите и найдете для себя много интересного. Акцентирую внимание на самых основных пунктах.
В разделе “Webmin” – представлены инструменты для работы с самим модулем webmin. Настройка пользователей, доступов, резервного копирования и т.д.
В разделе “Система” – представлены инструменты для работы с основным функционалом сервера. В этом разделе можно найти журналы логов, проводить операции с пользователями и группами, обновлять ПО, управлять активными процессами, работать с расписанием заданий (Cron) и многое другое.
В разделе “Сеть” можно настроить сетевые интерфейсы, а также настроить firewall
В разделе “Оборудование” можно просмотреть подключенное к серверу оборудование, а также просмотреть разделы локальных дисков.
Раздел “Кластер” описывать не буду. С кластерами не работал.
Теперь и вы сможете настроить webmin в ubuntu server и пользоваться им из любой точки земного шара.