Archivos para ‘Apache’

18 enero 2010

Quitar index.php de CodeIgniter

por auraham

Para poder quitar ‘index.php’ de nuestra URL debemos realizar esto

  1. Modificar el archivo .htaccess
  2. Modificar variables en conf.php
  3. Usar el módulo mod_write de Apache
  4. Modificar httpd.conf
  5. Reiniciar

De aquí en adelante nuestra instalación de CodeIgniter se llamará aplicacion_ci y se encuentra en

/usr/local/apache2/htdocs/aplicacion_ci

Modificar el archivo .htaccess
Es necesario modificar este archivo dentro de la carpeta de nuestra aplicación. Se encuentra en

/usr/local/apache2/htdocs/contest/.htaccess

Si no lo puedes ver, presiona Ctrl+H. Una vez abierto, encontrarás algo como

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Reemplaza todo eso por lo siguiente

<IfModule mod_rewrite.c>
    RewriteEngine On

    ##NOMBRE DE LA APLICACION
    #Cambia esta linea por el nombre de tu aplicacion
    #Es decir, si nuestra aplicacion esta en
    #		/usr/local/apache2/htdocs/aplicacion_ci
    #El nombre de la aplicacion sera
    #		/aplicacion_ci/
    RewriteBase /aplicacion_ci

    ##PROTECCION DE SYSTEM
    #Evita que alguna persona pueda entrar directamente al directorio system
    #Si tu carpeta system tiene otro nombre, debes colocarlo aqui tambien
    #Puedes usar la misma sintaxis para ocultar otros directorios
    #Ademas, permite usar un controlador llamado System.php, lo cual, antes no era posible

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    ##VERIFICAR EXISTENCIA DE ARCHIVO
    #Si la URL no comienza con 'system', el servidor web verificara si existe algo que se relacione con
    #la URL, como una imagen, script o directorio
    #Si no existe, manda la peticion a index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    #Si no tenemos el modulo mod_rewrite instalado, todos los 404
    # pueden ser enviados a index.php, y todo trabaja de manera normal
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Modificar variables en conf.php

$config['index_page'] = ”;
$config['uri_protocol'] = ‘QUERY_STRING’;

Usar el módulo mod_write de Apache

Para instalar Apache con mod_write, en caso de que no lo tengas habilitado, visita este post.

Modificar httpd.conf
Hay que asegurarnos de que Apache nos permita usar .htaccess

Es necesario modificar estas líneas

<Directory "/usr/local/apache2/htdocs">
...
Options FollowSymLinks
AllowOverride FileInfo
...
</Directory>

Si te produce algún error, intenta con esto

<Directory "/usr/local/apache2/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>

Reiniciar
Por último, reinicia apache

apachectl restart

Fuentes

CodeIgniter & ElliotHaughin

18 enero 2010

Instalar Apache 2.2.* con mayor soporte

por auraham

Como es bien sabido, hay varias maneras de instalar Apache, pero mi preferida es compilar directamente en lugar de bajar algún paquete.

Al igual que muchas aplicaciones, la compilación e instalación se basa en un script llamado configure, el cual, nos permite personalizar muchas cosas, como quitar o agregar módulos o evitar los mensajes de salida, entre otras cosas.

Apache es un programa modular, de modo que podemos seleccionar las características que queramos. Dichas características o módulos se pueden incluir de manera:

  • Estática: se compilan junto a httpd
  • Dinámica: se compilan por separado, pero se pueden cargar a httpd como módulos DSO (Dynamic Shared Object)

Para este ejemplo, vamos a compilar habilitando dos características que por defecto están deshabilitadas

  • mod_so: Este módulo brinda soporte para DSO. No se puede compilar por separado, de manera que se compila estáticamente junto a httpd
  • mod_rewrite: Este módulo provee un sistema para reescribir URL ‘al vuelo’. Es muy útil para editar los archivos .htaccess

Descargar Apache
Descarga en tu escritorio httpd-2.2.14.tar.gz
Descomprimir
Copia y descomprime el archivo en /usr/local/ como root. Después crea un enlace simbólico.

sudo -i
cp /home/aura/Desktop/httpd-2.2.14.tar.gz /usr/local
cd /urs/local
gzip -d httpd-2.2.14.tar.gz
tar -xvf httpd-2.2.14.tar
ln -s /usr/local/httpd-2.2.14 apache2

Compilación
Entra al directorio principal y ejecuta el script configure

cd apache2
./configure –prefix=/usr/local/apache2 –enable-mods-shared=’rewrite’

La opción prefix indica dónde instalar los archivos. La opción –enable-mods-shared indica una lista de módulos que serán compilados como DSO. De manera automática se compila estáticamente mod_so.

Ejecutamos

make
make install


Modificar httpd.conf

Modificamos, como root, el archivo de configuración

cd conf
cp httpd.conf httpd.conf.bak
sudo nano httpd.conf

Y editamos las líneas

Listen 80
ServerName localhost:80

Para que nuestro servidor sea localhost usando el puerto 80.

Agregar el directorio a nuestro $PATH
Para localizar más rápido el comando apachectl, agregamos la ruta a nuestro $PATH de root. Editamos el archivo .bashrc

sudo -i
nano $HOME/.bashrc

Y al final agregamos esta línea

export PATH=$PATH:/usr/local/apache2/bin

Ejecutar Apache
Reinicia la consola y escribe

apachectl start

Y en el navegador escribe

localhost

Deberá aparecer el mensaje

It works!

Detener Apache

apachectl stop

Fuentes

Instalación

./configure

mod_rewrite

DSO

26 agosto 2009

Problema con Mowes & Apache

por auraham

El problema es que no inicia Apache junto con Mowes. Se recuelve tan facilmente que no sé por qué no se me ocurrió antes…

Modifica la linea

Listen 80

Por

Listen 8080

Etiquetas: , ,
Seguir

Get every new post delivered to your Inbox.