
Symfony та Postgres з Homestead
28.03.2019 07:38 | Symfony
Коротко розглянемо, як встановити Symfony 4 під Homestead і як підключити PostgreSQL до даного фреймворку (як інсталювати Homestead описано тут).
Інсталяція Symfony
Відкриємо Homestead.yaml
і додамо мапінг для нового проекту (припустимо, він буде називатися sym4):
sites:
...
- map: sym4.xx
to: /home/vagrant/projects/sym4/public
type: symfony4
Зверніть увагу - додаємо тип проекту і вказуємо значення symfony4
. У цьому ж файлі в розділі databases
додамо однойменну базу даних:
databases:
...
- sym4
Відредагуємо файл хостів, для чого виконуємо команду:
sudo nano /etc/hosts
І додаємо рядок:
192.168.10.10 sym4.xx
Поясню: ми використовуємо той ip, який вказаний у файлі Homestead.yaml
. Далі запустимо Homestead і увійдемо в віртуальну машину за допомогою відповідних команд:
vagrant up
...
vagrant ssh
Перейдемо в директорію projects і створимо проект на Symfony:
composer create-project symfony/website-skeleton sym4
Після чого вийдемо з віртуальної машини (Ctrl + D
) і виконаємо:
vagrant provision
Вводимо в адресний рядок браузера http://sym4.xx
і ми повинні побачити вітальну сторінку Symfony. Якщо не працює - перезапустіть vagrant.
Підключення PostgreSQL
Відкриваємо файл .env
, який знаходиться в корені проекту і знаходимо рядок з налаштуваннями бази:
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
Замінимо налаштування на наступні:
DATABASE_URL=pgsql://homestead:secret@127.0.0.1:5432/sym4
Також зверніть увагу на попередній закоментований рядок:
# Configure your db driver and server_version in config/packages/doctrine.yaml
Що ж, відкриваємо вказаний файл і частково міняємо конфігурацію:
dbal:
# configure these for your database server
driver: 'pdo_pgsql'
server_version: '10.5'
charset: utf8
default_table_options:
charset: utf8
collate: utf8_unicode_ci
Пояснення: в моєму випадку використовується postgres версії 10.5, перевірити версію можна всередині віртуальної машини командою:
psql -V
Після чого виконуємо:
vagrant provision
Ось, власне, і все. Успіхів!