Вывод файлов из БД PostgreSQL в файловую систему ОС Debian 9.4 при помощи PHP

173
28 января 2019, 18:40
Вывод файлов из БД PostgreSQL в файловую систему

Уважаемые господа, добрый день!

Возникла проблема с выводом файлов из БД PostgreSQL в файловую систему на боевом сервере. Есть код, который отрабатывает локально на моем компе, на котором установлен MAMP. Смысл этого кода - выбрать данные из БД поместить данные в директорию файловой системы, затем отправить эти файлы на удаленный сервер (отправляю библиотекой php cURL). На боевом серваке с другой ОС данные манипуляции не работают, работа кода останавливается на выборке файлов из БД и размещении их в файловой системе.

ОС локальной системы: MacOS 10.14.1 Версия MAMP: 4.5 Веб-сервер: Apache/2.2.34 (Unix) Версия PHP: 7.2.1

ОС боевой системы: Debian GNU/Linux 9.4 (stretch) Веб-сервер: Apache/2.4.25 (Debian) Версия PHP: 7.0.30-0+deb9u1

При выводе файлов на боевом серваке из БД возникают следующие ошибки:

  1. Некорректно отправляется содержимое файла - файл в файловую систему приходит битый, размер файла либо нулевой, либо 1КБ.
  2. Название файла передается неполностью, на каком-то символе режется. (ПР: «prezentatsiya_1128329_435», «prezentatsiya_1128329_л). От типа символа - число или буква не зависит. Название файлов приходит из БД уже переведенное в транслит. (Делал перевод из русской литерации в латиницу средствами PHP, но это не помогало, поэтому сделали транслитерацию в БД)

Я предположил, что какая-то проблема с локалью на Debian 9 и осуществил следующие шаги:

1. export LANGUAGE=ru_RU.UTF-8
2. export LANG=ru_RU.UTF-8
3. export LC_ALL=ru_RU.UTF-8
4. locale-gen ru_RU.UTF-8
5. apt-get install --reinstall locales
6. dpkg-reconfigure locales

Они работают на время терминальной сессии, на MacOS стоял английский язык ОС , на время терминальной сессии язык переключался на русский, но при переподключении к серверу через терминал настройки локали сбрасывались; команда dpkg-reconfigure locales не влияла на отображение интерфейса командной строки. Смена языка на MacOS на русский помогла в отображении русского языка в терминале, но не более того.

После применения данных настроек команда locale показывает следующие результаты:

LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Я предполагаю, что, всё-таки дело в настройках локали, поэтому не прилагаю рабочий код, если будет необходимо, добавлю.

Искал информацию по настройке локали на Debian взял инструкцию в данном источнике, пункт Standard, выполнял следующие шаги:

1. Редактировал файл /etc/default/locale, добавив строку LANG=ru_RU.UTF-8
2. Перезагружал сервер.
3. Не помогло
4. Смотрел файл /etc/locale.gen
5. После применения команды dpkg-reconfigure locales раскомментированы следующие строки "en_US.UTF-8 UTF-8", "ru_RU.UTF-8 UTF-8"
6. Не помогло

Правил файл php.ini - увеличил размер отправляемых файлов:

upload_max_filesize = 30M

Отправка файлов разрешена, значение директивы:

file_uploads = On

Значение настройки post_max_size:

post_max_size = 8M

Подскажите, с чем может быть связана данная проблема? Где собака зарыта? Не хватает опыта, чтобы самостоятельно определить в каком направлении двигаться для решения данной задачи.

READ ALSO
PHP Session и Unity3d

PHP Session и Unity3d

Делаю регистрацию/авторизацию в приложении на Unity3d в связке с сервером на PHP+MySQLВстал вопрос: как мне связать переменную session с unity3d? Пример...

164
Регулярное выражение на номер телефона

Регулярное выражение на номер телефона

На сайте есть регулярка на ввод номера телефона

189
Не работает функция по примеру, помогите

Не работает функция по примеру, помогите

Здраствуйте, суть проблемы в том, что я не могу получить значение функции getActive(), исходящей объекта $brand в коде:

189
Пропала цена на страницах товара Woocommerce

Пропала цена на страницах товара Woocommerce

Пропала цена товара на карточках товараКак на вариациях, так и без

198