CodeIgniter - maquina virtual, config & .htacess

SicKneSs

Buenas,

tengo un pequeño proyecto hecho en CodeIgniter, en local me trabaja perfectamente (Wamp), pero a la hora de subirlo al servidor me está dando problemas !

aqui en el curro me han asignado una máquina virtual con un linux(Centos), apache y mysql.

la direccion del 'host' es una IP interna estilo 192.168.2.127.

he cambiado correctamente los datos de la base de datos

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'xxxxx';
$db['default']['database'] = 'dbname';

y el config.php

$config['base_url']	= 'http://192.168.2.127/guaguas/';
$config['index_page'] = '';

en local trabajo bajo un subdirecterio llamado por ejemplo 'guaguas' y he usado el wiki oficial de ellos para quitar mi index.php, lo cual he puesto un .htaccess en el directorio raiz de CI con el siguiente contenido, el cuál no he hecho ninguna modificación y lo he subido tal cual.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /guaguas/

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /guaguas/index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /guaguas/index.php?/$1 [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 index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /guaguas/index.php?/$1 [L]
</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.
    # Submitted by: ElliotHaughin

ErrorDocument 404 /guaguas/index.php
</IfModule>

con dichas configuraciones me muestra el index, pero no me funciona ninguna URL, lanzándome el clásico error de

'Not Found
The requested URL /guaguas/admin was not found on this server.'

en el httpd.conf está el mo_rewrite activado.

Alguien puede decirme qué está ocurriedno??? gracias !!!

saludos.

avictor

prueba a acceder a guaguas/index.php/admin y a ver qué te muestra.

1 respuesta
SicKneSs

con la configuracion de que puesto en #1, guaguas/index.php/admin me muestra el index.php pero me sige sin funcionar los enlaces. de todas formas #2, si quisiera meter el index.php dentro de las URL's tendría que modificar el config & .htaccess.

PiradoIV

#1 antes de probar cualquier otra cosa, prueba a ponerle al .htaccess esto:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /guaguas/
# etc..

Ninja-edit:

Vuelve a dejar todos los RewriteRule como estaban:

RewriteRule ^(.*)$ /index.php?/$1 [L]

y esto:

<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.
    # Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

Porque ya le estabas especificando la ruta en RewriteBase y no lo va a poder encontrar así.

1 respuesta
SicKneSs

#4, solamente ese código ? si es asi, m muestra el index sin estilos ni .js, pero sigo teniendo los mismos errores en los enlaces:

Not Found
The requested URL /index/detalles/TE2 was not found on this server.

he preguntado tambien el foro de CI, si hay novedades las iré poniendo por aqui.

#4 edit:

#4 te refieres a dejar el .haccess asi?

Options +FollowSymLinks
RewriteEngine On
RewriteBase /guaguas/
RewriteRule ^(.*)$ /index.php?/$1 [L]
<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.
    # Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

me sigue ocurriendo lo mismo !

Lo que me han contado por ahora en el foro oficial de CI.

gracias! saludos.

1 respuesta
Tunnecino

Lo de los estilos, javascript y tal eso creo que no es tanto error de CI como de tu web. Yo siempre que he usado url amigables (no en CI, pero supongo que será igual) tengo que especificar una ruta absoluta a los estilos, del palo /home... o miweb.com/..., por que si no, te buscará el estilos.css en guaguas/admin/estilo.css.

PiradoIV

#5 me refiero a dejarlo así:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /guaguas/

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [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 index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
</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.
    # Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

Si te muestra la página sin estilos ni imágenes, seguramente las estés llamando mal desde la vista, te pongo un ejemplo, prueba a poner en el controlador esto:

$this->load->helper('url');
$data['base_url'] = base_url();
$this->parse->view('index/detalles', $data);

Y en la vista:

<img src="{base_url}img/magdalenas.png" alt="Magdalenas!" />

Algo así debería funcionarte bien.

1 respuesta
SicKneSs

#7 los estilos y demás me funcionan bien, pero siguen los link sin funcionar, debe ser entonces algo sobre la configuración del apache o el server no ? yo juraría que en el http.conf estaba el mod_rewrite activado, y en el foro de CI me dijeron que hiciera un phpinfo(); para ver que el modulo mod_rewrite está cargado y efectivamente es asi.

algo curioso también, es que en la página principal de la aplicación muestro la flota disponible actual (que son 243 unidades) y sin embargo sólo me muestra 3 xD.... y en la base de datos están las 243. :S

esto es muy raro !!!!!!

1 respuesta
SicKneSs

el problema podrúa ser la version del php/apache que me instalaron en el server?

he hecho un phpinfo() y la version PHP Version 5.1.6.

edit: en principio no, en la guia oficial muestra que cómo mínimo se deber tener esa versión.

Server Requirements
PHP version 5.1.6 or newer.
A Database is required for most web application programming. Current supported databases are MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC.

PiradoIV

#8 ¿Pero entonces te funciona http://192.168.2.127/guaguas/index.php/index/detalles/TE2 pero no http://192.168.2.127/guaguas/index/detalles/TE2 ?

Usuarios habituales

  • PiradoIV
  • SicKneSs
  • Tunnecino
  • avictor