Vagrant: установка Linux, настройка php + nginx

РазноеКомментариев нет

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) записи в логе ошибок


Комментарии закрыты!