Hace unos días termine un proyecto simple en codeigniter4 pero al momento de subir a mi vps en ubuntu 20 me dio varios errores. Aquí muestro los errores que me figuraban y como lo solucioné esperando que sea de mucha ayuda para ustedes también.
Para desplegar el proyecto y configurarlo con un dominio en nginx el proyecto la dirección root debe ir a la carpeta public
server { root /var/www/html/ciproyecto/public; }
Este sería un ejemplo para usar php-fpm, las direcciones e instalación de versión varía.
server{ root /srv/www/midominio.com; index index.html index.htm index.php; server_name midominio.com www.midominio.com; location / { try_files $uri $uri/ /index.php; }
location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; } }
Mostrar Errores
Es posible que esté en modo producción por tanto a mí me empezó a mostrar errores como este:
Así que el proyecto tiene que estar en modo desarrollo y esto está por configurar en el archivo .env en la lína que pone "CI_ENVIRONMENT = development"
No obstante no me reconocía este archivo por tanto no podía cambiarlo a modo desarrollo o modo producción, no se el motivo ya que no trabajo constantemente con codeigniter4. Así que me fuí a la manera no recomendable pero más sencilla. ir directamente al archivo de producción el cual tiene la siguiente ruta:
/app/Config/Boot/production.php
y cambiar a 1 para mostrar los errores de esta forma:
ini_set('display_errors', '1');
Librerías php para: intl, mbstring y postgres
De esta forma pude visualizar los errores los cuales mostraba que me faltaban instalar las librerías intl y mbstring , Luego de instalar esas dos me salio el error pg_connect() . Uso postgres cambiar a mysql si es tu caso. Al tener un vps solo instalo lo necesario y solo había instalado php y php-fpm en sus versiones 8.1. así que toca instalar manualmente estas librerías de la siguiente forma (No olvidar primero hacer update):
RED HAT/CENTOS: sudo yum install php-intl php-mbstring
Luego ir al php.ini etc/php/8.1/fpm/php.ini y quitar el ; que está adelante de las siguientes extensiones:
extension=intl
extension=mbstring
extension=pgsql
extension=pdo_pgsql
Luego reiniciamos nginx:
UBUNTU: sudo service nginx restart
RED HAT/CENTOS: buscar comando ;)
Luego reiniciamos PHP-FPM
sudo service php8.1-fpm restart # Ajusta la versión según la que estés utilizando
Si tienes algún error de conexión a tu base de datos verifica el archivo
app/Config/Database.php
Con esto debería ser suficiente. No obstante a mí me cargaba el index pero no podía navegar en las demás rutas. Hay que asegurarnos que pase por el index.php todos los archivos. Y esto es agregando a la configuración nginx try_files con index.php como el siguiente ejemplo:
server { server_name example.com; root /var/www/html/myapp/public; location / { try_files $uri $uri/ /index.php; } # ... }
Más arriba puse todo lo necesario para este archivo de nginx. Espero te sea de utilidad, suscribete a mi canal de youtube
Condicionales en PHP: if, else, elseif, switch y ejemplos prácticos
Aprende a usar condicionales en PHP paso a paso. Descubre cómo funcionan if, else, elseif, switch, el operador ternario y ?? con ejemplos prácticos y buenas prácticas de programación.
Cómo configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20 paso a paso
Aprende a configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20. Guía completa para instalar, optimizar y desplegar tu aplicación web de forma segura y eficiente.
Inicios en PHP: Todo lo que debes saber sobre variables y sus tipos
Aprende los fundamentos de PHP desde cero. Descubre qué son las variables, cómo se declaran, sus tipos principales y ejemplos prácticos para comenzar a programar en PHP.
Bucles en PHP: while, do while, for, foreach y ejemplos prácticos
Aprende todo sobre los bucles en PHP. Descubre cómo funcionan while, do while, for y foreach con ejemplos claros, además de cómo usar break y continue.
Cómo trabajar con variables en PHP: concatenación, operaciones y ejemplos prácticos
Aprende a usar variables en PHP con ejemplos claros. Descubre cómo declararlas, concatenar cadenas de texto, realizar operaciones matemáticas y aplicar operadores en tus proyectos de programación web.
5 Gadgets Futuristas que Cambiarán la Vida en 2025
Descubre 5 gadgets futuristas que transformarán tu vida en 2025. Desde dispositivos inteligentes hasta tecnología disruptiva, conoce las novedades que marcarán tendencia.