SQLSTATE[HY000] [2003] Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’ (13)

mysql logo 2800x2800 pixels1

Una de las cosas que nos puede causar un dolor de cabeza, y quizas no es tan facil de encontrar en google es cuando PHP rehusa conectarse a un servidor remoto MySQL mostrando el error:

SQLSTATE[HY000][2003]Can't connect to MySQL server on 'xxx.xxxx.xxx.xxx' (13)

Luego de hacer una prueba de conexión con el shell local y ver que se realiza la conexión correctamente, el primer pensamiento que se me ocurre es que hay algo mal en la última actualización del framework que estoy utilizando, pero después de un tiempo me di cuenta que la respuesta es muy simple.

SELinux está bloqueando las conexiones remotas desde scripts PHP ejecutados por un servidor web Apache. El código de error (13) al final del mensaje de error significa "permiso denegado" por lo cual es la indicación de que existe un bloqueo.

Como les había comentado la solución es sencilla: deben loguearse al servidor remoto como root y ejecutar el siguiente comando:

setsebool -P httpd_can_network_connect=1

y el problema estará solucionado.

Por supuesto, piense dos veces antes de ejecutar este comando porque harás tu servidor web un poco menos seguro, así que no hagas eso a menos que estés seguro de que lo necesite.

Add a comment

Imprimir Correo electrónico

El Mejor Framework PHP: CakePHP vs YII

4 Cake php vs Yii

Escoger el mejor framework php puede ser una tarea un poco intimidante en un ambiente en el que todos los frameworks son demasiado buenos. Es un proceso minucioso especialmente cuando esto nos puede afectar en el futuro.

Si también eres uno de esos que temen hacer una mala elección para su negocio, no te preocupes, en este artículo vamos a comparar dos de los frameworks más utilizados en PHP. CakePHP y YII, y al final podrás decidir cuál es el mejor framework para ti.

Algunas consideraciones como la sostenibilidad del Framework, la seguridad, la técnica son los principales factores decisivos para materializar nuestra idea. Pero antes de ver estas consideraciones usted necesita tener una idea clara de sus necesidades, como el propósito de su sitio web, ¿Qué tipo de alojamiento (hosting) tendrá su sitio web? y ¿Cuál será su presupuesto?

A continuación presentamos algunas características únicas que tienen estos frameworks y por qué se diferencian:

CakePHP

Popularmente conocido como el Framework de desarrollo rápido, CakePHP  facilita el desarrollo de un sitio web en una forma sencilla y rápida con menos codificacion. Ofrece aplicaciones de estructura extensible y sigue los patrones de ORM y MVC. Ciertas características distintivas son:

  • Compatible con las versiones 4 y 5 de PHP
  • Excelente generación de código
  • Almacenamiento en cache flexible
  • Arquitectura MVC
  • Sanitización de datos
  • Validación incorporada
  • Escalabilidad de la aplicación

Yii

Yii es el Framework PHP de alto rendimiento el cual  soporta sitios web de gran tamaño o gran cantidad de usuarios. Yii proporciona algunos de los más eficientes recursos para desarrolladores. Si tu sitio es grande o pequeño Yii le servirá de la mejor manera. Veamos algunas características que Yii ofrece:

  • Widgets compatibles con AJAX
  • Extremadamente flexible y extensible
  • Generación automática de código
  • Medidas de seguridad contra ataques tipo cross-site scripting e inyecciones sql
  • Documentación detallada
  • Soporte para Zend
  • Soporte para API
  • Manejo de errores y almacenamiento en cache

 

CAKEPHP AND YII: ¿Cual es el mejor Framework PHP?

Cake

  • Open source con licencia MIT
  • Trabaja con PHP 4 y 5
  • No soporta SQLite3
  • Los Modelos, vistas y controladores se crean con la herramienta bake
  • Orientado a objetos
  • Los temas, widgets, extensiones y módulos tienen que ser creados
  • Más lento en comparación con Yii
  • Generación rápida de código pero difícil de entender

Yii

  • Open source con licencia BSD
  • Yii requiere PHP 5.3
  • No soporta SQLite3
  • Los modelos, vistas, controladores, crud y modulos son creados usando GII: Lo que hace que Yii destaque es el caso especial CRUD, ya que hace las cosas mucho más fáciles
  • Orientado a objetos
  • Soporte para temas, extensiones, widgets y módulos
  • Gran velocidad de desarrollo
  • Se integra con JavaScript y Jquery
  • Generación de código comprensible

Hay una gran diferencia en la forma en que se manejan los modelos en CakePHP y como se manejan en Yii. Una clave primaria compuesta no puede ser usada en CakePHP pero si es soportada por Yii. Yii viene con un paquete completo de características y soporte, con una excelente documentación permitiendo una fácil comprensión de sus procedimientos de trabajo. La elección del mejor Framework debe estar basada en uno que se ajuste a sus necesidades sin embargo Yii toma el punto ganador en la mayoría de los casos como velocidad, flexibilidad y la funcionalidad. Las funcionalidades de desarrollo rápido de CakePHP hace que la configuración sea automática haciendo de este un buen Framework para trabajar.

Add a comment

Imprimir Correo electrónico

Error: Call to undefined function curl_init()

PHP

Hola amigos hoy les vengo a traer una facil solución al error de php Call to undefined function curl_init()

Este error ocurre por que no tenemos soporte para Curl en nuestra instalación php, ya que Curl es una herramienta aparte.


La Solución:

A. si estas en un ambiente windows, solo debes ir a tu php.ini y descomentar la linea que dice:

;extension=php_curl.dll

y reiniciar tu servidor

B. si estas en Linux/Unix utiliza este comando para hacer la instalación del paquete:

sudo apt-get install php5-curl

y reinicias el servidor con:

service apache2 restart

 

con estos sencillos pasos ya debes tener curl funcionando

Add a comment

Imprimir Correo electrónico

Fechas en Español con PHP y setlocale

fechas-calendarioQue tal queridos lectores hoy toca un pequeño tutorial donde hablare acerca de como poner las fechas en español cuando trabajamos con PHP, existen muchas formas de hacerlo, que si con una función, que con arrays, que set_locale, por mencionar algunas de las muchas formas con las que podemos realizar nuestro objetivo, obviamente todo depende del nivel de conocimiento que se tenga en PHP buscaremos la forma más fácil para nosotros de implementar nuestros scripts.

Empezare a hablar acerca de este tema tomando como entendido que ya tienen conocimiento básico de PHP y de la Función Date, por si tienen sus dudas hace tiempo publique un tip acerca de esta función les recomiendo lo revisen antes de empezar.

Sin más rodeos a codear sea dicho.

Cuando mandamos a imprimir una fecha con PHP aparece en ingles y con el formato de Unix por defecto, nosotros podemos decir que es lo que queremos mostrar y como queremos hacerlo.

<?php
 echo date('l, d M Y');
 
//Formato de salida: Friday, 24 Feb 2012
 ?>
Add a comment

Continuar leyendo

Imprimir Correo electrónico

¿Por qué PHP sobre otros Lenguajes de Programación?

PHPPHP es básicamente un lenguaje de scripting embebido en HTML que ayuda en la escritura de página web generadas dinámicamente. Los archivos bajo PHP comprenden etiquetas HTML, texto y secuencias de comandos con una extensión de archivo de "php". Con la ayuda de PHP, usted puede crear páginas de inicio de sesión, foros, diseñar un formulario, encuestas, por mencionar algunos ejemplos. Aunque la gente hoy en día utilizan PHP para el desarrollo de sitios web y aplicaciones web, algunos todavía dudan sobre sus capacidades. A continuación algunos datos sobre por qué PHP debe ser elegido sobre otros lenguajes de programación.

Add a comment

Continuar leyendo

Imprimir Correo electrónico

Desarrollo Full Stack JavaScript. El conocido como Stack MEAN

Con el auge de AngularJS, una nueva corriente está surgiendo en el desarrollo en JavaScript de principio a fin. El llamado stack MEAN. Con desarrollo end-to-end nos referimos a utilizar JS en todas las partes que componen una aplicación web actual: Frontend, Backend y Base de Datos.

mean small vertical kaasp5

El acrónimo MEAN viene de (M)ongo + (E)xpress + (A)ngular + (N)ode

Add a comment

Continuar leyendo

Imprimir Correo electrónico

Contar Duplicados en MySQL

mysql logo 2800x2800 pixels1

Supongamos que tenemos la siguiente estructura en una tabla sql

id   name  
1    AAA
2    BBB
3    BBB
4    BBB
5    AAA
6    CCC

select count(name) c from tbl
group by name having c >1

 al ejecutar esta query obtendremos el siguiente resultado:

AAA(2)  duplicate
BBB(3)  duplicate
CCC(1)  not duplicate

 Los nombres que son duplicados son AAA y BBB. Supongamos que el resultado inal que necesitamos es el total de duplicados en esa tabla en este caso seria 2 (AAA y BBB) para lograr este resultado debemos ejecutra la siguiente query

SELECT count(*) AS duplicate_count
FROM (
 SELECT name FROM tbl
 GROUP BY name HAVING COUNT(name) > 1
) AS t

Esta query lo que hace es hacer un count de los resultados de la query interna.

Add a comment

Imprimir Correo electrónico

phpMyAdmin: Buscar y reemplazar

mysql logo 2800x2800 pixels1

Aqui tienen un gran tip que les puede ahorrar muchas horas de trabajo.
Si alguna vez usted se ha equivocado con caracteres en su base de datos - codificacion de caracteres incorrecta - o simplemente quiere eliminar una cadena de texto en un campo especifico de una tabla en phpMyadmin, usted puede abrir el "SQL Dialog" y usar el siguiente codigo para realizar este reemplazo (recuerde cambiar tablename y tablefield por sus respectivos valores).

UPDATE tablename SET tablefield = replace(tablefield, "findstring", "replacestring");

Usted tambien puede hacer uso del la clausula WHERE si lo desea.

Probado en MySQL5, PHP5 y phpMyAdmin 2.11.4.

Update: Necesitara poner "replace" en mayuscula cerrada ("REPLACE") en las versiones mas recientes de phpMyAdmin.

Add a comment

Imprimir Correo electrónico