Postgresql и php: PHP: Базовое использование — Manual

PostgreSQL | Руководство по PHP

Вернуться к: PostgreSQL

Примечания

Замечание:

Не все функции могут поддерживаться в собранном модуле. Это зависит
от версии вашей libpq (клиентская библиотека PostgreSQL) и как libpq
была собрана. Если расширение PostgreSQL для PHP отсутствует, то это
значит, что версия вашей libpq не поддерживается.

Замечание:

Большинство функций PostgreSQL принимают connection
в качестве первого необязательного параметра. Если параметр отсутствует, то
используется последнее открытое соединение. Если же такого не существует, то
функция возвращает FALSE.

Замечание:

PostgreSQL автоматически переводит все идентификаторы (такие, как имена
таблиц/столбцов) в нижний регистр во время создания объекта и выполнения
запроса. Для того, чтобы заставить использовать идентификаторы в обоих
или только в верхнем регистрах, вы должны экранировать идентификатор с помощью
двойные кавычки («»).

Замечание:

В PostgreSQL нет специальных команд для получения информации о схеме БД
(к примеру, всех таблиц выбранной базы данных). Но вместо этого в версиях
PostgreSQL 7.4 и выше существует стандартная схема, которая называется
information_schema. Она содержит системные представления
(view) со всей необходимой информацией в легкодоступной форме. Для
дополнительной информации см. » документацию PostgreSQL

Содержание

  • pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
  • pg_cancel_query — Остановка асинхронного запроса.
  • pg_client_encoding — Получение кодировки клиента.
  • pg_close — Закрывает соединение с базой данных PostgreSQL
  • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection
    attempt.
  • pg_connect — Открывает соединение с базой данных PostgreSQL
  • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
  • pg_connection_reset — Сброс подключение (переподключение)
  • pg_connection_status — Определяет состояние подключения
  • pg_consume_input — Reads input on the connection
  • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах
  • pg_copy_from — Вставляет записи из массива в таблицу
  • pg_copy_to — Копирует данные из таблицы в массив
  • pg_dbname — Определяет имя базы данных
  • pg_delete — Удаляет записи
  • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
  • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_identifier — Escape a identifier for insertion into a text field
  • pg_escape_literal — Escape a literal for insertion into a text field
  • pg_escape_string — Экранирование спецсимволов в строке запроса
  • pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив
  • pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив
  • pg_fetch_array — Возвращает строку результата в виде массива
  • pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result — Возвращает запись из результата запроса
  • pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив
  • pg_field_is_null — Проверка поля на значение SQL NULL
  • pg_field_name — Возвращает наименование поля
  • pg_field_num — Возвращает порядковый номер именованного поля
  • pg_field_prtlen — Возвращает количество печатаемых символов
  • pg_field_size — Возвращает размер поля
  • pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле
  • pg_field_type_oid — Возвращает идентификатор типа заданного поля
  • pg_field_type — Возвращает имя типа заданного поля
  • pg_flush — Flush outbound query data on the connection
  • pg_free_result — Очистка результата запроса и освобождение памяти
  • pg_get_notify — Получение SQL NOTIFY сообщения
  • pg_get_pid — Получает ID процесса сервера БД
  • pg_get_result — Получение результата асинхронного запроса
  • pg_host — Возвращает имя хоста, соответствующего подключению
  • pg_insert — Заносит данные из массива в таблицу базы данных
  • pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL
  • pg_last_oid — Возвращает OID последней добавленной в базу строки
  • pg_lo_close — Закрывает большой объект
  • pg_lo_create — Создает большой объект
  • pg_lo_export — Вывод большого объекта в файл
  • pg_lo_import — Импорт большого объекта из файла
  • pg_lo_open — Открывает большой объект базы данных
  • pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в броузер
  • pg_lo_read — Читает данные большого объекта
  • pg_lo_seek — Перемещает внутренний указатель большого объекта
  • pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта
  • pg_lo_truncate — Truncates a large object
  • pg_lo_unlink — Удаление большого объекта
  • pg_lo_write — Записывает данные в большой объект
  • pg_meta_data — Получение метаданных таблицы
  • pg_num_fields — Возвращает количество полей в выборке
  • pg_num_rows — Возвращает количество строк в выборке
  • pg_options — Получение параметров соединения с сервером баз данных
  • pg_parameter_status — Просмотр текущих значений параметров сервера
  • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
  • pg_ping — Проверка соединения с базой данных
  • pg_port — Возвращает номер порта, соответствующий заданному соединению
  • pg_prepare — Посылает запрос на создание параметризованного SQL выражения
    и ждет его завершения
  • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
  • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_query — Выполняет запрос
  • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
  • pg_result_error — Возвращает сообщение об ошибке, связанной с запросом результата
  • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
  • pg_result_status — Возвращает состояние результата запроса
  • pg_select — Выбирает записи из базы данных
  • pg_send_execute — Запускает предварительно подготовленный SQL запрос и
    передает ему параметры; не ожидает возвращаемого результата
  • pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения;
    не ожидает его завершения
  • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
  • pg_send_query — Отправляет асинхронный запрос
  • pg_set_client_encoding — Устанавливает клиентскую кодировку
  • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями
    pg_last_error и pg_result_error
  • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
  • pg_trace — Включает трассировку подключения PostgreSQL
  • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
  • pg_tty — Возвращает имя терминала TTY, связанное с соединением
  • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
  • pg_untrace — Отключает трассировку соединения с PostgreSQL
  • pg_update — Обновление данных в таблице
  • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного
    взаимодействия и сервера (если доступно)

Вернуться к: PostgreSQL

Установка NextCloud+Nginx+PHP+PostgreSQL на Linux | Obu4alka.

ru

webmaster С.
07.04.2021
7 комментариев

Сегодня в статье рассмотрим пример по установке и настройке домашнего облака NextCloud в среде Linux, также установим базу данных PostgreSQL и Web-сервер Nginx с PHP-FPM. Установка будет производиться на чистую Ubuntu Server 20.04 LTS.

Системные требования для NextCloud:

  • База данных: MySQL 5.7+, или MariaDB 10.2, или PostgreSQL 9.5+
  • Веб-сервер: Apache с mod_php или php-fpm или nginx с php-fpm
  • Php: 7.3+
  • ОЗУ: 512Мб+ или 2ГБ+, если использовать пакета Collabora или OnlyOffice

Установка

Разобьем установку на части. Установим базу данных PostgreSQL, интерпретатор PHP, далее web-сервер Nginx, ну и последним пунктом наше облако NextCloud:

Установка PostgreSQL

Для установки базы данных в терминале набираем:

sudo apt install postgresql

Установка PHP

Для установки PHP для начала добавим более новый репозиторий:

sudo add-apt-repository ppa:ondrej/php

После этого устанавливаем PHP и необходимые зависимости для NextCloud.

Предупреждение: в данный момент NextCloud поддерживает PHP версии не выше 8.0

sudo apt install php8.0 php8.0-bcmath php8.0-bz2 php8.0-common php8.0-curl php8.0-fpm php8.0-gd php8.0-gmp php8.0-intl php8.0-mbstring php8.0-opcache php8.0-pgsql php8.0-imagick php8.0-xml php8.0-xmlrpc php8.0-zip php8.0-memcached memcached php-memcached

Установка Web-сервера Nginx

Для установки nginx для начала добавим, как и с PHP, более новый репозиторий:

sudo add-apt-repository ppa:ondrej/nginx

Теперь можно установить наш web-сервер. Устанавливать будем сборку в которую включен модуль для проигрывания потокового видео с нашего сервера (поддержка модуля mp4). Открываем терминал и набираем:

sudo apt install nginx-extras

Установка NextCloud

После всех пунктов выше приступим к установки нашего домашнего облака NextCloud. Для этого переходим в директорию /var/www:

cd /var/www/

Скачиваем последнюю версию NextCloud (на момент написания статьи версия NextCloud была 21. /(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Добавление заголовка управления кэшем для файлов js и css
# Убедитесь, что он находится НИЖЕ блока PHP

location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control «public, max-age=7200»;
# Добавляем заголовки связанные с безопасностью.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection «1; mode=block»;
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
# Optional: Don’t log access to assets
access_log off;
}
# Настройка обработки для файлов данного типа
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
expires 6M; # Управление кэшем
access_log off; # Отключение логирования
}
# Настройки для обработки потокового видео
location ~ . (.+.php)(/.)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
expires max;
directio 10m;
limit_rate 1024m;
limit_rate_after 10m;
}
}

Адрес https://mynextcloud.ru измените на свой.

Далее создании ссылку на наш файл:

ln -s /etc/nginx/sites-available/nextcloud.conf /etc/nginx/sites-enabled/

удаляем дефолтный файл конфигурации:

rm /etc/nginx/sites-enabled/default

Проверяем все ли мы правильно сделали:

nginx -t

Если ошибку нет, то перезапускаем nginx

service nginx restart

Настройка PHP

Настроим PHP для работы с NextCloud. В терминале набираем:

sudo nano /etc/php/8.0/fpm/php.ini

Находим и редактируем следующие строки:

max_execution_time = 300
max_input_time = 600
memory_limit = 512M
post_max_size = 20M
upload_max_filesize = 40M
# Настройка кэширования
opcache. enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1

Настройка PostgreSQL

Сперва настроим наш PostgreSQL для прослушивания всех внутренних адресов сервера. Для этого открываем следующий файл:

sudo nano /etc/postgresql/14/main/postgresql.conf

Находим и редактируем данную строчку к такому виду:

listen_addresses = '*'

Теперь можно создать нашу БД для NextCloud, а также создадим пользователя БД и пароль для него. Подключаемся к postgresql:

sudo -u postgres psql

Создаем базу данных и пользователя для nextcloud

CREATE DATABASE nextcloud; # создаем БД
CREATE USER usernxt WITH PASSWORD 'mypasswords'; # создаем пользователя и вводим пароль для него
ALTER DATABASE nextcloud OWNER TO usernxt;
GRANT ALL PRIVILEGES ON DATABASE nextcloud to usernxt;
exit

Далее переходим по адресу нашего сервера (локальному или внешнему например: http://mynextcloud. ru) и видим первоначальную установку NextCloud

Из скриншота видим, что на самом верху нам предлагается придумать учетную запись и пароль администратора nextcloud.

Далее идет поле для выбора каталога с данными. Данное поле отвечает за размещение всех данных пользователей в директории на сервере. Я оставляю без изменений.

Последняя группа полей ответственна за подключение к базе данных. Чуть выше мы создавали и настраивали БД PostgreSQL, вот эти данные и вводим сюда. И нажимаем кнопку продолжить.

Если все сделали правильно, то после обновления окна нам будет предложено войти в свою учетную запись.

Замечание: В панели администратора в пункте общие сведения Вы можете наблюдать различные ошибки и предупреждения от системы. Как их устранить я писал тут.

На этом наша настройка домашнего облака NextCloud завершается. Всем удачи!!!

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


5
4
голоса

Рейтинг статьи

PHP: Установка/Настройка — Руководство

Изменение языка:
английскийбразильский португальскийкитайский (упрощенный)французскийнемецкийяпонскийрусскийиспанскийтурецкийДругое

Отправить запрос на вытягивание
Сообщить об ошибке

  • Требования
  • Установка
  • Конфигурация среды выполнения
  • Типы ресурсов

добавить примечание

Пользовательские заметки 5 заметок

вверх

вниз

34

MIhail-Klr в gmx dot net

8 лет назад


Это случилось со мной также с PHP 5. 4.1
Копирование вызывающей DLL везде не сработало, и у меня не установлен Postgres на сервере, но я также планировал использовать PHP против разных версий Postgres, поэтому единственное решение, которое я нашел что сработало, так это поместить в httpd.conf следующую строку:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

, но со ссылкой на libpq.dll, который поставляется в комплекте с PHP, например:

LoadFile "C:/php/libpq.dll"

После этого у меня все заработало.

(c) https://stackoverflow.com/users/1373641/dayron-armas-peña
из: https://stackoverflow.com/questions/551734/php-not-loading-php-pgsql-dll-on -окна/10439560#10439560

вверх

вниз

11

Нестор Дот Мартинес в ETB Дот Нетто Дот Ко

13 лет назад


Если вы получили такое сообщение:
«Запуск Php: невозможно загрузить динамическую библиотеку «C:\php\ext\php_pgsql. dll»

1. В файле конфигурации измените порядок библиотек «php_exif.dll» и « php_mbstring.dll", таким образом, чтобы сначала вызывалась библиотека "php_mbstring.dll"

2. Скопируйте все библиотеки в папку "bin" вашей установки PostgreSQL и вставьте их в корневую папку Windows

3. Раскомментируйте строку «extension=php_pgsql.dll» 9.0040 4. Теперь вы должны увидеть на странице сгенерированный раздел "phpinfo()" PostgreSQL

вверх

вниз

2

Эмиль в примере точка com

14 лет назад


Не удалось загрузить динамическую библиотеку «C:\\php\\ext\\php_pgsql.dll» — указанный модуль не найден.

другое решение:

скопировать libpq.dll/все файлы из zip (если у вас есть php из установщика)

добавить в httpd.conf:

#BEGIN PHP INSTALLER EDIT – УДАЛИТЬ ТОЛЬКО ПРИ УДАЛЕНИИ
PHPIniDir "c:/PHP/"
Loadfile "C:\php\php5ts.dll"
Loadfile "C:\php\libpq. dll"
LoadModule php5_module "c :/PHP/php5apache2_2.dll"
#END ИЗМЕНЕНИЯ УСТАНОВЩИКА PHP - УДАЛИТЬ ТОЛЬКО ПРИ УДАЛЕНИИ по умолчанию: extension_dir ="c:\PHP\ext" )

если это не работает, добавьте c:\php (путь php) к вашему пути Windows (и перезапустите)

проверено на php5.2.8 + apache2.2.3

вверх

вниз

-3

kouber в php dot net

14 лет назад


Если вы получаете эту ошибку в Windows:

Невозможно загрузить динамическую библиотеку «C:/php/ext\\php_pgsql.dll» — указанный модуль не найден.

Попробуйте загрузить архив двоичных файлов PostgreSQL без установки с http://www.postgresql.org/ftp/binary/v8.3.5/win32/ (замените 8.3.5 последней стабильной версией) и скопируйте эти библиотеки DLL на C :/WINDOWS/system32/ :

comerr32.dll
gssapi32.dll
k5sprt32.dll
krb5_32.dll
libeay32.dll
libiconv2.dll
libintl3. dll
libpq.dll
ssleay32.dll

вверх

вниз

-13

некоторые доменные имена

13 лет назад


Другое решение Windows XP для «Невозможно загрузить динамическую библиотеку« php_pgsql.dll »- указанный модуль не найден».

Добавьте путь к двоичным файлам postgres в системный путь поиска:

Щелкните правой кнопкой мыши «Мой компьютер», выберите «Свойства», вкладка «Дополнительно», кнопка «Переменные среды», раздел «Системные переменные», выберите «Путь», нажмите «Изменить» и добавьте путь к двоичные файлы postgres в конце, в моем случае это было "C:\Program Files\PostgreSQL\8.4\bin", а затем перезагрузите компьютер (или, по крайней мере, перезапустите процессы apache/php)

Обратите внимание, что системный путь может иметь несколько значений, разделенных точкой с запятой ";".

добавить примечание

PHP: Установка — руководство

Изменение языка:
английскийбразильский португальскийкитайский (упрощенный)французскийнемецкийяпонскийрусскийиспанскийтурецкийДругое

Отправить запрос на вытягивание
Сообщить об ошибке

Чтобы включить поддержку PostgreSQL,
—with-pgsql[=DIR] требуется при компиляции
PHP. DIR — это базовый каталог установки PostgreSQL, по умолчанию
/usr/local/pgsql . Если общий объектный модуль
доступен, модуль PostgreSQL можно загрузить с помощью
директива расширения в php.ini или
дл()
функция.

добавить примечание

Пользовательские заметки 7 заметок

вверх

вниз

11

sean at cockreachlabs точка com

6 лет назад


Начиная с PHP 7, в Ubuntu (т. е. 16+) вы можете запустить:

`sudo apt-get install php-pgsql`

вверх

вниз

7

Серджик

13 лет назад


На сервере Windows, настроенном с помощью Apache, добавление следующей строки в httpd.conf для загрузки libpq.dll может сэкономить вам много времени:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

Обратите внимание, что вам придется изменить папку в соответствии с путем установки и установленной версией PostgreSQL. Также обратите внимание, что не рекомендуется размещать Apache и PostgreSQL на одном сервере для рабочих сред.

Ура,
Серджик

вверх

вниз

-7

Анонимный

6 лет назад


для php 7 у меня сработало «sudo apt install php7.0-pgsql»

вверх

вниз

-12

Анто Биниш Каспар

13 лет назад


Простой способ установки в ubuntu(debain)
Просто запустите "apt-get install php5-pgsql"

вверх

вниз

-23

zonetejasmikel at yahoo dot com

9 лет назад


если вы получаете
/pgsql.c:789: error: 'from' необъявлено (первое использование в этой функции)
и т. д. компиляция в linux это опечатка в определении файла pgsql.c

измените на этот
#if !HAVE_PQESCAPE_CONN
#define PQescapeStringConn(подключение, к, от, длина, ошибка) PQescapeString(к, от, длина)
#endif

вверх

вниз

-31

samuel+php dot net at dionne-riel dot com

12 лет назад


В PHP 5.