
Использование Symfony и Postgres c 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
Вот, собственно, и всё. Успехов!