DataLife Engine > Настройка сервера Linux, Панель управления WHM, Панель управления CPanel > Установка PDO_DBLIB + MSSQL на CPanel/WHM
Установка PDO_DBLIB + MSSQL на CPanel/WHM27-08-2012, 08:18. Разместил: admin |
Что такое PDO
PHP Data Objects (PDO) это расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных. В настоящее время для PDO существуют драйверы практически ко всем общеизвестным СУБД и интерфейсам. Microsoft SQL Server and Sybase Functions (PDO_DBLIB) PDO_DBLIB драйвер для PHP позволяющее работать базами данных от Microsoft SQL Server (MSSQL) Установка PDO_DBLIB производилась на следующей конфигурации: Панель управления: CPanel/WHM Система CentOS 6.3 Версия PHP: 5.3.16 Было перепробовано много различных вариантов, потрачено много времени и наконец-то нашлось решение. Инструкция по установки PDO_DBLIB следующая: 1. Компилируем апач с PDO через EasyApache (Apache Update), т.е. ставим галочки на PDO и PDO MySQL (если требуется, но не помешает) 2. С начала надо установить FreeTDS (ftp://mirrors.ibiblio.org/freetds/stable/) # Скачать последнюю версию дистрибутива wget ftp://mirrors.ibiblio.org/freetds/stable/freetds-0.91.tar.gz # Распаковать ее tar -zxvf freetds-0.91.tar.gz # Перейти в папку дистрибутива cd freetds-0.91 # Теперь нужно сконфигурировать # Если SQL 2000 в параметре --with-tdsver= ставим 8.0, т.е. --with-tdsver=8.0 # Если SQL 7.0 в параметре --with-tdsver= ставит 7.0, т.е. --with-tdsver=7.0 ./configure --prefix=/usr/local/freetds --with-tdsver=7.0 --enable-msdblib --with-gnu-ld # Скомпилировать и установить make && make install # Так как у нас 64-х битная система, нужно создать symlink ln -s /usr/local/freetds/lib/libsybdb.so.5 /usr/lib64/libsybdb.so.5 # Без этого работать не будет, создаем пустые файлы touch /usr/local/freetds/include/tds.h touch /usr/local/freetds/lib/libtds.a Конфиг FreeTDS находится тут : /usr/local/freetds/etc/freetds.conf 3. После этого приступаем к установки самой PDO_DBLIB. Последнюю версию смотрим тут http://pecl.php.net/package/PDO_DBLIB, ту и качаем. # Скачать последнюю версию дистрибутива wget http://pecl.php.net/get/PDO_DBLIB-1.0.tgz # Распаковать ее tar -zxvf PDO_DBLIB-1.0.tgz # Перейти в папку дистрибутива cd PDO_DBLIB-1.0 # Подготовить ее phpize # Сконфигурировать. Без этого ключа будет ругаться ./configure --with-pdo-dblib=/usr/local/freetds # Скомпилировать и установить make && make install 4. Надо зайти в файл конфигурации php.ini и добавить строчку extension = pdo_dblib.so Добавляем следующую строчку (ближе к концу, где все extension): vi /usr/local/lib/php.ini extension = pdo_dblib.so # Перезапустить апач service httpd restart На этом все, процесс установки pdo_dblib закончен. 5. Проверяем что получилось php -i | grep PDO или через вывод phpinfo(); в php файле обратившись к нему через браузер. 6. Если еще нужна поддержка MSSQL то делаем следующее: Открываем файл /var/cpanel/easy/apache/rawopts/all_php5 если его нет то создаем vi /var/cpanel/easy/apache/rawopts/all_php5 # В него добавляем следующую строчку, в начале строки, если уже есть какой то параметр то добавляем его на следующей строке --with-mssql=/usr/local/freetds Можно компелировать апач через EasyApache (Apache Update) но если система 64 битная то будет следующая ошибка: configure: error: Could not find /usr/local/freetds/lib64/libsybdb.a|so # Делаем следующее, переходим в директорию freetds cd /usr/local/freetds # Делаем символическую ссылку ln -s lib lib64 # Так же в файл /etc/ld.so.conf добавить (все что там было удалили и добавили следующие строки, пока проблем не было замечено и все работало) /usr/local/freetds/lib /usr/local/freetds/bin /usr/local/freetds/lib64 # Выполнить ldconfig -v Теперь можно запускать EasyApache (Apache Update) и компелировать с вашими параметрами. библиотека Mssql установлена! Конфигурировать настройки mssql нужно в php.ini (/usr/local/lib/php.ini) php -i | grep mssql Но один момент, все делали как написали, но инструкция не на 100% верна, возможно какой то момент упустили, т.к. делали многое методом проб и ошибок. P.S. Не забудьте открыть необходимы порты в вашем Firewalls для удаленного соединения с MS SQL сервером., стандартный порт 1443 Вернуться назад |