Contexto

El 4 de septiembre fue lanzado una nueva versión del framework de codeigniter 4.4.1, y con ello algunos cambios en las rutas y uso de dicho framework.

En la versión actual ya no es tan fácil poder usar la url directa en el nevegador, es decir que se descargue el framework y que se pueda acceder al desarrollo del proyecto que se esté trabajando directamente desde la url, sino que se debe de lanzar con spark.

Éste dependerá de cada uno, pero cuando se trabaja en modo de desarrollo, se requieren realizar los procesos rápidos, y en lo personal, prefiero configurar el entorno de manera directa, por lo que se realizan los siguientes cambios para poder utilizarlo desde la url directamente.

Adicional a éste configuración, en los proyectos en entorno de desarrollo, en mi caso utilizo XAMPP, de tal modo que evito instalar PHP directamente en mi equipo.

Crear un proyecto con composer

Crear un proyecto o descargar el framework desde github

composer create-project codeigniter4/appstarter blog

Modificar app/Config/App.php

Abrir el archivo y buscar la línea 61 que dice $uriProtocol y cambiarlo a PATH_INFO:

[...]

public string $uriProtocol = 'PATH_INFO';

[...]

Una vez editado el archivo, guardar y salir.

Archivo .env

Modificar el archivo .env añadiendo la url completa del proyecto:

[...]

app.baseURL = 'http://localhost/blog/'

[...]

Guardar el archivo

Archivo index.php

Copiar el archivo index.php de la ruta del proyecto vendor/codeigniter4/framework/public/ y pegarlo en la raíz del proyecto:

Abrir el archivo y buscar la línea que dice:

[...]

require FCPATH . '../app/Config/Paths.php';

[...]

Y reemplazarlo por:

[...]

require FCPATH . 'app/Config/Paths.php';

[...]

Añadir archivo .htaccess

El siguiente archivo añade la funcionalidad para acceder a las urls, proteger algunas rutas y archivos de configuración como el env:

# Disable directory browsing
Options All -Indexes

# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------

# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
	Options +FollowSymlinks
	RewriteEngine On

	# If you installed CodeIgniter in a subfolder, you will need to
	# change the following line to match the subfolder you need.
	# http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
	# RewriteBase /

	# Redirect Trailing Slashes...
	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteRule ^(.*)/$ /$1 [L,R=301]

	# Rewrite "www.example.com -> example.com"
	RewriteCond %{HTTPS} !=on
	RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
	RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

	# Checks to see if the user is attempting to access a valid file,
    # such as an image or css document, if this isn't true it sends the
    # request to the front controller, index.php
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ index.php/$1 [L]

	# Ensure Authorization header is passed along
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 index.php
</IfModule>

# Disable server signature start
    ServerSignature Off
# Disable server signature end

<Files .env>
order allow,deny
Deny from all
</Files>

<Files spark>
order allow,deny
Deny from all
</Files>

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
	<IfModule mod_headers.c>
	Header set Access-Control-Allow-Origin "*"
	</IfModule>
</FilesMatch>

Permisos al proyecto

Finalmente se requiere asignar los permisos necesarios para el correcto funcionamiento del proyecto los cuales son los siguientes:

sudo chown -R daemon:tuUsuario directorio_proyecto
sudo chmod 775 directorio_proyecto -R

Abrir proyecto

Finalmente solo queda abrir la url que se estableció como ruta del proyecto en el navegador, y se podrá acceder a él sin problemas.

Y eso sería todo, y recuerden que ésto es sólo para entorno de desarrollo.

Gracias por visitar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *