SQLSTATE[HY000] [2003] Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’ (13)
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.
phpMyAdmin: Buscar y reemplazar
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.
El Mejor Framework PHP: CakePHP 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.
Fechas en Español con PHP y setlocale
Que 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 ?>