Herramientas Informaticas

Etiqueta: PHP8 Página 2 de 10

Conectarse a SAP HANA desde Linux Mint usando CDATA ODBC (Guía Completa)

Entrada fija

Conectar aplicaciones PHP o frameworks como CodeIgniter a SAP HANA desde Linux puede ser un reto, especialmente cuando no se quiere instalar el SAP HANA Client oficial. En esta guía aprenderás paso a paso cómo instalar y configurar CDATA ODBC Driver para SAP HANA en Linux Mint, una alternativa rápida y funcional para entornos de desarrollo.


¿Qué es CDATA ODBC para SAP HANA?

CDATA es un proveedor de drivers ODBC comerciales que permiten conectarse a múltiples bases de datos empresariales, incluido SAP HANA, sin necesidad de instalar clientes pesados de SAP.

Ventajas

  • Instalación sencilla
  • Compatible con PHP, Python y Java
  • Ideal para Linux Mint / Ubuntu
  • No requiere SAP HANA Client

Consideraciones

  • Driver comercial
  • Incluye periodo de prueba (~30 días)
  • Recomendado para desarrollo y pruebas

Requisitos del sistema

  • Linux Mint 22 (64 bits)
  • Acceso a SAP HANA (IP, puerto, usuario y base de datos)
  • Permisos sudo
  • PHP (opcional para pruebas)

1. Instalar dependencias necesarias

sudo apt update
sudo apt install -y unixodbc unixodbc-dev libssl3 libc6

Verifica la instalación:

odbcinst -j

2. Descargar CDATA ODBC Driver para SAP HANA

Descarga el driver desde el sitio oficial:

https://www.cdata.com/drivers/saphana/odbc

Selecciona:

  • Platform: Linux
  • Architecture: 64-bit
  • Technology: ODBC

El archivo descargado tendrá un nombre similar a:

CDataODBCDriverforSAPHANA.tar.gz

3. Descomprimir el instalador

cd ~/Descargas
tar -xvzf CDataODBCDriverforSAPHANA.tar.gz
cd CDataODBCDriverforSAPHANA

4. Instalar el driver CDATA

sudo ./install.sh

El driver se instalará por defecto en:

/opt/cdata/cdata-odbc-driver-for-saphana/

5. Registrar el driver en ODBC

Verifica que la librería exista:

ls /opt/cdata/cdata-odbc-driver-for-saphana/lib/

Debe existir:

libcdataodbcHANA.so

Edita el archivo odbcinst.ini:

sudo nano /etc/odbcinst.ini

Agrega lo siguiente:

[CData SAP HANA ODBC Driver]
Description=CData ODBC Driver for SAP HANA
Driver=/opt/cdata/cdata-odbc-driver-for-saphana/lib/libcdataodbcHANA.so
UsageCount=1

Verifica el registro:

odbcinst -q -d

6. Crear el DSN de conexión

Edita el archivo odbc.ini:

sudo nano /etc/odbc.ini

Ejemplo de conexión para SAP Business One HANA:

[hana_dev]
Driver=CData SAP HANA ODBC Driver
Server=192.168.1.50
Port=30015
User=HANAUSER
Password=MySecurePass123
Database=SBODEV_HANA

7. Probar la conexión ODBC

isql -v hana_dev

Resultado esperado:

Connected!

8. Instalar soporte ODBC para PHP

sudo apt install php-odbc
sudo systemctl restart apache2

Verifica que PHP tenga ODBC habilitado:

php -m | grep odbc

9. Ejemplo de conexión PHP a SAP HANA

<?php

$conn = odbc_connect(
    'hana_dev',
    'HANAUSER',
    'MySecurePass123'
);

if (!$conn) {
    die(odbc_errormsg());
}

echo "Conectado a SAP HANA usando CDATA ODBC";

10. Ejemplo de consulta SAP HANA

$sql = '
    SELECT 
        "DocEntry",
        "DocNum",
        "CardCode",
        "CardName"
    FROM "OPCH"
    LIMIT 10
';

$rs = odbc_exec($conn, $sql);

while ($row = odbc_fetch_array($rs)) {
    print_r($row);
}

Nota: SAP HANA es sensible a mayúsculas y minúsculas, por lo que es obligatorio usar comillas dobles para tablas y campos.


Conclusión

El driver CDATA ODBC para SAP HANA es una excelente alternativa cuando necesitas conectarte rápidamente a SAP HANA desde Linux Mint sin instalar el cliente oficial de SAP.

  • Instalación sencilla
  • Compatible con PHP y CodeIgniter
  • Ideal para desarrollo y pruebas

Esta configuración puede adaptarse fácilmente a entornos productivos ajustando credenciales, seguridad y manejo de conexiones.

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

Entrada fija

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

La versión lav1.5.1 introduce una de las mejoras más esperadas en el flujo de autenticación y gestión de usuarios: la capacidad de manejar de forma nativa la imagen de perfil, con validación robusta, soporte para valores NULL en base de datos y un avatar por defecto cuando no se encuentra la imagen.

Este release no solo mejora la experiencia visual y de usabilidad, sino que también fortalece la integración de datos del usuario dentro de las vistas del sistema. A continuación, presentamos en detalle todos los cambios, mejoras y la forma recomendada de actualizar tu proyecto.


✨ Principales Novedades

🔹 1. Imagen de perfil con validación

Ahora el sistema valida si el campo profile_image existe en la base de datos y contiene un valor válido.

  • Si el campo está vacío o en NULL, se muestra automáticamente un avatar genérico.
  • Si el archivo no existe en el servidor, el sistema también utiliza el avatar por defecto.

🔹 2. Avatar por defecto

El avatar por defecto se toma de la CDN oficial de AdminLTE:

https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png

🔹 3. Integración en el Header y Sidebar

La imagen de perfil ahora aparece en dos áreas clave:

  • Navbar (parte superior) junto al nombre de usuario.
  • Sidebar (menú lateral) dentro del panel de usuario.

🔹 4. Comando de actualización de esquema

Con esta versión se incluyen nuevos campos y tablas, por lo que añadimos el comando:

php spark boilerplate:update

Este comando sincroniza tu base de datos con los cambios de la versión actual.


📦 Cómo actualizar a lav1.5.1

1. Actualizar dependencias con Composer

Ejecuta en la raíz de tu proyecto:

composer update julio101290/boilerplate

Esto descargará la nueva versión y reemplazará los archivos necesarios.

2. Ejecutar la actualización de esquema

Después de actualizar el código, corre el comando:

php spark boilerplate:update

Este proceso migrará las tablas y añadirá los nuevos campos, entre ellos el de profile_image.

3. Limpiar cachés y asegurarte de que todo carga

php spark cache:clear
php spark config:clear

🛠 Cambios Técnicos Detallados

Validación en vistas

Ejemplo de uso en el header:

<a href="<?= base_url(route_to('user-profile')) ?>" class="nav-link d-flex align-items-center">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="avatar-img img-circle bg-gray mr-2 elevation-<?= config('Boilerplate')->theme['navbar']['user']['shadow'] ?>"
        alt="<?= user()->username ?>" height="32">
    <?= user()->username ?>
</a>

Ejemplo en el sidebar:

<div class="image">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="img-circle elevation-<?= config('Boilerplate')->theme['sidebar']['user']['shadow'] ?>"
        alt="User Image">
</div>

Cambios en la Base de Datos

  • Se añade el campo profile_image a la tabla de usuarios.
  • Este campo acepta NULL de manera nativa.
  • Si no se define, la vista renderiza automáticamente el avatar por defecto.

Compatibilidad

  • Compatible con PostgreSQL y MariaDB.
  • No requiere cambios manuales en tablas previas: el comando php spark boilerplate:update se encarga de todo.

🔒 Beneficios de Seguridad

  • No se exponen rutas inválidas de imágenes.
  • Se evita el error de “imagen rota”.
  • Se normalizan los valores NULL.
  • Mejora la experiencia del usuario manteniendo consistencia en toda la interfaz.

📊 Ejemplo Visual del Cambio

Antes (versión anterior):

  • Los usuarios sin foto aparecían con un ícono roto.
  • Los campos NULL no eran validados correctamente.

Ahora (lav1.5.1):

  • Todos los usuarios tienen avatar visible.
  • Integración estética y funcional en Navbar y Sidebar.

📝 Changelog resumido

  • ✅ Validación de profile_image en todas las vistas principales.
  • ✅ Avatar por defecto cuando el campo está vacío o NULL.
  • ✅ Compatibilidad con PostgreSQL y MariaDB.
  • ✅ Nuevo comando php spark boilerplate:update.
  • ✅ Correcciones menores en estilos de AdminLTE.

🚀 Guía Paso a Paso de Migración

  1. Respaldar tu proyecto actual.
  2. Ejecutar:
   composer update julio101290/boilerplate
  1. Correr la migración:
   php spark boilerplate:updatecommand
  1. Limpiar caché.
  2. Verificar que los usuarios aparecen con sus fotos de perfil o con el avatar por defecto.

📌 Notas Finales

Este release v1.5.1 marca un paso adelante en la personalización de Boilerplate.
Ahora cada usuario tiene una experiencia más consistente y profesional dentro de la aplicación.

👉 Si quieres revisar el código y los commits de esta versión:
🔗 Release en GitHub

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

Entrada fija

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

“No se puede cambiar una huella digital como se cambia una contraseña.” — Derechos Digitales


🔎 1. ¿Qué es la CURP Biométrica?

La CURP biométrica es la nueva forma de identificación obligatoria en México, aprobada en 2025, que incluirá:

  • 📷 Fotografía del rostro
  • 🔍 Huellas dactilares
  • 👁 Escaneo del iris
  • ✍️ Firma electrónica

Su objetivo declarado es combatir la desaparición de personas y modernizar el sistema de identificación nacional. Pero… ¡no todo es tan claro!


🤔 2. ¿Voluntaria o Obligatoria?

Aunque el gobierno afirma que su uso es voluntario, la ley establece que:

  • Será la única forma de identificación para trámites oficiales y privados
  • No contar con ella podría impedir el acceso a servicios públicos

⚠️ Esto genera una contradicción legal y una forma de consentimiento forzado.


😯 3. Riesgos para tu Privacidad

♻️ Datos irremplazables

Tus huellas o iris no pueden cambiarse si se filtran o roban. ¡Y eso ya ha pasado antes en México!

🚫 Falta de supervisión

Tras la desaparición del INAI, no hay autoridad autónoma que vigile el uso de tus datos.

📊 Vigilancia masiva

El sistema podría rastrear tus:

  • Consultas médicas
  • Movimientos financieros
  • Uso de transporte
  • Ubicación en tiempo real

🔒 4. Lo que dicen los expertos

Organizaciones como R3D y Derechos Digitales advierten que:

  • No hay garantías legales suficientes
  • Podría discriminar a personas trans, adultas mayores o con huellas deterioradas
  • Está diseñado más para vigilar que para proteger

“Es un sistema coercitivo que castiga a quien no quiera entregar sus datos biométricos.” — R3D


🚀 5. Argumentos del Gobierno

El director de la Agencia Digital, Pepe Merino, afirma que:

  • La CURP biométrica no es obligatoria
  • Solo se usará en casos con investigación de desaparición
  • La base de datos no estará centralizada

⚠️ Pero estas afirmaciones contrastan con el contenido real de las leyes aprobadas.


🌐 6. Comparación Internacional

  • En Brasil, el Tribunal Supremo prohibió un sistema similar por ser inconstitucional
  • En Europa, la Convención 108+ exige protección legal robusta y supervisión independiente
  • En India, su base de datos AADHAAR ha sido hackeada múltiples veces

⛔️ 7. Peligros reales

RiesgoConsecuencia
🔎 Filtración de datosNo puedes cambiar tu iris o huella
🚫 DiscriminaciónPoblaciones vulnerables excluidas
🕵️‍♂️ Vigilancia sin límitesGeolocalización, perfilamiento, vigilancia financiera
🙅‍ No hay contrapesosNo hay INAI, ni jueces que supervisen

📊 8. Lo que opina la gente

  • ❌ 49% no confía en que el gobierno protegerá sus datos
  • ❌ 49% está en desacuerdo con los datos biométricos obligatorios

¿Y si cambian de gobierno y usan esa base para vigilar opositores?” — Usuario en redes


🤝 9. ¿Qué podemos hacer como ciudadanos?

  • 🔎 Informarte con fuentes independientes
  • ✉️ Exigir leyes con protección biométrica real
  • 🚪 Participar en colectivos de derechos digitales
  • 🙏 Pedir que vuelva una autoridad como el INAI

🚫 Conclusión: ¡No es un simple trámite!

La CURP biométrica, tal como está diseñada, representa un riesgo real para tu privacidad, tus derechos y tu seguridad.

❌ No es segura
❌ No es voluntaria
❌ No tiene vigilancia independiente

⚡️ Solo con leyes claras, tecnología responsable y participación ciudadana podremos evitar que esta medida se convierta en una herramienta de control masivo.


🔖 Fuentes consultadas

“Si no luchas por tus datos, algún día serán usados contra ti.”

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Entrada fija

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Introducción

LBRY fue uno de los proyectos pioneros en ofrecer una red descentralizada para la publicación y monetización de contenido, con su token nativo LBC (LBRY Credits). Pero en los últimos meses, LBC ha desaparecido progresivamente de múltiples exchanges, tanto centralizados como descentralizados, dejando a muchos usuarios con activos atrapados y sin liquidez. ¿Qué ocurrió realmente? ¿Fue un fallo tecnológico, una caída del interés… o presión estatal?

Este análisis desglosa lo que pasó con LBRY y cómo el gobierno, en especial la SEC (Securities and Exchange Commission) de Estados Unidos, puede desmantelar incluso proyectos descentralizados sin necesidad de tocar una sola línea de código.

1. El Caso LBRY vs. SEC

¿Qué es LBRY?

LBRY fue creado como un protocolo blockchain que permite a los usuarios compartir contenido (videos, publicaciones, música) sin intermediarios. Su token LBC se usaba para pagar por contenido, apoyar creadores y realizar microtransacciones dentro del ecosistema.

La demanda de la SEC

En marzo de 2021, la SEC presentó una demanda contra LBRY Inc., la empresa detrás del desarrollo del protocolo, acusándola de vender valores no registrados mediante la emisión de LBC, incluso sin haber hecho una ICO formal.

El fallo judicial

En noviembre de 2022, el tribunal falló a favor de la SEC, declarando que LBC era un valor bajo la ley estadounidense. Esto generó consecuencias graves para el ecosistema, ya que incluso las ventas secundarias entre usuarios quedaron bajo amenaza.

2. La desaparición de LBC en exchanges

Tras el fallo:

  • Exchanges como CoinEx, BitMart, MXC y Hotbit eliminaron LBC.
  • Bittrex US cerró sus mercados para clientes estadounidenses.
  • Incluso algunos DEX dejaron de ofrecer pares de LBC debido a la baja liquidez y el riesgo legal.

¿Por qué también los DEX?

Aunque los DEX no son controlados directamente por gobiernos, las plataformas y front-ends prefieren evitar problemas legales. Además, los proveedores de liquidez abandonaron el token tras la sentencia, dejando pares sin volumen.

3. ¿Es esto censura financiera?

Sí, aunque indirectamente. Lo que pasó con LBC demuestra cómo un gobierno puede marginalizar una criptomoneda sin necesidad de prohibirla expresamente.

  • Técnicamente: El protocolo sigue vivo, los tokens existen, puedes correr nodos.
  • En la práctica: No hay liquidez ni adopción. Se volvió inviable para el usuario común.

4. ¿Cómo puede el gobierno controlar criptomonedas descentralizadas?

Los gobiernos pueden limitar una red cripto a través de los siguientes medios:

MecanismoEjemplo
Demandas legalesSEC vs LBRY, SEC vs Ripple
Prohibiciones de listadosExchanges eliminan tokens “en riesgo”
Presión a desarrolladoresArresto de desarrollador de Tornado Cash
Regulación de rampas de entrada/salidaKYC forzado en wallets y exchanges

5. ¿Qué significa esto para la descentralización real?

Niveles de descentralización:

NivelCaracterísticasRiesgo
1. TotalNodos distribuidos, sin empresa detrás (ej. Monero, Bitcoin)Baja censura, difícil de eliminar
2. ParcialRed abierta con empresa de desarrollo (ej. Ethereum, XRP)Presión legal sobre fundadores
3. CentralizadaControl total de empresa o figura única (ej. FTX, Terra)Fácilmente colapsables

6. Lecciones del caso LBRY

  • La descentralización debe ser real y completa: Si dependes de una empresa, puedes ser desmantelado.
  • El marco legal es importante: Aunque el código sea libre, la ley puede limitarlo.
  • La comunidad es clave: Sin una red fuerte de usuarios y nodos independientes, los proyectos mueren.

7. ¿Qué hacer si aún tienes LBC?

Opciones actuales:

  • Algunos exchanges internacionales aún permiten el intercambio, como Bittrex Global (fuera de EE. UU.).
  • Puedes conservar el token en wallets como LBRY Desktop u Odysee.
  • Trading P2P en foros o grupos privados.

Sin embargo, la liquidez y la utilidad del token están prácticamente extintas.

8. Alternativas verdaderamente descentralizadas

Si buscas redes resistentes a la censura, considera:

ProyectoDescripción
Monero (XMR)Criptomoneda centrada en la privacidad total.
IPFS + FilecoinAlmacenamiento de archivos descentralizado.
NostrRed social descentralizada, sin servidores centrales.
KeetMensajería y videollamadas P2P sin servidores.
ZoraPlataforma NFT sin control corporativo.

Conclusión

El caso de LBRY es una advertencia clara: una descentralización parcial no basta. Aunque el código sobreviva, el sistema puede ser asfixiado desde afuera mediante leyes, regulación financiera y censura social.

Si queremos una verdadera libertad en la web y en las finanzas, debemos construir infraestructuras libres de permisos, resistentes a la censura y no dependientes de ninguna entidad legal.

¿Te interesa migrar tus contenidos o tokens a plataformas libres y resistentes? Déjame tu comentario y seguimos explorando juntos.

🚀 Descubre Facturación Fácil con CI4JCPOX: Sistema Moderno en CodeIgniter 4.5

Entrada fija

¿Buscas un sistema de facturación rápido, seguro y flexible que puedas instalar en tu servidor Ubuntu con mínimo esfuerzo?

¡Te presento CI4JCPOX, una solución basada en CodeIgniter 4.5 que potencia tu negocio con funcionalidades completas y tecnología moderna!


🌟 ¿Por qué elegir CI4JCPOX?

  • Basado en CodeIgniter 4.5, el framework PHP ligero y rápido
  • Uso de MariaDB para bases de datos robustas y eficientes
  • Integración lista con Apache y PHP para un entorno LAMP completo
  • Código abierto y fácil de personalizar para tus necesidades
  • Instalación rápida gracias a un script automatizado para Ubuntu Server 24.04 en AWS EC2 o cualquier VPS Linux

⚙️ ¿Qué incluye este sistema?

  • Gestión completa de facturas y clientes
  • Interfaz web limpia y responsiva
  • Migraciones y seeders para inicializar la base de datos sin complicaciones
  • Configuración segura con usuario y base de datos dedicados
  • Preparado para crecer y adaptarse a tu negocio

🛠️ Cómo instalar CI4JCPOX en Ubuntu Server 24.04 (AWS EC2)

He preparado un script automático para que en pocos minutos tengas todo listo: LAMP, base de datos, configuración de CodeIgniter y Apache con VirtualHost.

Paso 1: Descarga el script de instalación

cd ~
curl -O https://raw.githubusercontent.com/julio101290/ci4jcposv2/main/instalar_ci4_facturacion.sh

Paso 2: Dale permisos de ejecución

chmod +x instalar_ci4_facturacion.sh

Paso 3: Ejecuta el script como root

sudo ./instalar_ci4_facturacion.sh

✅ ¿Qué hace este script por ti?

  • Actualiza y prepara tu servidor Ubuntu
  • Instala Apache, MariaDB y PHP con todas las extensiones necesarias
  • Crea la base de datos facturacion y un usuario seguro con permisos
  • Instala el proyecto CI4JCPOX usando Composer en /var/www/html/facturacion
  • Configura Apache para servir el proyecto con un VirtualHost dedicado
  • Ejecuta migraciones y seeders para inicializar la base de datos
  • Deja todo listo para que accedas a tu sistema por IP o dominio

🌐 Accede a tu sistema

Abre tu navegador y entra a:

http://TU_IP_PUBLICA/

¡Listo para comenzar a facturar!


🔒 Seguridad y permisos

El script también se encarga de ajustar permisos para que Apache pueda servir correctamente la aplicación sin problemas de acceso.


📂 Código y más información

Puedes revisar y descargar el script completo desde GitHub:

https://github.com/julio101290/ci4jcposv2/blob/main/instalar_ci4_facturacion.sh


¿Quieres ayuda o personalización?

No dudes en contactarme para soporte, mejoras o integraciones personalizadas. ¡Estoy aquí para ayudarte a llevar tu facturación al siguiente nivel!


¡Empieza hoy mismo con CI4JCPOX y transforma tu sistema de facturación!

📘 Documentación de psql-backup

Entrada fija
  1. ¿Qué es psql-backup?
  2. Características principales
  3. Instalación vía Composer
  4. ¿Cómo se usa?
  5. Detalles técnicos
  6. Descarga y restauración
  7. Licencia

📦 ¿Qué es psql-backup?

psql-backup es una librería PHP creada por julio101920 (el compa que respalda hasta los tamales si le das chance). Sirve para hacer backups de PostgreSQL desde PHP, y si no tienes pg_dump, no pasa nada, la librería se rifa con puro PHP.


✨ Características principales

  • Backup con pg_dump (si está instalado)
  • Respaldo alternativo 100% PHP
  • ZIP automático para PostgreSQL
  • Clase lista para usar: PostgreSQLBackup
  • Compatible con CodeIgniter 4
  • Soporte para MariaDB y PostgreSQL

⚙️ Instalación vía Composer

Para instalar:

composer require julio101290/psql-backup

Importa la clase donde la necesites:

use PostgresqlBackupManager\PostgreSQLBackup;

🚀 ¿Cómo se usa?

Ejemplo sencillo:

$pdo = new PDO("pgsql:host=localhost;port=5432;dbname=testdb", "usuario", "clave");
$backup = new PostgreSQLBackup($pdo, "testdb", "usuario", "clave", "localhost", 5432, __DIR__ . "/respaldos");
$archivoSQL = $backup->backup(true);

Y para restaurar:

$backup->restore($archivoSQL);

🔍 Detalles técnicos

  • Verifica si pg_dump está disponible
  • Usa ZIP solo si es PostgreSQL (pa’ que no se diga que no es eficiente)
  • El modo PHP lee todas las tablas y datos y crea un .sql como dios manda

📥 Descarga y restauración

¿Necesitas restaurar un respaldo ZIP? No hay problema, la clase detecta si es ZIP y lo descomprime solita:

if (pathinfo($archivoSQL, PATHINFO_EXTENSION) === 'zip') {
    $zip = new ZipArchive();
    $zip->open($archivoSQL);
    $zip->extractTo("/ruta/temp");
    $archivoExtraido = "/ruta/temp/archivo.sql";
    $backup->restore($archivoExtraido);
}

📝 Licencia

MIT. Úsala con gusto, respáldate con estilo y si puedes invítame un taco 🌮

🧠 Cómo convertir Visual Studio Code en el entorno ideal para PHP en Linux Mint (¡con formato automático como en NetBeans!)

Entrada fija

🧠 Cómo convertir Visual Studio Code en el entorno ideal para PHP en Linux Mint (¡con formato automático como en NetBeans!)

Si vienes de NetBeans y ahora estás usando Visual Studio Code (VS Code), probablemente extrañes esa característica tan útil de formatear automáticamente el código PHP con Ctrl+Shift+F.

¡Buenas noticias! Puedes lograr exactamente lo mismo (¡y mejor!) en VS Code. En esta guía te muestro cómo dejarlo todo listo paso a paso:


✅ Paso 1: Instalar Visual Studio Code en Linux Mint

Abre una terminal y ejecuta estos comandos para agregar el repositorio oficial de Microsoft e instalar VS Code:

sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] \
https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install code

✅ Paso 2: Instalar PHP y Composer (si no los tienes)

En la misma terminal, instala PHP y sus extensiones comunes:

sudo apt install php-cli php-common php-mbstring php-xml php-curl php-zip php-gd

Y luego Composer:

sudo apt install composer

✅ Paso 3: Instalar extensiones esenciales para PHP

Abre Visual Studio Code y presiona Ctrl+P, luego escribe:

ext install bmewburn.vscode-intelephense-client
ext install kokororin.vscode-phpfmt
ext install xdebug.php-debug

🔹 ¿Qué hace cada extensión?

  • PHP Intelephense: autocompletado, documentación, detección de errores.
  • phpfmt: formatea el código PHP automáticamente (como NetBeans).
  • PHP Debug: permite depurar con Xdebug.

✅ Paso 4: Configurar el formateador por defecto para PHP

Abre VS Code, presiona Ctrl+Shift+P y escribe: Preferencias: Abrir configuración (JSON).

Agrega o edita lo siguiente:

{
  "[php]": {
    "editor.defaultFormatter": "kokororin.vscode-phpfmt",
    "editor.formatOnSave": false
  }
}

¿Prefieres que se formatee al guardar? Cambia formatOnSave a true.


✅ Paso 5: Cambiar el atajo a Alt + Shift + F para formatear (como en NetBeans)

🖱 Opción 1: Desde el menú

  1. Abre VS Code.
  2. Ve a Archivo > Preferencias > Métodos abreviados de teclado.

⌨ Opción 2: Usando atajo

Presiona Ctrl + K y luego Ctrl + S.

Luego:

  1. En la barra de búsqueda escribe: format document.
  2. Ubica la acción: Editor: Format Document.
  3. Haz clic en el lápiz ✎ y selecciona “Cambiar combinación de teclas”.
  4. Presiona: Alt + Shift + F y confirma.

¡Listo! Ahora puedes formatear tu código PHP como lo hacías en NetBeans.


✅ (Opcional) Personaliza el estilo de formato con phpfmt.ini

Para controlar cómo se acomoda el código, crea un archivo phpfmt.ini en tu proyecto o en tu carpeta personal con este contenido:

passes = ["PSR2KeywordsLowerCase", "PSR2LnAfterNamespace", "PSR2CurlyOpenNextLine"]
indent_with_space = true
psr1 = true
psr2 = true

Más opciones en: phpfmt tools (GitHub).


🎯 Resultado final

  • ✅ Código PHP se formatea automáticamente con Alt+Shift+F.
  • ✅ Autocompletado inteligente y validación en tiempo real.
  • ✅ Depuración de código con Xdebug.
  • ✅ Más rápido y moderno que NetBeans.

🗨 Conclusión

Visual Studio Code no solo reemplaza a NetBeans, ¡lo supera!

Ligero, potente, extensible y totalmente configurable, VS Code puede ser tu nuevo editor favorito para proyectos PHP en Linux Mint.

¿Te gustaría una plantilla base ya configurada para clonar desde GitHub? ¡Pídela y te la preparo!


#PHP #VisualStudioCode #LinuxMint #DevTips #NetBeansToVSCode #VSCodePHP #OpenSourceTools #DesarrolloWeb #CodeClean

🎯 ¿Vas a montar un ERP con base de datos? ¡No gastes de más! 💸

Entrada fija

🔍 Si estás evaluando entre un VPS o una instancia AWS EC2, aquí va la verdad que muchos no te cuentan:


🚀 VPS Tradicional: tu mejor aliado para un ERP estable y económico

✅ Ideal para: Odoo, ERPNext, Dolibarr, Tryton
✅ Precio fijo desde $5 USD/mes
✅ Base de datos incluida (MySQL, PostgreSQL)
✅ Fácil de administrar y mantener
✅ Sin sorpresas en la factura

🧩 Perfecto para pequeñas empresas, freelancers o quien busca control total sin complicarse.


☁️ AWS EC2: poderoso pero más costoso y complejo

🔧 Paga por uso: CPU, red, almacenamiento, tráfico
🔧 Para usar base de datos recomendada, necesitas RDS (otro costo extra)
🔧 Ideal si necesitas alta escalabilidad, integración con S3, Lambda, etc.
🧠 Requiere conocimientos técnicos más avanzados

📈 Excelente para grandes empresas o arquitecturas distribuidas.


💡 ¿Qué elegir para tu ERP?

👉 Si quieres ahorrar y mantenerlo simple: VPS es el camino.
👉 Si tu ERP crecerá rápidamente y necesitas integraciones cloud: AWS puede valer la pena.


🔧 ¿Necesitas ayuda para instalar un ERP como Odoo o ERPNext en un VPS?
¡Escríbeme y te paso la guía completa paso a paso! 📩

#ERP #VPS #AWS #Odoo #ERPNext #NegociosDigitales #Tecnología #TransformaciónDigital #Empresas #Software

Guía Completa: Instalar LAMPP con PostgreSQL y CodeIgniter 4 en Ubuntu 24.04 (EC2 AWS)

Entrada fija

Esta guía te muestra cómo dejar una instancia EC2 (Ubuntu 24.04) lista para usar CodeIgniter 4 con Apache, PostgreSQL y HTTPS.


✨ 1. Requisitos Previos

  • Una instancia EC2 Ubuntu 24.04 corriendo
  • Acceso SSH a la instancia (archivo .pem)
  • Un dominio apuntando a la IP de tu instancia (para usar HTTPS)
  • Puertos 22, 80 y 443 abiertos en el grupo de seguridad

⚙️ 2. Actualizar el sistema

sudo apt update && sudo apt upgrade -y

🔧 3. Instalar Apache, PHP y extensiones necesarias

sudo apt install apache2 php php-pgsql php-intl php-xml php-mbstring php-curl php-zip php-cli unzip git -y
sudo a2enmod rewrite

📃 4. Instalar PostgreSQL y configurar base de datos

sudo apt install postgresql postgresql-contrib -y

Crear base de datos y usuario:

sudo -u postgres psql

Dentro de psql:

CREATE DATABASE facturacion;
CREATE USER ci4user WITH PASSWORD 'ci4password';
GRANT ALL PRIVILEGES ON DATABASE facturacion TO ci4user;
\c facturacion
ALTER SCHEMA public OWNER TO ci4user;
GRANT USAGE, CREATE ON SCHEMA public TO ci4user;
\q

📁 5. Instalar Composer y CodeIgniter 4

cd /var/www/html
sudo composer create-project codeigniter4/appstarter facturacion
sudo chown -R www-data:www-data facturacion
sudo chmod -R 775 facturacion/writable

🚪 6. Configurar Apache Virtual Host

Edita o crea el archivo:

sudo nano /etc/apache2/sites-available/tusitio.com.conf

Contenido:

<VirtualHost *:80>
    ServerName tusitio.com
    DocumentRoot /var/www/html/facturacion/public

    <Directory /var/www/html/facturacion/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/facturacion_error.log
    CustomLog ${APACHE_LOG_DIR}/facturacion_access.log combined
</VirtualHost>

Activar sitio:

sudo a2dissite 000-default.conf
sudo a2ensite tusitio.com.conf
sudo systemctl reload apache2

🔒 7. Instalar Certbot para HTTPS

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d tusitio.com --non-interactive --agree-tos -m admin@tusitio.com --redirect

🔢 8. Configurar CodeIgniter 4 con PostgreSQL

Edita el archivo .env dentro de /var/www/html/facturacion/:

database.default.hostname = localhost
database.default.database = facturacion
database.default.username = ci4user
database.default.password = ci4password
database.default.DBDriver = Postgre
database.default.port = 5432

Asegúrate de descomentar las líneas (quitar # al inicio)


📆 9. Ejecutar migraciones de CodeIgniter

cd /var/www/html/facturacion
sudo php spark migrate

Si da error de permisos:

sudo chown -R www-data:www-data writable
sudo chmod -R 775 writable

🎉 Resultado Final

Ya puedes acceder a tu sitio en:

https://tusitio.com

Con CodeIgniter 4 funcionando sobre PostgreSQL, Apache y HTTPS en una instancia EC2 Ubuntu 24.04.


🚀 Extras (opcional)

  • Usa php spark serve para desarrollo local
  • Configura Git para control de versiones
  • Usa .htaccess para seguridad y redirecciones

¡Listo! Tienes una pila LAPP (Linux, Apache, PostgreSQL, PHP) totalmente funcional con CodeIgniter 4.

Cómo instalar Composer en Linux Mint 21.3 (Xia)

Entrada fija

Cómo instalar Composer en Linux Mint 21.3 (Xia)

Sigue estos pasos desde la terminal para instalar Composer correctamente:

1️⃣ Instalar PHP y dependencias

sudo apt update
sudo apt install php-cli unzip curl

2️⃣ Descargar el instalador de Composer

curl -sS https://getcomposer.org/installer -o composer-setup.php

3️⃣ Verificar integridad del instalador (opcional)

HASH=$(curl -sS https://composer.github.io/installer.sig)
php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Verificado correctamente'.PHP_EOL; } else { echo 'ERROR: Archivo corrupto'.PHP_EOL; unlink('composer-setup.php'); }"

4️⃣ Instalar Composer globalmente

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

5️⃣ Verificar instalación

composer --version

🧹 Eliminar instalador (opcional)

rm composer-setup.php

¡Listo! Ya tienes Composer instalado en tu sistema.

Página 2 de 10

Creado con WordPress & Tema de Anders Norén