Локальный тестовый линукс-сервер под Windows

1948
Хочу поделиться своим опытом по организации простого виртуального сервера на линуксе на локальном компьютере.
Зачем это нужно?
Для тестирования своих проектов на совершенно бесплатном своем вебсервере на линуксе, который к тому же можно в течении минимального времени вернуть к любому нужному состоянию и продолжить эксперименты.
Вы скажете, а как же Опенпанель, Денвер, Ксампп, Вингинкс и т.д?
Всё это, безусловно, очень удобно и хорошо. Создателям этих инструментов надо поставить памятник! Но иногда требуется протестировать работу сайтов и приложений на реальном линукс-сервере. Со всеми установками веб-панели, работой в консоли по SSH, с правами на папки, установленными расширениями и прочими нюансами. Можно, конечно, за 150 рублей в месяц найти вполне нормальный VDS, но это опять зависимость от воли хостера и доброжелательности техподдержки.
Можно и вообще ничего не тестировать, не экспериментировать, а задавать вопросы на форуме в надежде, что подскажут товарищи, у которых есть площадка для экспериментов. Но это какой-то растительный метод существования. А человек должен мыслить и развиваться!
Инструкция рассчитана на самых неискушенных в линуксе людей, как и я сам.

Итак, по пунктам:

1. Создание виртуальной машины.

Заходим на сайт Оракла и скачиваем Виртуалбокс.
https://www.virtualbox.org/
Устанавливаем Виртуалбокс (далее буду называть его просто VB) стандартно, все что ни предложит – принимать. В настройках можно указать свою папку для виртуальных машин по умолчанию.
Спойлер
Скачиваем минимальный линукс. То есть практически голое ядро с загрузчиком. Мне больше нравится Centos 7, поэтому далее все будет на примере Центоса. Скачать минимальный Centos: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
По любой из ссылок скачается CentOS-7-x86_64-Minimal-1708.iso
Далее создаем новую виртуальную машину. Если её назвать как-то вроде Cent111, VB сразу предложит настройки подходящие для установки Центоса и можно смело с ними соглашаться и просто жать кнопку «Далее».
Потом нужно настроить созданную машину. Настроек потребуется всего две: настроить сеть, выбрав тип подключения «Сетевой мост» и сразу подключить образ Центоса для установки:
Спойлер
Запускаем виртуальную машину и Центос сразу начинает устанавливаться. При установке можно выбрать русский язык, тогда линукс будет ругаться по-русски, но в этом случае нужно не забыть переместить английский ввод на первую позицию, иначе будет по умолчанию вводить в консоли русские буквы.
Спойлер
Также очень важно не забыть включить сеть!!! Потому что, попытка включить потом на уже установленной машине, может привести к вывиху мозга.
Не забудьте сразу записать ip, который получила виртуальная машина. Впрочем, если забудете - потом можно посмотреть.
Спойлер
Потом нужно установить пароль root, даже самый простой, иначе линукс сгенерирует пароль сам и Вам не скажет. Если ругается на простой пароль – просто нажмите кнопку «Готово» дважды.
Потом минут 10 устанавливается Центос. Жмем кнопку «Перезагрузка» и видим черное окно с загружающимся линуксом. Далее вводим логин root и ваш пароль. Ввода пароля видно не будет, но нужно ввести его вслепую и нажать энтер. Все, наша виртуальная машина готова!
Теперь нужно посмотреть, какой айпи она получила в сети. Набираем в консоли ipconfig и видим фигу! В минимальном центе не установлен net-tools. Устанавливаем его.
Код BASH:
  1. yum -y install net-tools
После установки можно посмотреть айпи. Набираем
Код BASH:
  1. Ifconfig
Если лень ставить неттулз – можно набрать в консоли просто
Код BASH:
  1. Ip addr
Видим кучу всяких цифирок, одна из которых будет айпишником вашей виртуальной машины.
В этот момент я настоятельно советую снять образ виртуальной машины в этом состоянии, чтобы потом не устанавливать всё заново, если что-то пойдет не так.

2. Снять образ виртуальной машины:

Выключаем виртуальную машину и в меню «Файл» VB жмем «Экспорт конфигураций», выбираем нашу созданную виртуальную машину (далее буду называть её BM), выбираем папку, куда сохранить, называем как-нибудь файл конфига (например Cent0), соглашаемся со всем, что предложит VB и сохраняем. Сохраняется пару минут. Теперь, в случае неудач при дальнейших экспериментах , мы всегда можем удалить загубленную экспериментами ВМ и восстановить заново в первозданном состоянии. Для этого нужно удалить существующую ВМ, нажать «Импорт конфигураций», выбрать наш сохраненный файл и мы получим нашу ВМ в первозданном виде за несколько секунд.

3. Настраиваем подключение в Putty.

С Центосом в самом окне VB работать очень неудобно, он не поддерживает вставки и копирования с родительской машины, поэтому для работы в консоли будет удобнее установить консольный клиент Putty. Скачиваем его здесь: https://putty.org.ru/download.html
Советую скачивать именно ту версию, ссылка на которую в окне с дискетой. Она хоть и не самая новая, но зато русифицирована и имеет некоторые дополнительные фичи в виде сохранения паролей.
Потом можно сохранить логин-пароль и не нужно будет его вводить каждый раз.
После этого нужно ткнуться опять в верхнюю строчку меню (Сеанс) , назвать как-нибудь ваше подключение, ввести ip вашей BM и нажать «Сохранить».
Спойлер
Жмем на название нашего подключения и открывается окно Putty. Если все введено правильно появится вывод командной строки [root@localhost ~]#
Дальше нужно установить Midnight Commander
Код BASH:
  1. yum -y install mc
И nano
Код BASH:
  1. yum -y install nano
Теперь можно обновить ВМ
Код BASH:
  1. yum -y update
Дожидаемся окончания обновления и проверяем работу миднайткоммандера
Код BASH:
  1. mc
Должно появиться синее окошко похожее на нортонкоммандер.
Спойлер
В нем работает мышь, можно копировать, переносить, редактировать, запаковывать и распаковывать файлы вашей ВМ. Инструкция по пользованию mc здесь: http://midnight-commander.org/wiki/ru/doc
Если все нормально работает – экспортируем эту конфигурацию на всякий случай под именем например Cent1(пункт 2).

4. Установка WEB-панели.

Теперь у нас есть подготовленная к работе ВМ и мы можем установить на нее какую-нибудь веб-панель, для управления сайтами.
Из необычайного разнообразия панелей наиболее удобны ISPmanager (платная панель), Vestacp (бесплатная) и Brainycp (тоже бесплатная). Хоть ISP и платная, но её тоже можно установить на тестовую ВМ и две недели тестового периода над ней экспериментировать.
Я экспериментировал со всеми панелями, какие только знаю, поэтому советую Весту. Все быстро, просто, стабильно, расширяемо и имеет хороший форум поддержки на русском в том числе.
Итак, устанавливаем Весту. Идем сюда: http://vestacp.com/install/, мотаем чуть ниже в ADVANCED INSTALL SETTINGS, выбираем то, что нужно для тестового сервера (зачем на тестовом всякие спамассасины и прочие излишества), вводим желаемое название тестового домена, например cent.test, свой емейл (будут реально приходить письма с Весты) и пароль.
Потом копируем пункты 2 и 3 и вcтавляем правой кнопкой мыши в окно консоли Putty с подключенной вашей ВМ. На все запросы жмем y и энтер.
Минут 15 оно будет печать в окошке всякую информацию, можете даже попробовать её почитать.
В процессе кроме Весты установятся Apace, Nginx, MariaDB, phpmyadmin и прочие нужные вещи.
Потом выдаст что-то типа этого
Спойлер
Все, Веста установлена. Проверяем, все ли работает. Переходим по адресу https://your_ip:8083 и видим окно авторизации. Вводим логин-пароль и видим панель.
Заходим просто по айпи http://your_ip и видим приветствие большими серыми буквами.
Если все нормально работает, можно сохранить это состояние. Выключить ВМ, экспорт конфигураций и сохраняем в файл например Vesta0. Это будет чистая и незамутненная экспериментами Веста.

5. Установка сайта на вашу ВМ.

В Весте от имени админа лучше сайтов не делать. Потом проблем не оберетесь. Сразу создаем нового пользователя. User – Жмем зеленый кружок – Add user. Создаем какого-нибудь юзера, например с именем Cent. Вводим ему пароль, емейл и указываем имя-фамилию от балды. Жмем Add – юзер создан.
ADDING USER→ User cent has been created successfully. / login as cent
Логинимся под нового юзера и создаем наш сайт. Находим кнопку Edit, и выcтавляем SSH Access в положение bash. Потом это пригодится!
Идем Web – жмем зеленую кнопку - Add web domain. Казалось бы будет логично создать сайт, который мы заявляли при установке Весты, cent.test, но он уже есть у админа, второй создать не даст. Поэтому либо перелогиниваемся обратно под админа (в правом верхнем углу admin->cent logout) и удаляем админский сайт cent.test, либо делаем сайт с другим именем, на тестовом сервере это все равно. Потом жмем кнопку DB вверху, зеленый плюс и создаем базу данных. Название, логин, пароль и т.д.
Потом коннектимся к нашей ВМ по ftp любой удобной Вам программой. Filezilla, Totalcomander, WinSCP. Вот WinSCP настоятельно рекомендую установить: https://winscp.net/eng/download.php
С его помощью можно не только управлять файлами, но и править их в любом удобном редакторе прямо на сервере.
Итак, подключились по ftp, идем в папку /home/cent/web/cent.test/public_html, удаляем или переименовываем лежащий там файл index.html и закачиваем туда архив с нашим сайтом, или установочный архив InstantCMS. Загруженный архив можно было бы распаковать из WinSCP, но это будет настолько долго, что проще распаковать архив на компе и загружать уже распакованным. Поэтому это не наш метод. Подключаемся по SSH при помощи Putty, перелогиниваемся под юзера cent. Это важно! Иначе владельцем файлов будет root.
Код BASH:
  1. su cent
и запускаем миднайт коммандер:
Код BASH:
  1. mc
Там заходим в папку web/cent.test/public_html и видим наш архив. Теперь можно его распаковать.
Тыкаем в него правой кнопкой, вверху выбираем Команда – Меню пользователя – Do something on current file. В открывшемся поле ввода набираем unzip и жмем энтер. Пока убираем палец с энтера – архив уже распакован. Можно приступать к установке сайта. Заходим по айпи адресу нашей ВМ и видим меню установки InstantCMS. Что делать дальше, думаю все знают.
Если нужно несколько сайтов - просто создаем под вашим пользователем сколько нужно сайтов с разными названиями, потом идем на компьютере в папку c:\Windows\System32\drivers\etc\ и редактируем файл hosts
В конец файла написать
192.168.1.107 cent1.tes
192.168.1.107 cent2.tes
192.168.1.107 cent3.tes
И так далее. Соответственно имена сайтов и айпи вставьте свои. Тогда ваши сайты будут открываться по доменному имени.
Теперь можно оттюннинговать нашу панель.

6. Доработка панели Веста.

Сразу предупреждаю, весь этот тюннинг хорош для тестового сервера, на рабочей панели Веста такое делать можно на свой страх и риск и если понимаете, что делаете!

6.1 Повышаем версию MariaDB с 5.5 до 10.2:

Создаем новый файл репозитория мариидб:
Код BASH:
  1. nano /etc/yum.repos.d/mariadb.repo
Вставляем туда это:
Код BASH:
  1. # MariaDB 10.2 CentOS repository list - created 2018-01-18 19:33 UTC
  2. # http://downloads.mariadb.org/mariadb/repositories/
  3. [mariadb]
  4. name = MariaDB
  5. baseurl = http://yum.mariadb.org/10.2/centos7-amd64
  6. gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  7. gpgcheck=1
и жмем CTRL + X потом Y и энтер.
Останавливаем Марию
Код BASH:
  1. systemctl stop mariadb
и обновляем пакеты
Код BASH:
  1. yum -y update
Должна скачаться и установиться новая версия Марии. Запускаем её снова
Код BASH:
  1. systemctl start mariadb
Теперь заходим в phpmyadmin http://your_ip/phpmyadmin и видим новую версию Марии.
Спойлер

6.2 Устанавливаем новые версии php.

Самый простой вариант – идем сюда https://github.com/Skamasle/sk-php-selector/blob/master/sk-php-selector.sh , копируем там всю эту простыню, вставляем правой кнопкой в окно SSH и жмем энтер. Далее все поставится само. Создателю данного переключателя php Skamasle – отдельное спасибо! Рестартуем Апач
Код SH:
  1. systemctl restart httpd
Теперь можно переключать версии php в настройках web-домена:
Спойлер

6.3 Замена стандартного шаблона Весты:

И наконец для самых тонких ценителей извращений – замена стандартного шаблона Весты на Admin_LTE, доработанный специально под Весту товарищем louislam.
https://yadi.sk/d/vI6J7HSr3RafaN
Скачиваем архив, распаковываем и при помощи WinSCP копируем содержимое архива в папку /usr/local/vesta/web с заменой файлов.
Наслаждаемся модным интерфейсом Admin_LTE.
Спойлер

7. Установка и тестирование BrainyCP

Установить Брейни на ВМ с уже установленной Вестой не получится, поэтому останавливаем ВМ, удаляем её полностью со всеми файлими и импортируем конфигурацию с чистым обновленным Центосом, сохраненную нами ранее как Cent1. Теперь на нее можно установить Брейни.
BrainyCP новая бесплатная web-панель со множеством настроек. Удобства по сравнению с Вестой - имеет встроенный файлменеджер elFinder, можно прямо из панели менять и устанавливать дополнительные версии php и mysql. Также имеется уже установленный ioncube loader и memcached.
Недостатки по сравнению с Вестой - легкая тормознутость (обдумывает каждое нажатие кнопки) и нестабильность. Никогда не знаешь, что откажется работать и по какой причине. У меня например, отказался работать ftp сервер. Но его удалось переустановить прямо из панели.
Заходим на официальный сайт Брейни в даунлоадс https://brainycp.com/download , мотаем чуть вниз в расширенную установку, выбираем нужные настройки и жмем "Сгенерировать команду установки".
Спойлер
Текст из серого окошка выделяем, копируем и правой кнопкой вставляем в консоль Putty.
Устанавливается минут 40. Брейни система навороченная.
Спойлер
После установки переходим в браузере по адресу http://ваш_ip:8002 и видим панель авторизации.
Спойлер
Там вводим логин root и ваш пароль рут, который Вы задали при установке Центоса.
В Брейни тоже никаких сайтов от админа заводить не нужно (админская учетка не для этого), а нужно создать нового пользователя, войти под ним и создать новый сайт.
Уведомления о добавлении постов, записях на стене и комментариях для INSTANTCMS 1 | Ospanel и InstantCMS
Теги: vesta, centos, admin_lte
Комментарии (30)
Реклама
cms
vikont 19 января 2018 в 01:16 +2
small user social cms
Отлично поработали! Несомненно +
Главное разжевано до элементарных частиц... только кнопки нажимай... v
И все же, для тех, кто захочет попробовать панель Brainy, тогда в пункте 4 Установка Веб панели вам СЮДА
После загрузки страницы ищем слово Установка: и по очереди копируем каждую строчку команду и вставляем в командную строку на своем сервере (там куда вы зашли через Putty.и авторизовались)
Вставка работает как и в Винде по CTR+INSERT или по клику по правой клавише мышки, далее ENTER
В конце установки покажет как входить в панель..
Вход в панель http://ваш_IP:8002
Логин root
Пароль РУТОВЫЙ тот же что и при авторизации на сервере.
Далее по описанию.
В Управление-Хостинг аккаунт создаете пользователя....
Ris 19 января 2018 в 01:28 +2
small user social cms
В принципе, я могу завтра дополнить мануал инструкцией по установке Брейни. Тоже с картинками.
vikont 19 января 2018 в 03:58 0
small user social cms
Давай! Нормально будет. Пусть выбирают.
ifork 19 января 2018 в 03:51 0
small user social cms
Очень годный пост!
Кирилл Эдуардович (Странник) 19 января 2018 в 08:53 0
small user social cms
Браво! Отличная работа!
Александр 19 января 2018 в 12:03 0
small user social cms
Полезно, однозначно +

А по резервному копированию VPS ки не заморачивались?
Ris 19 января 2018 в 12:14 +1
small user social cms
Конечно, есть опыт архивирования файлов и баз данных сайтов прямо на сервере, переноса их на другой хостинг прямо по ftp и разворачиванию архивов на новом хостинге. Причем неоднократно подтвержденный практикой.
Эти же архивы можно сохранять и на компьютере или хранилищах в сети.
Но это уже тема для отдельной статьи.
Александр 19 января 2018 в 15:58 0
small user social cms
а опыт сохранения целиком, т е настроил сервер, сделал его снимок, и уже потом бд и файлы сайтов бэкапишь, в случае чп разворачиваешь снимок сервера из образа на этом или другом впс или сервере и накатываешь последние бд и файлы сайта, так делали?
Ris 19 января 2018 в 16:15 0
small user social cms
Своими силами на удаленных серверах так не делал, но некоторые хостеры предоставляют возможность делать снапшоты. То есть снимок виртуального сервера. Это надо спрашивать у техподдержки хостера. Они же в случае чего помогут развернуть сохраненный образ обратно.
vikont 19 января 2018 в 17:04 0
small user social cms
Не стоит так делать уже потому, что само железо серверов может быть разное, что учитывается при инсталляции Линукса или подготовлено самим хостером в образах.
Чем примечательна в этом смысле панель Брайни! Она позволяет бэкапить каждый пользовательский аккаунт целиком со всеми настройками и потом все восстанавливать! Есть механизм прямой миграции сервера на сервер с предустановленной панелью Брайни.
Ris 19 января 2018 в 18:44 0
small user social cms
Я имел в виду снапшот для восстановления в случае проблем на тот же сервер.
А бэкап профиля пользователя и в весте есть.
Александр 22 января 2018 в 11:50 0
small user social cms
Не думаю что там всё на столько запущено с железом, на вскидку пишут что могут быть проблемы с сетевым интерфейсом и драйверами к нему, а так возможно. Думал просто имеется опыт.
На вин проблем никаких с переносом, по крайне мере в не серверных системах, думаю и в серверных никаких , только надо учитывать лицензию...
Ris 22 января 2018 в 12:38 0
small user social cms
Мне не очень понятно, зачем хранить огромный бэкап сервера, если можно сделать архивы файлов сайта и архивы базы.
Александр 22 января 2018 в 14:10 0
small user social cms
иногда сервер настраивается определенным образом и достаточно не тривиально, чтобы этого не повторять при переезде.
Ris 22 января 2018 в 14:24 0
small user social cms
Так перенастройка айпи и прочего на образе с другого хостера - задача еще более нетривиальная.
Уж легче заново настроить, чем поменять сетевые настройки сохраненного образа.
Ради эксперимента попробуйте по инструкции выше установить виртуальный сервер с Вестой, а потом поменять айпи этого сервера. Апач с нгинксом тупо не стартуют.
Александр 22 января 2018 в 16:07 0
small user social cms
наверно Вы правы, но как будет время изучу вопрос, если руками там не вариант, то уверен должны быть решения, возможно коробочные и дорогие, но должны.
Ris 22 января 2018 в 16:11 0
small user social cms
Решения есть на уровне панели управления.
То есть бэкап профиля пользователя и восстановление его на новом хостинге в такую же панель управления.
Это есть и в Весте и в Брейни и в ISPmanager.
@IamB 19 января 2018 в 12:39 0
small user social cms
Браво! Теперь у меня точно получится.
instantcms2.ru 19 января 2018 в 19:14 0
small user social cms
А если нужно его сделать видимым из вне, т.е. в интернет?
Если я что-то упустили, извините ))
instantcms2.ru 19 января 2018 в 19:16 0
small user social cms
Спасибо забыл сказать )
Ris 19 января 2018 в 20:08 0
small user social cms
Я не пробовал. Дело в том, что у меня оптика прямо в квартиру и чтобы сделать видимой даже опенсервер из инета мне придется настраивать бридж на роутере. А мой роутер принадлежит компании МГТС и у меня на нем даже админских прав нет.
Вы наверное хотите поднять сайт прямо на локальной машине? Я когда-то тоже задавался этим вопросом, но пришел к выводу, что это экономически нецелесообразно. Статический айпи стоит дороже нормального VDS.
Melon 19 января 2018 в 20:18 0
small user social cms
Я целый год держал сайты у себя дома. Статический ip мне обходился в 100 рублей в месяц, но вот когда интернет исчезал или отключалось электричество, то я жутко нервничал. Так что тут вопрос целых нервов более актуален smile
Но и плюсы были, скорость доступа, обновление системы прямо с клавиатуры, на счет места не переживал.
Ris 19 января 2018 в 20:24 0
small user social cms
И еще даже ноут жутко шумит в ночной тишине.
eoleg 22 января 2018 в 15:06 0
small user social cms
Для этого нужен белый IP который можно получить у провайдера или от сервисов в инете через vpn
Настраиваете на роутере DMZ или просто пробрасываете порты.
lesterkey 20 января 2018 в 10:58 0
small user social cms
эх.. как мне не доставало похожей статейки в закладках! жирнейший плюс dance
webtotma 23 января 2018 в 21:54 0
small user social cms
Спасибо. Полезно. Все разжевано )))

Може еще гайд сделаете по настройке виртуальных хостов, чтоб с несколькими сайтами работать ...
Ris 23 января 2018 в 21:56 0
small user social cms
Тут будет проще Openpanel.
Сделать гайд по опенпанели? Он весь в три строки уместится.
Ris 23 января 2018 в 23:58 0
small user social cms
Roman 15 февраля 2018 в 02:12 0
small user social cms
Отличная инструкция. Есть только один вопрос: Сколько примерно весит сохранённый образ виртуальной машины и сколько она занимает в рабочем состоянии места на HDD?
Ris 15 февраля 2018 в 07:32 0
small user social cms