установить FreeTDC и unixODBC для подключения SQL-сервера с помощью Laravel 5 — OS X El Capitan

Я пытаюсь подключиться с php с помощью laravel framework к SQL Server, моя версия php 5.5.30, установлены драйверы PDO: mysql, sqlite, pgsql, odbc. используя веб-сервер (MAMP) в OS X El Capitan.

Для подключения использую FreeTDS и unixODBC, обе библиотеки устанавливал по этой статье. https://gist.github.com/Bouke/10454272 и отлично работают с терминала.

Я использую следующий код в файле php.

$db = new PDO('odbc:Driver=FreeTDS; Server=192.168.1.1; Port=4433; Database=focalyx; UID=myUser; PWD=myPassword;');
}
catch(PDOException $exception)
{
    die("Unable to open database.<br />Error message:<br /><br />$exception.");
}
echo '<h1>Successfully connected!</h1>';
$query = 'SELECT * FROM Users';
try{
    $statement = $db->prepare($query);
    $statement->execute();
}catch(PDOException $exception){
    die("Unable to open database.<br />Error message:<br /><br />$exception.");
}
$result = $statement->fetchAll(PDO::FETCH_NUM);
print_r($result);

однако при попытке запуска с локального хоста покажите эту ошибку.

exception 'PDOException' with message 'SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found' in /Applications/MAMP/htdocs/myProject/test.php:5 Stack trace: #0 /Applications/MAMP/htdocs/myProject/test.php(5): PDO->__construct('odbc:Driver=Fre...') #1 {main}.

php установлен в

/Applications/MAMP/bin/php/php5.6.10/conf/php.ini

Я не знаю, возможно ли установить FreeTDS в каталог MAMP или создать своего рода символическую ссылку.


person vroldan    schedule 18.03.2016    source источник
comment
Посмотрите, помогут ли вам эти инструкции: и pyodbc">stackoverflow.com/questions/16925825/   -  person Benny Hill    schedule 19.03.2016
comment
Спасибо за вашу помощь @BennyHill, из терминала я могу подключиться хорошо, но проблема в том, что когда я пытаюсь запустить свой веб-сайт, похоже, что php не знает, где находится драйвер FreeTDS.   -  person vroldan    schedule 19.03.2016
comment
Возможно: $pdo = new PDO("dblib:host=mssql;dbname=$dbname", "$dbuser","$dbpwd"); (взято из моего старого ответа здесь: stackoverflow.com/questions/20163776/   -  person Benny Hill    schedule 19.03.2016
comment
Я еще раз посмотрел на ваш первый комментарий и нашел ошибку в этом файле. /opt/local/etc/odbc.ini. Еще раз спасибо @BennyHill Комментарии в файле odbc.ini мне очень помогли.   -  person vroldan    schedule 20.03.2016