MAKSIKI have come to you

На главную | п.3 Создание виртуальной машины Hyper-V | Установка дистрибутива Ubuntu server | Установка Proftpd | Установка Apache | Установка PHP | Установка Mysql | Установка phpmyadmin | Установка SSH и проброс портов

Установка сервера Ubuntu на OC Windows 10


Основано на реальных событиях июня 2024 года. Ни один компьютер не пострадал.
Все началось с того, что у меня был сайт на бесплатном хостинге Hostiman. На него я отправлял данные с датчиков. И не в первый раз меня останавливали сайт за превышение нагрузки (число поступающих запросов). Мне надоели бесконечные проблемы со службой поддержки и я решил уйти с бесплатных хостингов. До этого я парковался еще на других бесплатных хостингах Beget, Hostiman, Free Hosting, Hostinger, 000WebHost но всегда было что-то неприятное: бесплатные услуги неожиданно заканчивались; по условиям договора требовали размещать положительные отзывы; по непонятным причинам сайт переставал работать; FTP не всегда работало; переставали работать скрипты; не хватало места на диске (отводили всего 100Мб). У каждого свое и вечные неудобства.
Поэтому я выбрал нет топ в качестве железа для сервера. Заказал из Китая за 14000 рублей.


Теперь шаги по порядку, которые были сделаны мною:
1. Переустановил операционную систему (ОС) на Windows 10 Pro
2. Включил компоненты Hyper-V. По умолчанию, компоненты Hyper-V в Windows 10 отключены. Для установки, зайдите в Панель управления — Программы и компоненты — Включение или отключение компонентов Windows, отметьте пункт Hyper-V и нажмите «Ок». Установка произойдет автоматически


Создание виртуальной машины Hyper-V


3. На первом этапе потребуется указать имя будущей виртуальной машины (на ваше усмотрение).


Следующий этап выбираем поколение 2.


Следующий этап — выделение оперативной памяти для виртуальной машины. Я оставил по умолчанию 1024, сайт только для меня одного и мне хватает. Отметка «Использовать динамическую память» оставил по умолчанию, включенной.


Следующий этап — указываю ранее созданную внешнюю сеть, т.к. виртуальную машину переустанавливал 2 раза, то внешнюю сеть создал в первый раз.


Следующий этап — подключение виртуального жесткого диска. Здесь нужно указать размер создаваемого диска, мне хватает 30 Гб, если указать минимально 20 Гб, то после установки сервера вам будет доступно около 3,5 Гб свободного места на диске.


Следующий этап — установить пункт «Установить операционную систему с загрузочного компакт-диска или DVD», нужно нажать обзор и выбрать ранее скачанный файл образа ISO с дистрибутивом. Скачать нужно с официального сайта https://ubuntu.com/download/server


Вот и все: вам покажут сводку по виртуальной машине, а по нажатию кнопки «Готово» она будет создано и появится в списке виртуальных машин диспетчера Hyper-V.


Установка дистрибутива Ubuntu server


4. Установка Ubuntu server (в моем случае последняя версия 24.04 LTS) Для того, чтобы начать установку Ubuntu server необходимо нажать на имя виртуальной машины и перейти в параметры.


Выбрать там пункт безопасность, в этой вкладке снять чекбокс "включить безопасную загрузку".


После этого можно запустить созданную виртуальную машину, вы можете просто дважды кликнуть по ней в списке диспетчера Hyper-V, а в окне подключения к виртуальной машине нажать кнопку «Пуск».
- Далее система предложит установить сервер, это самый верхний пункт, нажимаем "Enter".
- Далее выбираем язык, я выбрал English. Особо ни на что не влияет, переводить можно через камеру смартфона.


- Далее может предложить обновление программы, нажимаем "Update", у меня этого пункта не было.


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


- Далее по умолчанию крестик стоит на Ubuntu Server, жмем "Done".


- Далее система назначит локальный IP адрес, можно согласиться и жать "Done".


Но т.к. я уже переустанавливал систему и мой сайт и мои устройства были настроены на определенный локальный IP, для меня было важно указать свой статический IP. Для этого жмем на "ens33 eth - ", выбираем в настройках Edit IPv4, находим пункт manual


Указываем данные:
Subnet: 192.168.0.0/24
Address: 192.168.0.222 - это ваш жалаемый локальный IP адрес
Gateway: 192.168.0.1
Name servers: 8.8.8.8, 8.8.4.4
Serch domians: здесь ничего не пишем
жмем "save"


- Далее жмем "Done".


- Далее жмем "Done".


- Далее указываем свои данные:
Your name: указываем имя (нигде больше не будет встречаться)
Your server's name: указываем имя сервера например ubserver
Pick a username: указываем своё имя (суперпользователя)
CHose password: указываем пароль
Confirm your password: подтверждаем свой пароль
жмем "Done"
Желательно запомнить имя (суперпользователя) и пароль, очень часто нужно будет их вводить.


- Далее ставим крестик на Install OpenSSH server и жмем "Done"


- Далее спускаемся вниз и жмем "Done"


Начался процесс установки сервера. Первый раз установка была очень долгой, примерно 2-3 часа, может был глюк. В следующий раз установка занимала минут 5.
После того как вверху будет написано "Install complete!" можно внизу нажать "Reboot now".


После появится сообщение о размонтировании установочного диска (скорее всего с ошибкой), просто жмем "Enter".
На этом процесс установки завершен.
Система предложит ввести имя (суперпользователя) и пароль (пароль при вводе не отображается вообще). Подтверждаем нажатием "Enter"


Установка Proftpd


5. В консоли вводим команду обновить:
sudo apt update Это проверка наличия обновлений, если есть пакеты, то следующим шагом сделаем апгрейд, если пакетов нет, пропускаем этот шаг:
sudo apt upgrade Далее вводим команду инсталяции ftp сервера:
sudo apt install proftpd-basic Далее на компьютер, с которого будем удаленно заходить на серевер устанавливаем Total Commander
Указываем в программе Total Commander локальный IP address, имя (суперпользователя) и пароль. Нажимаем соединиться. После этого должны оказаться на сервере в папке 0:/home/ваше_имя/
Теперь можно просматривать все каталоги Ubuntu server, но скачивать, изменять и удалять получится не всё, права доступа пользователя не настроены.


Установка Apache


6. В консоли вводим команду:
sudo apt install apache2 Apache создет папку для размещения сайта по пути: /var/www/html/.
Далее необходимо установить права доступа на все, что будет находиться в папке html/, т.к. уже имеющийся файл index.html удалить или изменить нельзя.
Сначало можно посмотреть установленные права доступа на папки и файлы, вводим команды:
cd /var/www/ Этой командой мы перешли в папку www.
ls -l Этой командой посмотрели установленные права доступа на файлы и папки внутри папки www. Далее установим права с помощью команды:
sudo chmod 777 /var/www/html/ Теперь посмотрим и убедимся, что права доступа изменились на drwxrwxrwx
ls -l После этого можно через FTP закачивать файлы и папки вашего сайта в папку html/


Установка PHP


7. В консоли вводим команду:
sudo apt install php Теперь можно проверить работу вашего сайта с php скриптами. Если сайт еще не готов, созайте в папке html/ файл info.php внутрь файла вставьте код, можно с помощью программы блокнот:

<?php phpinfo();?>

И перейдите в браузере через адресную строку по ссылке, укажите свой локальный IP, который выводит Ubuntu server:
http://192.168.0.111 Если все правильно работает вы должны увидеть примерно следующее:




Установка Mysql


8. В консоли вводим команду:
sudo apt install mysql-server После завершения установки сервер MySQL должен быть запущен автоматически. Вы можете быстро проверить его текущее состояние через systemd:
sudo service mysql status Который должен выдавать результат, подобный следующему:
mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-08 14:37:38 PDT; 2 weeks 5 days ago Main PID: 2028 (mysqld) Tasks: 28 (limit: 4915) CGroup: /system.slice/mysql.service └─2028 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Oct 08 14:37:36 db.example.org systemd[1]: Starting MySQL Community Server... Oct 08 14:37:38 db.example.org systemd[1]: Started MySQL Community Server.

Установка phpmyadmin


9. В консоли вводим команду:
sudo apt install phpmyadmin В браузере в адресной строке вводите http://192.168.0.111/phpmyadmin/ ,если увидете форму для заполнения входа в панель phpmyadmin, значит все нормально установилось. В первый раз у меня была ошибка 404


В интернете легко ищется решение, по-моему в консоли сервера прописывается перенос директории.
Но для захода в панель phpmyadmin попрежнему невозможно авторизоваться. Поэтому есть 2 варианта:
1-й Вариант: Учетная запись debian-sys-maint используется сервисами для взаимодействия с MySQL. Пароль и сокет для подключения задаются в /etc/mysql/debian.cnf. Учетной записью удобно пользоваться для получения доступа тогда, когда с реквизитами root подключиться по ним удаётся. debian-sys-maint также как root является суперпользователем. Из под debian-sys-maint можно зайти в консоль БД и, например, поменять пароль root. Посмотреть пароль для пользователя debian-sys-maint можно в файле при помощи консольной команды:
sudo nano /etc/mysql/debian.cnf В строке password = увидете пароль
[client] host = localhost user = debian-sys-maint password = Fae4aeTggfiemei6Ohp socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] user = debian-sys-maint password = Fae4aeTggfiemei6Ohp socket = /var/run/mysqld/mysqld.sock basedir = /usr После чего, вводим его в форму авторизации, заходим в phpmyadmin и при желании там меняем пароль на новый. Создаем или импортируем базу данных name.sql, если база создалась, то можно пользоваться. Остается только установить новый часовой пояс, если он отличается от вашего. Для того, чтобы посмотреть дату и время вводим консольную команду:
timedatectl

Если Local time отличается, то вводим команду для смены часового пояса на Московское время:
sudo timedatectl set-timezone Europe/Moscow Далее проверяем внесенные изменения той же командой timedatectl. Если на выводе информации Local time изменился на желаемое:


То перезагружаем сервер и пользуемся. И не забываем ставить большой палец вверх!
2-й Вариант: можно создать нового пользователя. С помощью консольной команды входим в mysql:
mysql -u root -p Далее командой создаем нового пользователя:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'some_very_complex_password'; Далее предоставляем все права новому пользователю командой:
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; В первый раз у меня получилось, но до этого я еще кучу всяких команд писал, даже не вспомню, менял socet. Потом виртуальная машина словила ошибку и мне пришлось принудительно удалять сносить все к чертовой бабушке. Потом второй раз я не мог нормально попасть в phpmyadmin, случай частично описан во втором варианте. Там появлялись ошибки 1045, 28000 и еще и еще, что-то исправилось, но вдруг на том же месте выскакивает другая ошибка, в итоге упираешься в бетонную стену. Сносишь виртуальную машину еще раз. И после последовательно, как расписано у меня здесь за пару часиков все устанавливаешь и будет тебе счастье, но только без имени пользователя phpmyadmin, которго сам хотел бы прописать.


Установка SSH и проброс портов


10. Для удаленного управления из ОС Windows 10 необхимо настроить SSH, потому как при установке Ubuntu server мы его инсталировали. В командной строке набираем:
sudo systemctl status ssh Появляется сообщение:


Необходимо, что бы были зеленые записи Active: active (runing) и ssh.service; enable;. В противном случае придется установить ssh-server:
sudo apt install openssh-server И подключить ssh:
sudo systemctl enable ssh.service Убедимся что ssh работает командой:
sudo systemctl status ssh Еще можем сделать рестарт командой:
sudo systemctl restart ssh Теперь на удаленном компьютере открываем Windows PowerShell, вводим команду:
ssh username@192.168.0.111 -p 22 username - ваше имя суперпользователя ubuntu server, -p 22 - номер порта, по умолчанию 22. Либо:
ssh username@192.168.0.111 Далее система предложит ввести пароль, после ввода пароля вы окажитесь в командной строке ubuntu server.
Привязка доменного имени maksiki.ru к IP адресу. Для начала включаем модуль Apache для виртуальных хостов, вводим команду:
sudo nano /etc/apache2/sites-available/maksiki.ru.conf Замените maksiki.ru своим собственным доменным именем. В файл вставляем или печатаем следующее:
<VirtualHost *:80> ServerName maksiki.ru DocumentRoot /var/www/html/maksiki.ru Alias /maksiki.ru "/var/www/html/maksiki.ru" <Directory "/var/www/html/maksiki.ru"> Options None AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> Путь /var/www/html/maksiki.ru указывает, где будут находиться файлы вашего сайта (index.php). Далее сохраняем файл и выходим из редактора. Потом включаем созданный файл, выполнив следующую команду:
sudo a2ensite example.com.conf Далее производим рестарт apache командой:
sudo systemctl restart apache2 Далее открываем админ панель своего роутера через командную строку браузера 192.168.0.1. Находим пункт переадрессация портов. Добавляем правило: виртуальной машине с локальным адресом 192.168.0.111 назначаем с внешнего порта 80 адресацию на внутренний порт 80. Пеперь, при условии, что домен куплен, можно ввести его в адрессной строке браузера и зайти на свой сайт. Не забываем изменить DNS записи в личном кабинете регистратора, у которого вы приобрели доменное имя. Установить А-записи для домена:


Изменениям потребуется 15-30 минут на то, чтобы вступить в силу.


Дополнения


Обязательно (можно через Total Commander) ставим права доступа на файлы, которые будут перезаписываться не ниже = 766.

Изменить владельца директории (папки) выполните команду:
sudo chown –R nameuser /folder/folder/ваша_папка

к началу статьи


Смотрите также:
Ардуино часть_2

Комментарии

Добавить комментарий



Яндекс.Метрика 10
© Все права защищены. Распространение и копирование запрещено. Разработано Maksimus. 2011г.