Просмотров: 19548
Дата последнего изменения: 12.02.2025
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Установка на CentOS 7 (BitrixVM)
Инструкция на сайте PostgreSQL
- Обновите BitrixVM
yum -y update
- В стандартном репозитории - старая версия PostgreSQL , поэтому запретите установку из нее. Для этого в файле
/etc/yum.repos.d/CentOS-Base.repo
в секции [base] добавьте:
exclude=postgresql*
- Добавьте в систему репозиторий PostgreSQL и уточните доступные версии:
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum list -y postgre*-server*
Отобразиться примерно такое:
Available Packages
postgresql-server.x86_64 9.2.24-8.el7_9 updates
postgresql12-server.x86_64 12.15-1PGDG.rhel7 pgdg12
postgresql13-server.x86_64 13.11-1PGDG.rhel7 pgdg13
postgresql14-server.x86_64 14.8-1PGDG.rhel7 pgdg14
postgresql15-server.x86_64 15.3-1PGDG.rhel7 pgdg15
- Установите 12 версию БД и дополнения для него:
yum -y install postgresql12-server
yum -y install postgresql12-contrib
- Инициализируйте БД:
[root@pg ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK
Будет создана папка /var/lib/pgsql/12/data/
и файлы конфигурации в ней.
Не ищите эти файлы в /etc/!
- Активируйте запуск сервиса при загрузке системы и следом запустите службу:
systemctl enable postgresql-12
service postgresql-12 start
- Установите расширение pgsql для PHP:
yum -y install php-pgsql
- Уберите лишнее расширение pdo_pgsql и перезапустите веб-сервер:
mv /etc/php.d/30-pdo_pgsql.ini /etc/php.d/30-pdo_pgsql.ini.disabled
service restart httpd
Установка на MacOS
Инструкция на сайте PostgreSQL
- Установите 11 или выше версию БД:
brew install postgresql@11
- Запустите сервис при загрузке системы:
brew services start postgresql@11
Конфигурация PostgreSQL
- Добавьте пользователя:
root@max:/# sudo -u postgres createuser www-data
Для версии начиная с 15:
root@max:/# sudo -u postgres psql
postgres=> grant create on schema public to "www-data";
- Добавьте базу данных:
root@max:/# sudo -u postgres createdb www-data --owner www-data --lc-ctype C.UTF-8 --template=template0
- Добавьте расширение pgcrypto:
root@max:/# sudo -u postgres psql -d www-data
postgres=# CREATE EXTENSION IF NOT EXISTS pgcrypto;
- Задайте пароль:
root@max:/# sudo -u www-data psql --user www-data
www-data=> ALTER USER "www-data" WITH PASSWORD 'passwd';
Если вы при соединении из PHP получили ошибку типа Ident authentication error..., то нужно в конфигурационных файлах разрешить аутентификацию по паролю. Для этого в файле /var/lib/pgsql/11/data/pg_hba.conf
измените строки, заменяя последнюю колонку на password.
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password
- Перезапустите сервер.