Instalación Apache + Mysql + Php + PhpMyAdmin en ubuntu
Paso 1 – Actualizar la lista de paquetes disponibles y sus versiones ( sudo apt-get update )
Paso 2 – Instalar Apache ( sudo apt-get install apache2 )
Servicio: /etc/init.d/apache2 status
Url: http://127.0.0.1/ ó http://localhost/
Paso 3 – Instalar MySQL ( sudo apt-get install mysql-server )
Te va pedir una contraseña para el usuario root.
Servicio: systemctl status mysql
Paso 4 – Instalar PHP ( sudo apt install -y php )
Prueba:
Crear el fichero /var/www/html/info.php Con el contenido < !--?php phpinfo();?-- > Visitar la url: http://localhost/info.php
Paso 5 – Instalar PhpMyAdmin ( sudo apt-get install phpmyadmin )
Adicionalmente, hay que añadirlo en la configuración de apache2. Para ello:
//Descomentamos el alias en el fichero apache.conf /etc/phpmyadmin/apache.conf Alias /phpmyadmin /usr/share/phpmyadmin //Incluimos la configuración del phpmyadmin en el apache2.conf echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf
A partir de la version 5.7 no se puede realizar login en phpMyAdmin con el usuario root. Por lo tanto es necesario crearte un usuario:
sudo mysql -p -u root Enter password: mysql> CREATE USER 'rpf'@'%' IDENTIFIED BY 'rpf'; Query OK, 0 rows affected (0,02 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'rpf'@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0,02 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0,01 sec)
Error: “Login sin una contraseña está prohibido por la configuración (Ver AllowNoPassword)”
Este error nos lo dará al intentar logarnos si no ponemos una contraseña.
La forma de solucionarlo es:
Descomentar la propiedad AllowNoPassword en el fichero /etc/phpmyadmin/config.inc.php $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
WordPress: “Briefly Unavailable for Scheduled Maintenance”
Este error puede aparecer en WordPress en el momento que falla alguna actualización, ya sea del propio wordpress o de un plugin.
Al realizar las actualizaciónes Wordpres crea un archivo en el llamado .maintenance (en la raiz del sitio). Este archivo es el encargado de mostrar el mensaje: “Briefly Unavailable for Scheduled Maintenance”. De tal forma que muestra ese mensaje en tu sitio en lugar de mostrar los errores de PHP mientras se produce la actualización de los archivos necesarios.
Una vez finalizada la actualización, el archivo se borra automáticamente. Si por lo que sea la actualización falla y ese archivo no llega a borrarse se debe borrar a mano. De otro modo sacará constantemente el mensaje de error. Una vez borrado es recomendable ejecutar las actualización que ha fallado para que la aplique correctamente.
Timeout con nusoap
En la librería NuSOAP el tiempo de espera predeterminado es de 30 segundos. Cuando se realizar un servicio con tiempos de ejecución superiores el servicio devolverá un timeout.
Para solucionarlo basta con aumentar el tiempo de espera de respuesta para resolver este problema. Para ello se puede modificar directamente el fichero nusoap.php añadiendole el número de segundos que se precisen a la variable $response_timeout.
$response_timeout = 400;
Crear una tarea cron personalizada en wordpress
Si se quiere automatizar alguna tarea desde nuestro wordpress podemos recurrir a la siguiente solucion:
Paso 1/ Descargarse e instalar el plugin Advanced Cron Manager Este plugin permite de una manera muy simple gestionar las tareas automatizadas.
Paso 2/ Se debe crear una acción que será la que se invoque desde el plugin instalado. Por ejemplo, si quisiéramos que periódicamente se ejecutase un script php que tenemos implementado podríamos realizar la siguiente acción sirviéndonos para ello de CURL, tal que así:
function wp_execute_script_php() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://disastercode.com.es/miScript.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, "http://disastercode.com.es/miScript.php"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_ENCODING, "ISO-8859-1,UTF-8;q=0.7,*;q=0.7"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19"); $body = (curl_exec($ch)); curl_close($ch); } add_action( 'wp_execute_script_php', 'wp_execute_script_php' );
Paso 3/ Ya solo queda crear la tarea en la página de gestión del plugin poniendo como schedule_hook_for_action nuestra acción wp_execute_script_php y estableciendo el periodo de ejecución que se desee.
Plugins para poner posts autómaticos en wordpress
Auto Post Scheduler
Te permite publicar nuevos mensajes y/o reciclar los mensajes antiguos, de forma automática. No hay necesidad de programar tiempos de correos de forma individual.
Es especialmente útil para la importación de un gran número de mensajes, se configurar para publicar con cualquier frecuencia que se elija.
Auto Post After Image Upload
Te permite crear un post automático al subir una imagen a la galeria de medios.
Como usar la API de Twiter (parte 2)
A continuación, se muestra un ejemplo de como usar la API de Twiter con PHP.
En primer lugar comentar que se va a utilizar la librería TwitterAPIExchange. Esta librería contiene las funciones necesarias para conectar la API con los credenciales del usuario y realizar de una manera sencilla las operaciones deseadas.
Variable settings con los tokens a usar:
$settings = array( 'oauth_access_token' => "", 'oauth_access_token_secret' => "", 'consumer_key' => "", 'consumer_secret' => "" );
Ejemplo 1: Listar los ids de los amigos que tiene el usuario robertopf81
//DOC: https://dev.twitter.com/docs/api/1.1/get/friends/ids function listIdsFriends($usuario, $settings){ ini_set('display_errors', 1); require_once('TwitterAPIExchange.php'); $url = 'https://api.twitter.com/1.1/friends/ids.json'; $getfield = '?cursor=-1&screen_name='.$usuario.'&count=5000'; $requestMethod = 'GET'; $twitter = new TwitterAPIExchange($settings); $json = $twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(); return $json; } //ahora la utilizariamos así: $friends = listIdsFriends("robertopf81", $settings); $jsonFriends = json_decode($friends); $num_friends = count($jsonFriends->ids); for($i=0; $i<$num_friends; $i++){ $user = $jsonFriends->ids[$i]; echo "Friend ". ($i+1) . ": " . $user . "
"; }
Ejemplo 2: Seguir a un nuevo amigo llamado usuarioaseguir.
//DOC: https://dev.twitter.com/docs/api/1.1/post/friendships/create function follow($usuario, $settings){ ini_set('display_errors', 1); require_once('TwitterAPIExchange.php'); $url = 'https://api.twitter.com/1.1/friendships/create.json'; $requestMethod = 'POST'; $postfields = array( 'screen_name' => $usuario,'follow' => "true" ); $twitter = new TwitterAPIExchange($settings); return $twitter->buildOauth($url, $requestMethod)->setPostfields($postfields)->performRequest(); } //ahora la utilizariamos así: $respuesta = follow("usuarioaseguir", $settings); echo $respuesta; $json = json_decode($respuesta); echo ''; echo "Usuario: ".$json->name." (@".$json->screen_name.")"; echo "
"; echo "ID USER: ".$json->id_str; echo "
"; echo "Fecha Envio: ".$json->created_at;
Se han dejado en github estos ejemplos y alguno más: ver aquí.
Como usar la API de Twiter (parte 1)
Si tienes una cuenta de twiter y quieres realizarte una aplicación personalizada que utilice toda la información que hay en twiter (número de seguidores, amigos, tweets, etc), la gente de Twiter nos facilita una serie de llamadas rest que podemos utilizar para interactuar con ellos. Más información aquí.
En primer lugar decir que a día de hoy la versión de la API de twitter es la 1.1 (la 1.0 ya está deprecada). Esta versión 1.1 requiere usar autentificación OAUTH, de otra forma no podremos poner a funcionar la aplicación.
Por lo tanto para poder utilizar la api se deben seguir estos pasos:
1/ Crear una cuenta de desarrollador: esto se hace en https://dev.twitter.com/
2/ Una vez creada la cuenta de desarrollador ya podrás crear una nueva aplicación en la zona de «Mis Aplicaciones«.
3/ Tras crear la aplicación lo siguiente es crear los Tokens de acceso. (API keys y Access Tokens)
4/ Llegados a este punto ya podriamos utilizar la api. Existen ya un gran número de librerias que nos facilitaran el uso del api twiter para no tener que implementarlo de cero. Además, hay librerías para casi cualquier lenguaje posible. (Ver aquí)
Desordenar aleatoriamente un array en java y en php
Para desordenar un array en PHP tenemos la función shuffle. En el ejemplo se crea una array ordenado de 1 a 6 mediante la función range para luego mezclarlos:
En java tenemos la función Collections.shuffle que es equivalente. Recibe como parámetro una lista y mezcla los distintos objetos o tipos que la componen.
List< TuObjeto> asks = new LinkedList< TuObjeto>(); asks.add(new TuObjeto(1)); asks.add(new TuObjeto(2)); asks.add(new TuObjeto(3)); Collections.shuffle(asks);
Como apunte decir que si lo que queremos es desordenar una lista obtenida directamente desde una Base de Datos MySql podemos usar la función rand(). Más información de esta y otras funciones en la documentación oficial de MySql.
SELECT * FROM wth_users ORDER BY rand()
Generar ficheros excel o word con php
Para generar un una hoja de excel con php basta con añadir al inicio de la página esta cabecera:
Para las celdas puedes utilizar una tabla.
Si quisieras que fuera un documento word tendrías que añadir:
header('Content-type: application/vnd.ms-word'); header("Content-Disposition: attachment; filename=nombre_del_archivo.doc"); header("Pragma: no-cache"); header("Expires: 0"); ?>
Ésta sería la forma más rudimentaria que hay. Actualmente existen librerías para php que permiten la creación de ficheros excel de una forma más amigable. Por ejemlo:
PHPExcel – es una librería muy potente para PHP integrada por un conjunto de clases que permiten escribir y leer diferentes formatos de archivos de hojas de cálculo como .xls, . xlsx, .csv, .ods, PDF, HTML,… Este proyecto se basa en el estándar OpenXML Microsoft y PHP.
SimpleExcel PHP – es una librería PHP bastante simple que te permite analizar, convertir y escribir datos tabulares desde y hacia Microsoft Excel XML / CSV / TSV / HTML / formato JSON
PHP-Excel – es una librería php-excel muy simple que permite para generar documentos Excel desde php.
Generador de partes de trabajo
Aplicación web que te genera los partes de horas mensuales en formato *.xls
DEMO: http://genparte.disastercode.com.es
GitHub: https://github.com/roberto-pf/GenParte
Tecnologías empleadas:
– Plugin Fullcalendar de Jquery para implementar el calendario.http://arshaw.com/fullcalendar/
– Nusoap, como servidor web para los días festivos.http://sourceforge.net/projects/nusoap/
– PHPExcel, como librería para generar la hoja de excel.http://phpexcel.codeplex.com/
– Diseño formularios:
Formly -> http://thrivingkings.com/read/Formly-The-form-glamorizer-for-jQuery
NiceForms -> http://www.emblematiq.com/lab/niceforms/
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places