Когда я запускаю приведенный ниже код из php-fpm:
$connect = new PDO("dblib:host=mssql.dev.gm.local;dbname=GeoData","username","password");
try{
$s = $connect->query('[RU].GetTownInfo 4368');
var_dump($s->fetch());
}catch (Exception $e){
var_dump($e->getMessage());
}
Я получаю исключение:
PDOExeption SQLSTATE [HY001] Невозможно выделить достаточно памяти
Но когда я запускаю тот же код из командной строки php, у меня нет таких проблем.
В чем может быть проблема?
Я использую nginx proxy_pass для бэкэнда (php-fpm).
Для подключения к MS SQL Server я использую Dblib (freetds).
Все работает на одной машине с OpenVZ, Nginx и Php-fpm — это разные виртуальные машины.
Конфигурация Php-fpm для командной строки и апстрима одинакова.
Система говорит вам проблему правильно?
PDOExeption SQLSTATE [HY001] Невозможно выделить достаточно памяти
Таким образом, вы можете попытаться дать php больше памяти, изменив ограничение в php.ini:
memory_limit = 128M
Других решений пока нет …