Как то решил я основательно пересесть на Linux . Но тут возник вопрос с локальной веб разработкой, ведь раньше я использовал OpenServer (OSPanel) на Windows. А вот для линукс такого нету. Хотя есть XAMPP но не хочется использовать его на своей машине, так как зависимости, разные версии php, настройки, итд, можно что нибудь да сломать. Кстати с OpenServer-ом тоже в этом плане часто проблемы, то ломается то еще что то (у кого все хорошо, у них нет сотни сайтов и баз данных)
Поэтому для этого дела я выбрал способ через виртуальные машины. Конечно можно использовать Docker, (или Vargant) но он для меня неудобен в работе или сложен, кому как. В итоге пишу инструкцию, больше для себя, чтобы не вспоминать каждый раз. 🙂
Начнем.
Необходимые предварительные знания. Хоть раз устанавливали Линукс на Виртуалбокс.
Создаем виртуальную машину в виртуалбокс и устанавливаем дебиан.
Я выбрал версию для сетевой установки, так как лишнего не нужно.
https://www.debian.org/CD/netinst/
Запускаем установку как обычно. На шаге выбора окружения рабочего стола, убираем все, оставляем только Стандартные системные утилиты. Этого будет нам достаточно. После завершения установки, открывается терминал где предлагают залогинется. Далее все по пунктам.
- Переходим сразу на root, т.е логинемся как root при старте системы
- Устанавливаем менеджер файлов Midnight Commander apt install mc
Если выбрали русский язык, то после ввода команды спрашивает Да или нет. Нужно ввести Y типа yes - После завершения установки, устанавливаем дополнение виртуалбокса, это для общих папок итд. Для этого в меню VirtualBox выбираем пункт Устройства - Подключить образ диска Дополнений гостевой ОС . Для проверки можно посмотреть в пункте Устройства - Оптические диски , и там галочка напротив образа диска.
- 3.1. Диск подключили, теперь его нужно смонтировать командой mount /dev/cdrom /media/cdrom
- 3.2. Запускаем файловый менеджер командой mc и идем первым делом в начало диска, а потом в директорию media/cdrom и там запускаем VBoxLinuxAdditions.run , прямо менеджером файлов через enter - Настроим общие папки. Переходим в Устройства - Общие папки , нажимаем Добавить. Там выбираем папку на своем компе, например на рабочем столе папка wpress и ставим галочки Авто подключение и Создать постоянную папку.
- 4.1. Перегружаем вирт машину и если все хорошо, то мы с помощью mc сможем дойти до директории /media/sf_wpress - Теперь установим XAMPP . Для этого на основном машине открываем сайт https://www.apachefriends.org/ и там скачиваем нужную версию, в моем случаи самую последнюю на главной странице XAMPP for Linux (для другой версии, например php7 нужно перейти по ссылке https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/ )
- После того как скачали, копируем в нашу общую папку wpress на рабочем столе. И возвращаемся обратно в виртуальную машину.
- На виртуальной машине переходим в общую папку (через mc конечно) и запускаем наш скаченный архив. Откроется терминал, где надо ответить везде Да, т.е Y . Ждем окончания установки и попадаем опять в mc. Нажимаем F10 для закрытия MC
- Запускаем веб сервер командой /opt/lampp/lampp start
Кстати, будет ругаться на netstat . Установим его командой apt install net-tools - Пробрасоваем порты с основной в гостевую ОС и настраиваем карту. Для этого в настройках виртуальной машины, на вкладке Сеть, выбираем дополнительно и там нажмем добавить и прописываем:
Адрес хоста 127.0.0.1
Порт хоста 8080 (я делаю именнно так, так как с 80 портом у меня не работает)
Адрес гостя, оставим пустой
Порт гостя 80. - В браузере основной системы переходим по адресу 127.0.0.1:8080 и видим наш сервере .... УРА !!!! Если вам этого достаточно, то можно в виртуальной машине использовать директорию /opt/lampp/htdocs/ ведь там все расположено.
- Но это неудобно (и не достаточно), поэтому направим все на нашу общую папку. Делаем символическую ссылку командой ln -s /media/sf_wpress /opt/lampp/htdocs/
Тем самым теперь у нас в директории /opt/lampp/htdocs/ появится как бы директория sf_wpress , к которой можно получить доступ через http://127.0.0.1:8080/sf_wpress/ Т.е таким образом, все то что мы положили в общую папку, можно будет запустить через веб браузер. - Попробовали, пишет Доступ запрещен. (если пишет Объект не найден, значит нет директории. Посмотрите вручную через MC есть ли она вообще). Для устранения, идем в /opt/lampp/etc/httpd.conf и редактируем его, нажатием F4 и далее находим строку с текстом User daemon и Group daemon и заменим на www-data и vboxsf соответственно. Нажимаем F2 для сохранения. Потом F10 чтобы выйти.
- Перезапускаем xampp командой /opt/lampp/lampp restart
и проверяем доступность. Готово. Не забудьте в директорию общей папки положить хотя бы пустой index.html , иначе ничего не увидите. - И на последок, доступ к phpmyadmin ( http://127.0.0.1:8080/phpmyadmin/ ) , по умолчанию закрыт из вне т.е только при запросе с локалки именно с самой виртуальной машины. Но мы стучимся из вне и поэтому даем доступ так. Файл конфига по пути /opt/lampp/etc/extra/httpd-xampp.conf редактируем строку Require local на Require all granted . Сохраняем. перезапускаем xampp.
- Теперь все просто. Запускаем машину. Просит логин и пароль. Вводим root и пароль. Далее нажимаем клавишами вверх и видем последнюю введенную команду, например /opt/lampp/lampp start и нажимаем и запускается вебсервер. Поработали, вводим /opt/lampp/lampp stop и потом глушим вирт машину командой shutdown -- poweroff now 🙂
Хоть и написано много, но все просто, больше описывал действия. Я надеюсь ничего важного не пропустил. Если что, добавлю, пишите в комментариях.