Instalar y configurar Apache HTTP server en CentOS / Fedora/ RHEL
diciembre 15, 2009 7 comentarios
Apache HTTP es un servidor web de propósito general diseñado para lograr un balance entre flexibilidad, portabilidad y rendimiento y con una arquitectura modular la cual permite extender las funcionalidades básicas mediante la selección de un conjunto de módulos. Apache HTTP es usado para servir contenido estático y dinámico (mod_php, mod_python, mod_ruby, mod_perl), es multiplataforma (UNIX, GNU/Linux, BSD, Windows), compatible con el protocolo HTTP/1.1 y https (versión segura del protocolo http). Otras de las caracterśticas son: implementación de sitios virtuales , reescritura de url (mod_rewrite), diferentes tipos de autenticación (básica, digest, dbm, dbd, ldap), compresión de contenido web (mod_deflate, mod_gzip).
Instalar Apache HTTP
# yum -y install httpd
Iniciar el servidor web
# service httpd start
Comprobar que el servidor está funcionando
# service httpd status httpd (pid 26604) is running...
Reiniciar el servidor web
# service httpd restart
Reiniciar sin perder conexiones
# service httpd graceful
Detener el servicio
# service httpd stop
Iniciar el servicio junto con el sistema operativo
# chkconfig --level 35 httpd on
Editar el fichero de configuración
# vim /etc/httpd/conf/httpd.conf
Algunas directivas para mejorar la seguridad y el rendimiento del servidor
ServerSignature Off SeverTokens ProductOnly HostnameLookups Off <Directory /> Options -Indexes -ExecCGI -Includes FollowSymLinks # no htaccess por defecto AllowOverride None </Directory>
Creando sitios virtuales (VirtualHost)
Establecer la directiva NameVirtualHost
Si desea que su servidor responda a las peticiones por todas las interfaces de red disponibles establezca:
NameVirtualHost *:80
Para una dir IP especifica establezca:
NameVirtualHost IP:80
80 es el puerto en el cual el servidor web esta escuchando las peticiones
Crear el sitio virtual
<VirtualHost *:80>
ServerName mi.dominio.com
ServerAlias mi.dominio.es
DirectoryIndex index.html index.php
DocumentRoot /var/www/php-mvc
<Directory "/var/www/php-mvc">
AllowOverride All
</Directory>
</VirtualHost>
Nótese el uso de la directiva AllowOverride All la cual habilita el uso de .htaccess para este sitio virtual así como la posibilidad de sobreescribir los valores para un conjunto de directivas, para más información: Ir a. La directiva ServerAlias es útil si tenemos más de una url apuntandando a nuestro sitio, un ejemplo son los sitios internacionalizados. Los dominios: mi.dominio.com y mi.dominio.es son entradas que primeramente debieron ser agregadas al servidor DNS
Muy buen tutorial pero tengo un problema al momento de acceder al sitio web, he creado una pagina de prueba llamada prueba.htm la coloque en la caperta /var/www/html pero al momento de acceder desde el explorador “http://localhost/prueba.htm” me dice que no tengo permisos para acceder al servidor, que me puedes ayudar te lo agradecería muchas gracias!
Roberto, gracias por tu comentario, debes verficar que el usuario o grupo con que esta ejecutandose el apache tenga permisos de lectura sobre el fichero prueba.html, en CentOS / RHEL / Fedora el usuario y grupo del servidor apache es: apache
Si tienes habilitao el SELinux, debes verificar que el contexto del fichero sea httpd_sys_content_t, puedes ver el contexto de los ficheros o directorios usando ls -lZ fichero. También puedes mirar los logs del servidor apache para obtener más detalles sobre el error en CentOS / RHEL / Fedora se encuentran en /var/log/httpd/ y el log del sistema /var/log/messages
Muchas gracias ha sido de mucha ayuda, ya me funciono; pero ahora tengo otro problema, la pagina solo aparece en el mismo centos y en otra maquina con windows 7 en una red local, pero en la misma red local la maquina con xp no puede acceder al servidor? cualquier ayuda se los agradecerá muchas gracias!
Estas usando la IP del servidor, para acceder a la paǵina o una url, si estas usando una url entonces es probable que la maquina con xp no tenga bien configurado los DNS
Estoy usando la direccion ip del servidor, cuando hago ping de centos a xp si funciona, pero cundo hago ping de xp a centos no encuentra la ip, lo he probado deshabilitando el firewall y nada?
Puedes acceder a otro recurso de la red desde la maquina xp?