Ставить кучу пакетов на свой linux mint, мне не очень хотелось, но вот нужно было поднять apache, php и mysql и любой желающий из всемирной паутины должен иметь возможность увидеть его. Лучшим выходом из ситуации я посчитал установку ubuntu-server на virtualbox.
Инструкции, которые описаны в статье подойдут для любой ОС (windows, linux, mac) на которой можно запустить VirtualBox или VMware. Однако в данном конкретном примере, рассмотрена установка на virtilbox, но отличие от VMware будет только в пробросе портов и настройке общих папок.
Выбор ubuntu-server был совершен совершенно случайно. Мне не требовался навороченный сервер. а нужна лишь возможность протестировать сайты. Если установить любой другой linux, то инструкции будут абсолютно теме же.
Для начала устанавливаем VirtualBox. И попутно скачиваем ОС для нашего сервера. Ubuntu-server можно взять здесь.
Особо не имеет значения, какие именно параметры выберете при установке. Доставить необходимые пакеты будет не трудно.
После завершения установки (хотя можно было это сделать и сразу), открываем Устройства > Сетевые адаптеры. Убеждаемся, что стоит NAT и нажимаем кнопку Проброс портов. В IP хоста пишем ваш внешний ip адрес и порт отличный от 80. А в Порт гостя пишем 80. Если вы хотите, что бы весь интернет смог подключиться к вашему виртуальному серверу, то оставьте IP гостя пустым.
Разумеется, что у вас должен быть внешний белый ip, в обратном случае проще поставить Сетевой мост за место NAT и тогда вашу виртаулку будет автоматически видно всем из сети. Но тогда на виртуалке не будет интернета. В качестве компрамиса можно в начале произвести все настройки на NAT, а потом поставить мост. Что бы узнать IP виртуальной машины, то наберите в ней
ifconfig
Перед первой перезагрузкой было бы неплохо русифицировать консоль. Для этого выполняем команду:
sudo apt-get install console-cyrillic
Во время установки вопросы будут «квадратиками»… первый из них о способе переключения раскладки, а на второй… да х его з. Просто жмём энтер.
Для того, что бы увидеть русские буквы выполняем команду:
cyr
Для удобства её удобно поместить в автозагрузку:
sudo nano /etc/rc.local
Выше строчки exit 0.
Перезагружаем виртуальную систему (sudo reboot) и введя ваш вешний ip адрес и соответствующий порт (или просто ip если ставили сетевой мост) вы должны попасть на стандартную страницу apache: «It working!».
Если этого не произошло, то проверьте статус апача
sudo /etc/init.d/apache2 status
Если апач запущен, но интернет не видит ваш сайт, то проверьте правильно ли настроен апач. Например командой:
wget http://localhost/index.html
Если файл скачается, значит неправильно настроили проброс портов.
Если при проверке статуса апача напишет, что команда не найдена, то нужно установить его… а если нет апача, то скорее всего и остальных важных пакетов для поднятия сервера. Установим их.
sudo apt-get install apache2 mysql-server php5
Эти 3 пакета потянут за собой кучу других важных пакетов и в итоге получится полноценный сервер.
Если вы будете устанавливать CMS с rewrite модом, то необходимо активировать его в апаче. Иначе будут работать только стандартные ссылки вида http://site-name/p=?1234
Для активации выполняем команду:
sudo a2enmod rewrite
Затем слегка отредактируем файл конфигурации:
sudo nano /etc/apache2/sites-available/default
В котором меняем AllowOverride None на AllowOverride All. Закрываем и сохраняем изменения (Ctrl+X).
Перезапускаем апач:
sudo invoke-rc.d apache2 restart
Кстати, для остановки за место restart следует писать stop, а для запуска start.
Основы заложены. Теперь неплохо бы настроить общую папку между основной системой и виртуальной. Для virtualbox это делается следующим образом.
В начале обновляем систему (виртуальную)… на всякий случай:
sudo apt-get update
sudo apt-get upgrade
Затем устанавливаем 2 пакета:
sudo apt-get install build-essential dkms
Загружаем «диск» от virtualbox, нажав Устройства > Установить дополнения гостевой ОС.
Затем монтируем дополнения в папку cdrom (можно и любую другую)
sudo mount /dev/cdrom /media/cdrom
И устанавливаем:
cd /media/cdrom && sudo sh ./VBoxLinuxAdditions.run
В устройства > общие папки. Указываем любую общую папку и ставим галочку «автоподключение». Перезагружаем виртуальноу ОС.
Если будем хостить сайт, то лучше указать папку в которой уже находятся файлы сайта. Значит заранее очищаем папку /var/www
sudo rm -f /var/www/index.html
и монтируем сайт в нужную папку.
sudo mount -t vboxsf имя_общей_папки_в_основной_системе /var/www
Последнюю команду можно добавить в
sudo nano /etc/rc.local
перед exit 0, для её автозагрузки.
Теперь осталось подключить sql базы. Надеюсь вы не забыли пароль, который вводили при установке mysql-server.
В первую очередь заходим в саму sql.
sudo mysql --user=root --password=ваш_пароль
Создаём новую базу… конечно можно поставить phpmyadmin, но быстрее освоить ввод команд из консоли, чем настроить для него удаленный доступ.
create database имя_базы
DEFAULT CHARACTER SET кодировка;
То есть, ввели первую строку, нажали энтер. Затем вторую строку, поставили «;» и опять энтер.
Должно выглядеть примерно так:
Что бы выйти вводим «exit».
Если сайт создаёте с 0-ля, то всё готово. Но если нужно перенести базу данных со старого сайта, то вводим команду:
sudo mysql --user=root --password=ваш_пароль имя_базы_данных < бэкап.sql
Ну вот и всё. Если всё делать по инструкции, то получится поднять полноценный сервер с 0-ля менее чем за час.
А вот и результат:
Разумеется, что таким образом вы не получите комфортный хостинг или выделенный сервер. Для аренды сервера лучше оборотиться к профессионалам. В результате вам не придётся извращаться с виртуальной машиной, хотя это может быть и весело для некоторых.
Хе! Прикольно, щас будем апробировать!))))))
[…] которые могут понадобится при работе с базами данных (здесь). Но статья весьма большая и не очень удобна для […]