2017-02-21 20 views
0

Я пытаюсь найти MSSQL для PHP 7 в 32-разрядной системе (Ubuntu, 32-разрядной). Но когда я пытаюсь следовать инструкциям по установке (https://github.com/Microsoft/msphpsql), кажется, что это только для 64-битных систем?MSSQL и PHP 7 (32-разрядная система)

Насколько я могу видеть, команда curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list возвращает arch=amd64. Можно ли получить его в 32 бит/i386?

Спасибо за помощь!

EDIT: Похоже, я могу использовать sudo apt-get install php7.0-sybase в качестве резервного решения, если я не получу его для работы.

ответ

1

Это решило проблему для меня:

sudo apt-get install php7.0-sybase 

Как мне нужно UTF-8 кодировку я должен был изменить версию с.в. первый:

sudo vim /etc/freetds/freetds.conf 

Расположить

[global] 
    # TDS protocol version 
; tds version = VERSION_NUMBER 

Установите текущий номер версии не менее 7.0 и удалите ; с начала строки. Чтобы установить глобальный UTF-8, добавьте:

client charset = UTF-8 

ниже установленной вами версии.

Restart PHP-FPM:

sudo service restart php7.0-fpm restart 

Как я использую Nginx Я перезагрузил, что так просто чтобы быть уверенным. Теперь попробуйте добавить MSSQL соединение:

$this->connection = new PDO('dblib:host='.$this->hostname.':'. 
          $port.';dbname='.$this->db_name.';charset=UTF-8' 
          ,$username, $password); 

Обратите внимание на charset=UTF-8 часть. Это можно удалить, но если вы не установите кодировку клиента в конфигурационном файле, это другое место, если вы можете ее установить. Если вы измените кодировку в строке подключения, она переопределит глобальное значение.

Поздравления!