Vagrant — программное обеспечение помогающее создать единое окружение для разработки.
Если говорить просто, то Vagrant ничто иное как CLI (интерфейс командной строки) для VirtualBox.
Перед установкой Linux нужно скачать и установить VirtualBox и Vagrant на свой компьютер.
Открываем консоль и выполняем команды:
Linux
// выбираем ос для установки // создаться ***Vagrant файл с настройками $ vagrant init ubuntu/xenial64 // устанавливаем oс // команда на самом деле запускает виртуальную машину, // но так как ос у нас еще не установлена - выполнится установка $ vagrant up // подключение к виртуальной машине $ vagrant ssh // переводит пользователя в сессию под root-ом, // но при этом текущий каталог не меняется /root $ sudo -s // обновление индекса программных пакетов $ apt-get update // обновляем программные пакеты $ apt-get upgrade // устанавливаем mysql $ apt-get install mysql-server mysql-client // пробуем подключиться к базе $ mysql -u root -p // просмотр баз данных $ show databases; // выходим из базы $ exit
***Vagrantfile — файл, описывающий характеристики и поведение будущей виртуальной операционной системы.
Nginx
// установим nginx $ apt-get install nginx // проверим работу nginx $ service nginx start (должно ничего не произойти)
Настраиваем порты
// для начала нужно выйти из vagranta $ exit $ exit // откроем файл ***Vagrantfile и разкомментируем следующую строчку config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" // - это нужно для пробросать портов, что бы мы могли обращаться из браузера к нашему серверу // - возможно в строке следует поменять порты, host 8080 у вас может быть занят // возвращаемся в консоль // перезагрузим vagrant для применения обновленных настроек $ vagrant reload // запускаем виртуальную машину $ vagrant up $ vagrant ssh // проверим работу nginx // стоить отметить что после перезапуска, nginx был добавлен в автозагрузку $ service nginx status // откроем браузер и проверим http://localhost:8070 => Welcome to nginx!
PHP
// переходим к пользователю root $ subo -s // установим последнюю версию php // тут мы сперва добавим пакет, что бы установить последнюю версии, // так как в официальном репозитории ее пока нет // если пакет есть в репозитории - таких трюков не нужно $ apt-add-repository ppa:ondrej/php // обновим индексы программных пакетов $ apt-get update // установим последнюю версию php $ apt-get install php7.2-fpm // проверим что php установлен, выводим его версию $ php -v
Настройка Nginx + PHP
// откроем настройки // Nginx использует один виртуальный хост под названием default. $ vi /etc/nginx/sites-available/default // раскомментируем следующие сроки(ветка с php) // !! Внимательней с версии php, проверьте правильность location ~ \.php$ { include snippets/fastcgi-php.conf; ... fastcgi_pass unix:/run/php/php7.2-fpm.sock; } // а так же укажем что по умолчанию на сервере открываться должен index.php // для этого в строку index index.html index.htm index.nginx-debian.html; // добавим index.php index index.php index.html index.htm index.nginx-debian.html; // откроем файл настроек php $ vi vi /etc/php/7.2/fpm/php.ini // расскомментировать строку и установить значение 0. // по умолчанию повышенная безопасность и скрипты не знаю о свое местоположении cgi.fix_pathinfo=0 // перезапустим nginx $ service nginx reload // перезапустим php $ service php7.2-fpm reload
Создание первой страницы
// переходим в каталог /var/www/html $ cd /var/www/html // удалим html файл в каталоге /var/www/html // - он создан по умолчанию и нам не нужен $ rm index.nginx-debian.html // создадим файл php $ vi index.php // пропишем в файле <?php phpinfo(); // открыть браузер http://localhost:8070 => вывод информации о php
Дополнительные модули для PHP
// перейдем в корневую директорию $ cd / // посмотрим какие модули php доступны для загрузки $ apt-cache search php7.2 // установи для примера 3 библиотеки mysql, curl, gd $ apt-get install php7.2-mysql php7.2-curl php7.2-gd // перезагрузим php $ service php7.2-fpm reload
Список основных команд:
- vagrant halt — останавливает виртуальную машину
- vagrant destroy — удаляет виртуальную машину
- vagrant suspend — «замораживает» виртуальную машину
- vagrant global-status — выводит список всех ранее созданных виртуальных машин в хост-системе
- vagrant ssh — подключается к виртуальной машине по SSH
Список готовых коробок
https://app.vagrantup.com/boxes/search
Поиск ошибок Nginx
$ cd /var/log/nginx — переходим к логам nginx
$ tail error.log — откроем последние(10) записи в логе ошибок
Комментарии закрыты!