Obtener lista de archivos (imágenes) con PHP y glob

PHP: obtener imágenes de directorio

En este post de programación en PHP te mostraré cómo escanear el directorio actual (donde se ejecuta el script) para obtener una lista de todas las imágenes existentes, ya sean gif, png o jpg.

Obviamente con este ejemplo tú vas a poder obtener la lista de archivos de cualquier extensión o que cumplan con determinado patrón. Para esto vamos a usar la función glob.

(más…)

Por parzibyte, hace
Recortar imagen con PHP y Cropper JS

Recortar foto con PHP

Hoy voy a enseñarte a recortar una foto con PHP dando al usuario la posibilidad de recortar una foto y luego guardarla en el servidor con PHP.

De este modo vamos a darle al usuario la opción de recortar una imagen y guardar el resultado en PHP. Luego ya puedes ligar esa foto o imagen a una base de datos, alojarla en el servidor, usarla para crear otra imagen, etcétera.

Usaremos Cropper.js en el lado del cliente y después enviaremos el resultado a PHP. Con esto vamos a ahorrar recursos pues el recorte de la foto se hará del lado del cliente pero al final prácticamente vamos a recortar la foto con PHP.

(más…)

Configurar publicPath de Vue CLI en ./

En este tutorial te mostraré cómo hacer que la ruta pública de Vue (al usar la vue cli para compilar nuestros proyectos con npm run build) sea el directorio actual, es decir, ./.

Normalmente la Vue CLI va a compilar y crear el archivo index.html pero en las rutas habrá algo como:

script src=/js/script.js

Si te fijas, no tiene el ./, por lo que en varios servidores causará errores. Hoy te enseñaré cómo hacer que Vue CLI compile las rutas de manera relativa al directorio actual.

(más…)

Instalando PHP, Apache y MySQL (LAMP) en Linux

Instalar LAMP en Linux

En este post te enseñaré a instalar PHP y MySQL en Linux, específicamente en Ubuntu o en un sistema similar. Esto es conocido como la pila LAMP.

Serán unos comandos muy simples dejarán todo listo para tener la última versión de PHP con Apache y MySQL para que puedas comenzar a desarrollar programas usando estas tecnologías.

(más…)

Editar contenido de /var/www en Linux

Cuando desarrollamos con PHP, Apache y MySQL en nuestra computadora con Linux no necesitamos tanta seguridad, pues estamos en modo desarrollo.

Una cosa que siempre resulta complicada sobre todo para quienes recién inician en este mundo es de cómo editar el código de PHP, instalar proyectos, etcétera en el directorio /var/www/public_html o /var/www/html ya que el contenido del mismo está protegido.

La solución más simple es ejecutar todo como sudo, pero con el tiempo esto se vuelve tedioso y molesto. Sobre todo cuando queremos abrir proyectos con un editor de código que no tiene esos permisos.

Por eso es que en este post te enseñaré cómo podemos editar el código de /var/www/ y no solo el código, también subir archivos, modificar, eliminar, etcétera. Simplemente vamos a cambiar permisos.

Nota: aquí supongo que usas Debian, Ubuntu o un sistema basado en uno de ellos. Para el ejemplo yo usaré elementary OS.

(más…)

Ejemplo simple de RewriteRule con .htaccess y PHP

Actualmente estoy trabajando (he comenzado hoy) en un proyecto de PHP para acortar enlaces y hacer el seguimiento de los mismos, algo como un bitly de forma muy simple.

El punto es que voy a usar URLs amigables y hacer que el id de los enlaces sean cortos, así que en lugar de usar algo como:

parzibyte.me/acortador/link.php?id?123456

Usaré el RewriteRule de Apache para hacerlo así:

parzibyte.me/acortador/123456

Fíjate en la diferencia, cambió de link.php?id=123456 a /123456. Para ello he usado el archivo .htaccess. Te mostraré cómo lo hice, es un ejemplo muy simple pero te ayudará a entender.

Por cierto, ya que hablamos de acortadores, he hecho un software similar pero es para generar ingresos usando acortadores de esos que pagan por visitas.

(más…)

Por parzibyte, hace

Habilitar registro de errores en Ferozo

Hace algún tiempo estuve depurando una aplicación de PHP (específicamente un sistema de cotizaciones) y no había rastro del error por ningún lado.

Es decir, no había registro de errores, impresión de errores ni un archivo de error.log o algo parecido. Todo esto en el panel de control Ferozo.

Investigando un poco más, encontré la manera de mostrar los errores y de guardarlos en un registro o log. Aquí te mostraré cómo habilitarlo y en dónde se encuentra.

(más…)

Por parzibyte, hace

PHP no muestra los errores en Linux: solución

Hoy te voy a mostrar una posible solución al problema de que PHP no muestra errores cuando se ejecuta en un servidor Linux (en mi caso fue con un derivado de Debian).

El problema es simple: PHP no muestra ningún error incluso aunque lo haya, es decir, no imprime ningún error en el navegador web, pero sabemos que el error debería estar ahí.

En otras ocasiones muestra un error 500 pero no muestra ningún mensaje explicativo.

(más…)

Proteger directorio raíz de Laravel

En este post te mostraré cómo proteger el directorio de una aplicacón web de Laravel para evitar que un usuario acceda al archivo .env o a otros archivos.

Como sabes, cuando usas Apache para servir una app de Laravel, se puede acceder a todo el proyecto desde la web, no solo al directorio public. Por lo tanto, cualquier usuario podría acceder al archivo .env o a otros.

Es por eso que veremos cómo proteger una app de Laravel servida por Apache; ya que si, por ejemplo, la sirves usando artisan serve o con algo como Homestead, este paso no es necesario.

(más…)

Bloquear IP con Apache

Bloquear IP con Apache server

En este artículo te muestro cómo denegar el acceso completo a tu sitio web a un usuario con el solo hecho de saber su IP, utilizando el servidor web apache o apache web server.

Bloquear el acceso a un sitio web según la IP del cliente permite bloquear visitantes maliciosos o bots. Eso sí, recuerda que pueden cambiar su IP así que puedes combinar esto con un captcha.

Bueno, veamos cómo usar apache y el archivo .htaccess para degenar el acceso a determinada ip.

(más…)

Configurar apache para servir archivos wasm

Al probar WebAssembly en un servidor apache instalado con XAMPP e intentar cargar un archivo con extensión wasm aparecía el siguiente error:

Uncaught (in promise) TypeError: Failed to execute ‘compile’ on ‘WebAssembly’: Incorrect response MIME type. Expected ‘application/wasm’

Esto es porque Apache no sabe de qué tipo son los archivos wasm, y no los sirve con el MIME correcto.

Vamos a ver dos soluciones a esto.

(más…)

Instalar LAMP y phpmyadmin en Ubuntu

En este post vamos a ver cómo instalar la pila de LAMP en Ubuntu; es decir, vamos a instalar Apache, MySQL y PHP en Ubuntu.

Adicional a ello veremos cómo instalar phpmyadmin para administrar MySQL desde el navegador web con una interfaz amigable.

También veremos cómo configurar MySQL, probar la instalación de PHP y probar phpmyadmin.

Nota: esto lo vamos a hacer con tasksel, un “gestor” de Ubuntu. Será algo sencillo.

Nota 2: si usas Windows mira este tutorial.

(más…)