Herramientas Informaticas

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

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.

Anterior

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

Siguiente

🎯 Cómo lanzar una instancia EC2 con Ubuntu 24.04 lista para montar tu página web 🚀

2 comentarios

  1. ✅ 3. Vuelve a aplicar los permisos (dentro de esa base de datos)
    sql
    Copiar
    Editar
    — Reasignar el esquema si es necesario
    ALTER SCHEMA public OWNER TO ci4user;

    — Permitir que cree objetos (tablas)
    GRANT USAGE ON SCHEMA public TO ci4user;
    GRANT CREATE ON SCHEMA public TO ci4user;
    ⚠️ Estos comandos deben ejecutarse dentro de la base de datos a la que se conecta CodeIgniter (ej. facturacion).

    ✅ 4. Verifica permisos manualmente (opcional)
    Aún dentro de psql, prueba esto para ver si ci4user puede crear una tabla:

    sql
    Copiar
    Editar
    SET ROLE ci4user;
    CREATE TABLE test_perm (id SERIAL PRIMARY KEY);
    DROP TABLE test_perm;
    RESET ROLE;
    Si eso falla, el usuario no tiene permisos correctamente aplicados.

  2. ✅ 2. Inicia sesión en PostgreSQL en esa base de datos
    bash
    Copiar
    Editar
    sudo -u postgres psql
    Ahora conéctate a la base de datos correcta:

    sql
    Copiar
    Editar
    \c facturacion
    Verás algo como:

    sql
    Copiar
    Editar
    You are now connected to database “facturacion” as user “postgres”.
    ✅ 3. Vuelve a aplicar los permisos (dentro de esa base de datos)
    sql
    Copiar
    Editar
    — Reasignar el esquema si es necesario
    ALTER SCHEMA public OWNER TO ci4user;

    — Permitir que cree objetos (tablas)
    GRANT USAGE ON SCHEMA public TO ci4user;
    GRANT CREATE ON SCHEMA public TO ci4user;
    ⚠️ Estos comandos deben ejecutarse dentro de la base de datos a la que se conecta CodeIgniter (ej. facturacion).

Deja un comentario

Creado con WordPress & Tema de Anders Norén

Discover more from Cesar Systems

Subscribe now to keep reading and get access to the full archive.

Continue reading