Arquivo da tag: sql server

Instalando o mssql e o pdo_dblib no CentOS com WHM para se conectar a um servidor MS SQL Server externo

Comecei a escrever este post em Janeiro de 2013, apenas com anotações rápidas enquanto fazia o procedimento, para mais tarde, reescrever em definitivo. Dois anos se passaram e o post ficou no limbo. Como estou retomando o projeto do blog, resolvi publica-lo, como um rascunho mesmo, afim de ajudar quem estiver procurando estes passos.

Obs: Caso alguém precise das dicas abaixo, e quiser o auxílio de quem já passou por isso, basta entrar em contato, que faremos juntos. Para mim será uma ótima oportunidade de atualizar e passar o texto abaixo a limpo 😉

Segue rascunho:

Esta dica é para quem precisa fazer o PHP se conectar a um banco de dados MS SQL Server remoto a partir de um servidor CentOS com WHM/cPanel. Para executar os passos abaixo, você precisa ter acesso root à máquina, portanto você precisa ter um plano tipo VPS, Dedicado, Cloud, etc. No momento deste procedimento, a versão do meu WHM era a 11.32.3 e o CentOS, 5.8 x86_64.

O primeiro passo é instalar o FreeTDS, e aqui tem um detalhe: a versão mais recente, no momento em que escrevo este post, é a 0.91 porém não tive muita sorte com esta versão, por isto estou usando a 0.82. O FreeTDS é uma biblioteca livre para o protocolo de comunicação cliente-servidor do MS SQL Server e permite a conexão a partir de uma máquina com GNU/Linux.

Baixando e compilando o FreeTDS:

# wget ftp://ftp.freetds.org/pub/freetds/old/0.82/freetds-0.82.tar.gz
# tar -zxvf freetds-0.82.tar.gz
# cd freetds-0.82/
# ./configure –prefix=/usr/local/freetds –with-tdsver=8.0 –enable-msdblib –enable-dbmfix –with-gnu-ld
# make
# make install
# cd /usr/local/freetds/
# ln -s /usr/local/freetds/lib lib64

Agora, vamos recompilar o PHP usando o EasyApache. Ainda no terminal, digite:

# echo “–with-mssql=/usr/local/freetds” >> /var/cpanel/easy/apache/rawopts/all_php5

– Ir ao WHM e recompilar o php com EasyApache
– Em Exhaustive Options List, marcar o PDO
– Para mssql basta

PDO
Fatal error: Uncaught exception ‘PDOException’ with message ‘could not find driver’ in …

# pecl install pdo_dblib
pear/PDO_DBLIB requires PHP extension “pdo” (version >= 1.0)
No valid packages found
install failed

# pecl install -n pdo_dblib
warning: pear/PDO_DBLIB requires PHP extension “pdo” (version >= 1.0)
downloading PDO_DBLIB-1.0.tgz …
Starting to download PDO_DBLIB-1.0.tgz (8,184 bytes)
…..done: 8,184 bytes
6 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run ‘/usr/local/bin/phpize’ in the top level source directory of the module

ERROR: `phpize’ failed

# cd /home/cpeasyapache/src/php-5.3.15/ext/pdo_dblib/
# phpize
# ./configure
configure: error: Cannot find FreeTDS in known installation directories
# vi configure

Procure pelo trecho

for i in /usr/local /usr; do
if test -f $i/include/sybdb.h; then
PDO_FREETDS_INSTALLATION_DIR=$i
PDO_FREETDS_INCLUDE_DIR=$i/include
break
elif test -f $i/include/freetds/sybdb.h; then
PDO_FREETDS_INSTALLATION_DIR=$i
PDO_FREETDS_INCLUDE_DIR=$i/include/freetds
break;
fi
done

Trocar a linha

for i in /usr/local /usr; do

Por

for i in /usr/local/freetds /usr; do

# ./configure
# make
# make install
# echo “extension=pdo_dblib.so” >> /usr/local/lib/php.ini
# /scripts/restartsrv_httpd

PRONTO!!!