Proceso para Instalar Apache+php+freetds+SELinux on Centos 6.5

0
661

Este pequeño manual, describe como instalar un servidor Apache basado en Centos 6.5 que permita la conexión a bases de datos en SQLServer a través de FreeTDS, ademas aproveche la seguridad que proporciona SELinux, delimitando el dominio de ejecución del servicio.

Paso.1 Verificamos que SELinux este activado.


[root@localhost ~]# getenforce
Enforcing


 

Paso2. Se realiza la instalación del servidor Apache.


[root@localhost ~]# yum -y install httpd


 

Paso3. Se abre el puerto 80 en el Firewall.


[root@localhost ~]# system-config-firewall-tui

 fw


 

Paso4. Se inicia Apache y se le indica al sistema que arranque el servicio al iniciar el servidor.


[root@localhost ~]# service httpd start
[root@localhost ~]# chkconfig httpd on


 

Paso5.Instalamos PHP.


[root@localhost ~]# yum -y install php


 

Hasta este punto parece que todo va bien, pero, sorpresa, nos damos cuenta que la versión de PHP instalada es la 5.3.3, instalemos algo mas reciente, que tal la versión 5.5.9.


[root@localhost ~]# php -v
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies


 

Paso6. Removemos la versión instalada de PHP.


[root@localhost ~]# yum remove php*


 

Paso7. Instalamos la versión 5.5.9 de PHP.


[root@localhost ~]# rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
[root@localhost ~]# yum install php55w php55w-opcache php55w-mcrypt php55w-pdo php55w-mssql


 

Error: El paquete php55w-mssql, falla al intentar instalarse, existe un problema con dependencias, que hay que corregir.


–>Package php55w-mssql-5.5.9-1.w6.x86_64 will be installed
–> Processing Dependency: libsybdb.so.5()(64bit) for package: php55w-mssql-5.5.9-1.w6.x86_64
–> Finished Dependency Resolution
Error: Package: php55w-mssql-5.5.9-1.w6.x86_64 (mt_dv_extras)
Requires: libsybdb.so.5()(64bit)
You could try using –skip-broken to work around the problem
You could try running: rpm -Va –nofiles –nodigest


 

Paso8. Instalar las dependencias desde el repositorio Remi y corregir los problemas generados por php55w-mssql.


[root@localhost ~]# rpm -ivh http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# wget http://rpms.famillecollet.com/enterprise/remi.repo
[root@localhost ~]# yum -y install php55w-mssql


 

VERIFICAMOS: La versión instalada debe ser la 5.5.x.


[root@localhost ~]# php -v
PHP 5.5.9 (cli) (built: Feb 7 2014 14:31:25)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies


 

Paso9. Instalamos Freetds.


[root@localhost ~]# yum install freetds freetds-devel
[root@localhost ~]# yum install unixODBC unixODBC-devel


 

 Editamos:


[root@localhost ~]# vi /etc/odbcinst.ini


 

Agregamos lo siguiente:


[FreeTDS]
Description=ODBC para nuestro SQL Server
Driver=/usr/lib/libtdsodbc.so
Setup=/usr/lib/libtdsS.so
FileUsage=1


 

Editamos:


[root@localhost ~]# vi /etc/freetds.conf


 

Cambiamos lo siguiente:


;tds version = 4.2
por
tds version = 8


 

Editamos:


[root@localhost ~]# vi /etc/profile.d/freeTDS.sh


 

Agregamos lo siguiente:


# Desc: Variable necesaria conectar php y Freetds
export SYBASE=/usr/local/freetds


 

Paso10. Permitir a Apache conectarse a la Red, este paso es muy importante ya que si no se realiza, el servicio no puede conectarse con servicios en la red.


SELinux no permitirá el acceso al servidor SQL.
[root@localhost ~]# /usr/sbin/setsebool -P httpd_can_network_connect=1


 

Paso11. Verificamos la conexión hacia SQL Server.


[root@localhost ~]# tsql -S SQLServerIP -U SQLServerUser -P SQLServerPassword
locale is “en_US.UTF-8”
locale charset is “UTF-8”
using default charset “UTF-8”
1> use DBName
2> select * from TableName
3> go


 

Resultado:


ID GroupID USR Password Email FullName Position IsActive CartId addedby addeddate CustomerID WarehouseID LogoURL CatalogLanguage CatalogCurrency

16 1 fvasquez 11111 faustino.vasquez@midomain.com Faustino Vasquez Limon Jefe de Sistemas 1 0 16 May 5 2011 04:50:33:607PM


 

Ahora puedes conectar tus aplicaciones PHP a SQL Server  y divertirte programando.

Como siempre esperando que este proceso le sea útil a alguien 🙂
Saludos..