Настраиваем LAMP для работы в Windows через VirtualBox

от автора

Здравствуйте.

Статья из разряда – шоб для себя було, но, думаю, будет интересна многим.

Началось с того, что потребовалось мне в PHP работать с xlsx-файлом, что, по сути, переименованный zip. И вот как-то сложилось, что Денвер мне не понравился с самого начала изучения PHP. Не то чтоб он мне совсем не нравился, но хоть я большую часть времени и win_user, но вот получилось так, что люблю понимать, как оно работает и иметь возможность самостоятельной настройки. Поэтому Apache+PHP+MySQL настраивал на Windows самостоятельно. Первое время все ставил из exe и msi файлов, потом как-то перешел на zip-пакеты и даже стал понимать, что я там прописываю в conf и ini файлах. Но zip под Windows работать не захотел, при этом прекрасно работая под Ubuntu. Поковырявшись в «этих ваших интернетах» стало понятно, что zip под Windows это очень муторно. Видимо, просто я еще не созрел для понимания действий, описанных в мануалах, либо использовать готовые классы на php, но, опять же, с ними тоже не все так гладко.

Вывод очевиден — ставим Ubuntu, поднимаем LAMP и вперед, с песнями. Опыт работы в ось отличной от Windows вроде бы есть, но, как всегда, есть какое-нибудь «но». И, в данном случае, это то, что мне очень «ндравиться» — Windows 8.

Две системы поставить вроде бы не сложно, но придется каждый раз перезагружаться. А я не люблю выключать компьютер, максимум — режим сна для ноутбука и гибернация для стационара.

Второй вариант — установить Ubuntu в VirtualBox, и при необходимости просто сворачивать окно с виртуалкой. Почти идеальный вариант. На стационаре с 8-ю ядрами, естественно, все отлично, а вот на ультрабуке с core i3 второго поколения и частотой 1300Мгц уже все не так прекрасно.

Да и Sublime Text под Windows мне нравится значительно больше, сугубо визуально.

Потому появился хитрый план:

1. Устанавливаем Ubuntu-server в VirtualBox
2. Настраиваем в samba папку с сайтом
3. В Windows подключаем папку из Ubuntu как сетевой диск

Покопавшись в гугло-яндексе, нашёл-таки всю необходимую информацию. И, с одной стороны, все работает, все прекрасно, а с другой, вдруг потребуется переустановка или кто-то захочет сделать так же. В общем, решил все свести в одну статью и поделиться с народом.

VirtualBox у вас уже должен быть установлен. Немного о конфигурации виртуалки которую я использую на выше озвученном ультрабуке:

  • процессор – 1 ядро
  • оперативка – выделяем от 512Mb и до… Исходя из возможностей вашей машинки, у меня 12Gb, потому я позволил забрать 2Gb
  • жесткий диск – я сделал динамическим на 80Gb
  • и для сети я выбрал следующее
    image

Для установки я выбрал Ubuntu-server 13.04. Установка стандартная, остановлюсь только на паре моментов:
image
диск сразу настроил как LVM. Если в дальнейшем потребуется увеличить его емкость, то данный вариант весьма удобен.

Чтобы потом не настраивать в ручную, сразу выберем нужные компоненты.
image

Вот мы и зашли в первый раз в систему. На первом экране нас интересует, какой IP получила система.
image
В моем случае это 192.168.31.111.

Теперь можно запускать какой ни будь SSH-клиент и подключиться к свеже установленной системе. Вся дальнейшая работа будет идти по SSH.

Первым делом проверим обновления:

sudo apt-get update sudo apt-get upgrade 

пока не заморачиваемся задаваемыми вопросами, отвечаем на все «да».

Теперь установим webmin. Можно просто скачать с сайта deb-пакет, но это неудобно из-за того, что потребуется вручную устанавливать зависимости, поэтому мы подключим необходимый репозиторий.

Получаем и устанавливаем ключ:

wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc 

Добавляем источник:

sudo nano /etc/apt/sources.list  deb http://download.webmin.com/download/repository sarge contrib (можно прописать первой строчкой) 

Сохраняем <Ctrl+O и Enter> и выходим <Ctrl+X>.

Обновляемся:

sudo apt-get update 

и устанавливаем:

sudo apt-get install webmin 

Установка сама подтянет все зависимости, нам нужно только соглашаться.

Установка прошла успешно и теперь можно открыть наш сервер в windows-браузере. В адресной строке вводим 192.168.31.111:10000. Браузер перекинет нас на защищенное соединение (https).

image

image

image

image

И попадаем на страничку ввода логина/пароля.
image

Вернемся в SSH. Теперь можно установить ftp сервер, например pure-ftpd:

sudo apt-get install pure-ftpd 

Теперь, если вы наберете в браузере ftp://192.168.31.111, у вас должно открыться окно с запросом логина/пароля.
image

Вот и все ftp-сервером можно пользоваться.
image

Собственно, уже можно приступать к программированию на PHP, но закидывать каждый раз файлы через ftp не совсем удобно.

Поэтому предлагаю настроить samba-сервер и подключить папку из ubuntu к windows машине как обычный сетевой диск. Заходим в webmin, открываем Servers -> Samba Windows File Sharing.
image

Выбираем Windows Networking:
image

Заполняем поля:

  • Workgroup(Рабочая группа)
  • Server name – по этому имени компьютер будет виден в windows-сети
  • Security – это уровень безопасности, пока выставим на User level
    image

Сохраняемся.

Далее жмем на ссылку Create a new file share и создаем новый файловый ресурс.
image

Тут нужно заполнить следующие поля:

  • Share name – это будет имя сетевой папки
  • Directory to share – вписываем директорию которую нужно расшарить
  • Create with permissions – выставляем уровень прав, рекомендую пока не заморачиваться и выставить максимальный уровень (777)
  • Browseable – выставляем в yes, этим мы разрешаем показывать расшареный ресурс, иначе путь до папки нужно будет прописывать ручками (например \\samba\sites).
    image

Нажимаем кнопочку Create (создать).

Теперь в списке ресурсов выбираем наш, свеже созданный.
image

Выбираем Security and Access Control.
image

Параметр Writable – устанавливаем в yes, этим мы разрешили записывать файлы в нашу шару.
image
Сохраняем.

Возвращаемся в Servers->Samba Windows File Sharing и жмем Restart Samba Server.
image

Все, можем использовать наш сетевой диск.

Открываем проводник <Win + E>, выбираем сетевое подключение.
image

Выбираем наш сервер.

Выбираем расшареную папку.

Система попросит у нас логин/пароль. Введем их, и не забудем поставить галочку, чтобы система запомнила нас и больше не мучила подобными вопросами.

На этом могли бы и закончить, но в windows принято обращаться к дискам по имени, поэтому вернемся на шаг назад.

Теперь выберем сетевую папку правой кнопкой. Из появившегося списка выбираем «подключить сетевой диск».

По умолчанию система предложит первую свободную букву с конца алфавита, но вы можете выбрать любую понравившуюся, кроме тех, за которыми закреплены локальные диски (правда их в списке не будет). У меня это буква «А».

Таким образом, когда мы снова откроем проводник <Ctrl + E>, то увидим, что диск появился в начальном списке «мой компьютер» и у него есть буква.

Теперь наша папка будет доступна абсолютно для всех программ как обычный жесткий диск.

Замечательно. Все работает, но где же файлы нашего сайта? А вот это мы и исправим в финальной части нашей статьи.

Первым делом установим phpMyAdmin. Сделать это можно двумя способами:

  • первый вариант установить из репозитория
    sudo apt-get install phpmyadmin 
  • и, второй вариант, скачать архив с официального сайта

Мы пойдем вторым путем и установим с оф. сайта. Для этого, пока мы еще находимся в windows, пройдем по ссылке http://www.phpmyadmin.net/home_page/index.php и скачаем самую свежую версию (4.0.4.1). Далее заходим на наш сетевой диск и распаковываем на него скачанный архив. Для удобства рекомендую переименовать папку во что-то покороче, например, phpmyadmin.

Настала пора вернуться в SSH:

sudo nano /etc/apache2/sites-available/phpmyadmin.dev 

У нас открылся чистый лист в текстовом редакторе. Впишем в него следующее:

<VirtualHost *:80> 	ServerName phpmyadmin.dev 	ServerAlias www.phpmyadmin.dev 	DocumentRoot /home/%USER%/phpmyadmin </VirtualHost> 

где %USER% заменить на ваше имя пользователя, а phpmyadmin.dev – это имя нашего нового сайта, на котором, собственно, и будет работать phpmyadmin. Естественно, вы можете использовать любое другое имя для сайта.

Сохраняем файл, выходим и сообщаем apache о вновь созданном сайте:

sudo a2ensite phpmyadmin.dev 

Ubuntu посказывает нам, что для применения конфигурации требуется перезагрузить apache.

sudo service apache2 reload 

Теперь необходимо сообщить системе о новом сайте, для этого внесем изменения в файл hosts:

sudo nano /etc/hosts 

В первой строчке открывшегося файла скорее всего увидите

127.0.0.1	localhost 

Допишем в конец строки, через пробел, название нашего сайта. В итоге первая строка будет выглядеть примерно так:

127.0.0.1	localhost phpmyadmin.dev 

Сохраняем, выходим.

Все. Сайт готов, но пока о нем знает только Ubuntu. Прежде чем перейти к настройке Windows, создадим еще один сайт, например test.dev.

Для этого я предлагаю создать каталог sites:

mkdir sites 

а уже в нем test.dev:

mkdir sites/test.dev 

Повторим действия для phpmyadmin (единственно, заменим phpmyadmin на test.dev):

sudo nano /etc/apache2/sites-available/test.dev 

<VirtualHost *:80> 	ServerName test.dev 	ServerAlias www.test.dev 	DocumentRoot /home/%USER%/sites/test.dev </VirtualHost> 

Сохранить, выйти.

sudo a2ensite test.dev sudo service apache2 reload sudo nano /etc/hosts 

127.0.0.1	localhost phpmyadmin.dev test.dev 

Сохранить, выйти.

Для того, чтобы объяснить windows о существовании сайтов, достаточно их прописать в файл hosts (да, да в Windows тоже есть такой файл). Синтаксис Windows-файла абсолютно такой же, как и в Ubuntu. Найти его можно в папке Windows/System32/Drivers/etc. Открываем его в любом текстовом редакторе (скорее всего редактор необходимо будет открыть с правами администратора). И дописываем строчку:

192.168.31.111 phpmyadmin.dev test.dev 

Вписать ее можно в любую часть файла (начало/конец – это уже по вашему усмотрению). Ну, и не забываем, что IP нужно вписывать такой, который присвоен Ubuntu.
Сохраняем, закрываем.
Осталось обновить DNS. Открываем командную строку от имени администратора и выполняем:

ipconfig /flushdns 

Все. Теперь набираем в браузере только что добавленное имя сайта и наслаждаемся результатом.

Осталось только включить поддержку ЧПУ, для этого вернемся в панель webmin:

Откроем меню Servers -> Apache Webserver и переключимся на вкладку Global configuration:

Выбираем пункт Configure Apache Modules

И ставим галочку напротив rewrite

Жмем кнопку (внизу) Enable Selected Modules

Справа сверху жмем по очереди:

  • Apply Changes
  • Stop Apache

И снова запускаем – Start Apache.

И напоследок, небольшие хитрости для удобства работы:

Поскольку в наборе Denwer по умолчанию выставлено отображение ошибок PHP в браузер, а на этапе отладки это вполне себе нужная информация, предлагаю не заморачиваться с настройками php.ini, а просто добавить в файл .htaccess в корне сайта следующие строчки

php_flag display_errors on php_flag display_startup_errors on 

Таким же образом можно включать и другие параметры PHP.

Такой сервер отлично себя чувствует даже на слабеньком ультрабучном core i3, при этом абсолютно его не нагружая. На моем ультрабуке загрузка процессора поднимается до 5% при работе в phpmyadmin.

Информация собиралась по запросам в гугл и яндекс, но большая их часть вела на хабр.

ссылка на оригинал статьи http://habrahabr.ru/post/190010/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *