Tutoriales de Apache para principiantes

¿Qué es Apache?

Apache es una pieza notable de software de aplicación. Es la aplicación de servidor web más utilizada en el mundo con más del 50% de participación en el mercado de servidores web comerciales. Apache es la aplicación de servidor web más utilizada en sistemas operativos tipo Unix, pero se puede utilizar en casi todas las plataformas, como Windows, OS X, OS/2, etc. La palabra Apache ha sido tomada del nombre de la tribu nativa americana 'Apache', famosa por sus habilidades en la guerra y la creación de estrategias.

Es una aplicación de servidor web modular basada en procesos que crea un nuevo hilo con cada simulación.neoconexión con nosotros. Admite una serie de funciones; muchos de ellos se compilan como módulos separados y amplían su funcionalidad principal, y pueden proporcionar de todo, desde compatibilidad con el lenguaje de programación del lado del servidor hasta el mecanismo de autenticación. El alojamiento virtual es una de esas características que permite que un único servidor web Apache preste servicios a varios sitios web diferentes.

APACHE

Cómo instalar Apache

Existen numerosas formas de instalar el paquete o la aplicación. Se alistan a continuación:

  1. Una de las características de este abierto. La aplicación web fuente es que cualquiera puede crear un instalador según su propio entorno. Esto ha permitido a varios proveedores como Debian, Red Hat, FreeBSD, Suse, etc. personalizar la ubicación del archivo y la configuración de Apache teniendo en cuenta otras aplicaciones instaladas y el sistema operativo base.
  2. Además de instalarlo desde un instalador de proveedor, siempre existe la opción de compilarlo e instalarlo desde el código fuente. La instalación de Apache desde el archivo fuente es una plataforma independiente y funciona para todos los sistemas operativos.

El servidor web Apache es una aplicación modular donde el administrador puede elegir la funcionalidad requerida e instalar diferentes módulos según sus necesidades.

Todos los módulos se pueden compilar como Objetos compartidos dinámicos (DSO es un archivo objeto que pueden compartir varias aplicaciones mientras se ejecutan) que existe por separado del archivo principal de Apache. El enfoque DSO es altamente recomendado, hace que la tarea de agregar/eliminar/actualizar módulos de la configuración del servidor sea muy simple.

Instalar Apache: Plataforma Linux

En sistemas basados ​​en Red Hat o rpm

Si está utilizando una distribución de Linux basada en rpm (RedHat Package Manager es una utilidad para instalar aplicaciones en sistemas Linux), es decir, Red Hat, Fedora, CentOs, Suse, puede instalar esta aplicación mediante el Administrador de paquetes específico del proveedor o creando directamente el archivo rpm. desde el archivo tar de origen disponible.

Puede instalar Apache a través del Administrador de paquetes predeterminado disponible en todas las distribuciones basadas en Red Hat como CentOs, Red Hat y Fedora.

[root@amsterdam ~]# yum install httpd

El tarball fuente de Apache se puede convertir en un archivo rpm usando el siguiente comandowing mando.

[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2

Es obligatorio tener el paquete -devel instalado en su servidor para crear un archivo .rpm desde el código fuente.

Una vez que convierta el archivo fuente en un instalador rpm, puede usar el siguientewing comando para instalar Apache.

[root@amsterdam ~]# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm

Después de la instalación, el servidor no se inicia automáticamente; para iniciar el servicio, debe utilizar cualquiera de los siguienteswing comando en Fedora, CentOs o Red Hat.

[root@amsterdam ~]# /usr/sbin/apachectl start

[root@amsterdam ~]# service httpd start

[root@amsterdam ~]# /etc/init.d/httpd start

Instalar Apache desde la fuente

La instalación de Apache desde el código fuente requiere que el paquete –devel esté instalado en su servidor. .Puedes encontrar la última versión disponible de Apache, puedes descargarla. aquí . Una vez que descargue el archivo fuente, muévalo a la carpeta /usr/local/src.

[root@amserversterdam ~] cd /usr/local/src

[root@amserversterdam ~] gzip -d httpd-2.2.26.tar.gz

[root@amserversterdam ~] tar xvf httpd-2.2.26.tar

[root@amserversterdam ~] httpd-2.2.26

Para ver todas las opciones de configuración disponibles para Apache, puede usar la opción ./configure –help. La opción de configuración más común es –prefix={nombre del directorio de instalación}.

[root@amserversterdam ~]./configure --help

[root@amserversterdam ~]./configure –prefix=/usr/local/apache –enable-so

[root@amserversterdam ~] make

[root@amserversterdam ~] make install

El ejemplo anterior muestra la compilación de Apache dentro del directorio /usr/local/apache con capacidad DSO. La opción –enable-so puede cargar los módulos necesarios en Apache en tiempo de ejecución a través del mecanismo DSO en lugar de requerir una recompilación.

Una vez que se completa la instalación, puede navegar por la página predeterminada del servidor web con su navegador favorito. Si el firewall está habilitado en su servidor, debe hacer una excepción para el puerto 80 en el firewall de su sistema operativo. Puedes usar el siguientewing comando para abrir el puerto 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

servicio iptables guardar

Puedes ver el valor predeterminado Pantalla de bienvenida de Apache2 navegando por la dirección IP de su servidor.

Instalar Apache desde la fuente

¿Qué es el servidor virtual?

Un servidor web Apache puede alojar varios sitios web en el MISMO servidor. No necesita una máquina servidor ni software Apache separados para cada sitio web. Esto se puede lograr utilizando el concepto de Anfitrión virtual or VHost.

Cualquier dominio que desee alojar en su servidor web tendrá una entrada separada en el archivo de configuración de Apache.

Anfitrión virtual

Tipos de servidor virtual Apache

  1. Host virtual basado en nombres
  2. Host virtual basado en dirección o IP y.

Host virtual basado en nombre

El alojamiento virtual basado en nombres se utiliza para alojar varios sitios virtuales en una única dirección IP.

Host virtual basado en nombre

Para configurar el alojamiento virtual basado en nombres, debe configurar la dirección IP en la que recibirá las solicitudes de Apache para todos los sitios web deseados. Puede hacer esto mediante la directiva NameVirutalHost dentro de la configuración de Apache, es decir. archivo httpd.conf/apache2.conf.

Ejemplo de host virtual Apache:

NameVirtualHost *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

Puede agregar tantos hosts virtuales según sus necesidades. Puedes consultar tus archivos de configuración web con:

[root@amsterdam ~]#httpd –t
Syntax OK

Si el archivo de configuración tiene alguna sintaxis incorrecta, arrojará un error

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

Host virtual basado en IP

Para configurar un alojamiento virtual basado en IP, necesita más de una dirección IP configurada en su servidor. Entonces, la cantidad de vhost apache dependerá de la cantidad de direcciones IP configuradas en su servidor. Si su servidor tiene 10 direcciones IP, puede crear 10 hosts virtuales basados ​​en IP.

Host virtual basado en IP

En el diagrama anterior, a dos sitios web, ejemplo1.com y ejemplo2.com, se les asignaron direcciones IP diferentes y utilizan alojamiento virtual basado en IP.

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

¿Qué necesita Apache para ejecutar un archivo PHP?

Ejecutar archivos PHP en Apache necesita mod_php habilitado en su servidor. Permite a Apache interpretar archivos .Php. Tiene controladores PHP que interpretan el código PHP en Apache y envían HTML a su servidor web.

Si mod_php está habilitado en su servidor, tendrá un archivo llamado php.conf en el directorio /etc/httpd/conf.d/. También puedes consultarlo con:

httpd -M | grep "php5_module"

La salida será similar a:

Lo que Apache necesita para ejecutar un archivo PHP

Manejadores de php en Apache

  • mod_php
  • CGI
  • FastCGI
  • PHP

mod_phpes el controlador PHP más antiguo, hace que PHP forme parte de Apache y no llama a ningún proceso PHP externo. Este módulo se instala de forma predeterminada en cada repositorio de distribución de Linux, por lo que habilitar/deshabilitar este módulo es muy fácil.

Si está utilizando FastCGI Como controlador de PHP, puede configurar varias versiones de PHP para que las utilicen diferentes cuentas en su servidor.

FastCGI es decir mod_fastcgi es una extensión de mod_fcgid, mientras que mod_fcgid es una alternativa de alto rendimiento de CGI, es decir, mod_cgi. Inicia una cantidad suficiente de instancias de CGI para manejar solicitudes web simultáneas. También utiliza suexec para admitir diferentes usuarios con sus propias instancias de PHP y mejora la seguridad web.

La ejecución de archivos Ruby en Apache necesita que mod_ruby esté habilitado. Apache también puede manejar archivos Ruby a través de FastCGI. Es posible utilizar varias versiones de Ruby con la ayuda de mod_fcgid, es decir, FastCGI.

También puede instalar Apache Passenger y configurar Apache para usarlo para servir páginas Ruby.

(Phusion Pasajero también conocido como “pasajero"es un módulo de servidor web gratuito diseñado para integrarse con Apache y Nginx)

Pasos para instalar mod_ruby en su servidor –

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/                    

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

Cómo ejecutar Ruby con Apache

Tenemos que agregar el módulo mod_ruby a la configuración de Apache, es decir, /etc/httpd/conf.d/ruby.conf y agregar lo siguientewing la línea.

LoadModule módulos ruby_module/mod_ruby.so

Si desea habilitar o deshabilitar estos módulos, debe editar el archivo de configuración de Apache y comentar o descomentar estos módulos, si el servidor web ya está compilado con estos módulos.

Ejecute Ruby con Apache

Cómo proteger el servidor web Apache

Proteger su servidor web es muy importante, significa allowing otros para ver solo la información deseada y proteger sus datos y restringir el acceso.

Estas son cosas comunes que mejoran la seguridad de sus servidores web Apache.

1) Ocultar la versión de Apache y la información del sistema operativo:

Apache muestra su versión y el nombre del sistema operativo en errores como se muestra en la siguiente captura de pantalla.

Ocultar la versión de Apache y la información del sistema operativo

Un pirata informático puede utilizar esta información para lanzar un ataque utilizando las vulnerabilidades disponibles públicamente en la versión particular del servidor o sistema operativo.

Para evitar que el servidor web Apache muestre esta información, debemos modificar

Opción “firma del servidor” disponible en el archivo de configuración de Apache. De forma predeterminada, está "activado", debemos desactivarlo.

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

También hemos configurado "ServerTokens Prod" que le indica al servidor web que devuelva solo Apache y suprima la versión principal y secundaria del sistema operativo.

Después de modificar el archivo de configuración, debe reiniciar/recargar su servidor web Apache para que sea efectivo.

service httpd restart

Ocultar la versión de Apache y la información del sistema operativo

2) Deshabilitar el listado de directorios

Si el directorio raíz de su documento no tiene un archivo de índice, de forma predeterminada su servidor web Apache mostrará todo el contenido del directorio raíz del documento.

Deshabilitar el listado de directorios

Esta característica se puede desactivar para un directorio específico a través de la "directiva de opciones" disponible en el archivo de configuración de Apache.

<Directory /var/www/html>

    Options -Indexes

</Directory>

Deshabilitar el listado de directorios

3) Deshabilitar módulos innecesarios

Es una buena práctica desactivar todos los módulos innecesarios que no estén en uso. Puede ver la lista de módulos habilitados disponibles en su archivo de configuración de Apache:

[root@amsterdam ~]#httpd –M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

Muchos de los módulos enumerados se pueden desactivar como mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, ya que apenas son utilizados por ningún servidor web de producción.

vi /etc/httpd/conf/httpd.conf

#LoadModule auth_digest_module modules/mod_auth_digest.so

Una vez que hayas comentado el módulo, guarda el archivo.

Reinicie los servicios de Apache con followwing mando.

/etc/init.d/httpd restart

4) Restringir el acceso a archivos fuera del directorio raíz web

Si desea asegurarse de que no se pueda acceder a los archivos que están fuera del directorio raíz web, debe asegurarse de que el directorio esté restringido con "Permitir" y "Denegar opción" en el archivo de configuración de su servidor web.

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

Una vez que restrinja el acceso fuera del directorio raíz web, no podrá acceder a ningún archivo ubicado en ninguna otra carpeta de su servidor web; obtendrá el código de retorno 404.

Restringir el acceso a archivos fuera del directorio raíz web

5) Usar mod_evasive para refutar el ataque DoS

Si desea proteger su servidor web contra Dos (es decir, denegación de servicio), debe habilitar el módulo mod_evasive. Es un módulo de terceros que detecta el ataque Dos y evita que el ataque cause tanto daño como si se dejara seguir su curso. Se puede descargar aquí.

Descargue el archivo anterior

6) Uso de mod_security para mejorar la seguridad de Apache

Este módulo funciona como firewall para Apache y le permite monitorear el tráfico en tiempo real. También evita que el servidor web sufra ataques de fuerza bruta. El módulo mod_security podría instalarse con el administrador de paquetes predeterminado de su distribución.

Usando mod_security para mejorar la seguridad de Apache

7) Limitar el tamaño de la solicitud

Apache no tiene ninguna restricción en el tamaño total de la solicitud http que pueda provocar un ataque DoS. Puede limitar el tamaño de la solicitud de una directiva de Apache "LimitRequestBody" con la etiqueta del directorio. El valor se puede establecer entre 0 y 2 GB (es decir, 2147483647 bytes) según sus necesidades.

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

Formato de registro de Apache

Los registros de Apache proporcionan información detallada que ayuda a detectar problemas comunes con el servidor.

Para crear registros de acceso, mod_log_configmodule debe estar habilitado.

Tres directivas disponibles en el archivo de configuración de Apache, es decir.

  • TransferLog: Creación de un archivo de registro.
  • LogFormat: especificación de un formato personalizado.
  • CustomLog: creación y formato de un archivo de registro.

La directiva TransferLog está disponible en el archivo de configuración de Apache y rota los archivos de registro del host virtual según los parámetros establecidos.

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog/usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

Dos tipos de formato de registro de Apache

  • Formato de registro común
  • Formato de registro combinado.

Puede habilitarlos editando el archivo de configuración de Apache, es decir, el archivo apache2.conf (Debian/ubuntu) o httpd.conf (sistemas basados ​​en rpm).

Formato de registro común

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

Registro común generado por Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

Formato de registro combinado

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

Aquí,

  • %h es el host remoto
  • %l es la identidad del usuario determinada por identd
  • %u es el nombre de usuario determinado por la autenticación HTTP
  • %t es la hora a la que el servidor terminó de procesar la solicitud.
  • %r es la línea de solicitud del cliente. (“OBTENER/HTTP/1.0”)
  • %>s es el código de estado enviado desde el servidor al cliente (500, 404, etc.)
  • %b es el tamaño de la respuesta al cliente (en bytes)
  • El referente es la página que enlaza a esta URL.
  • User-agent es la cadena de identificación del navegador.

Registro combinado generado por Apache:

199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

El registro personalizado crea un archivo de registro separado para cada host virtual en su servidor. Debe especificarse en la sección de host virtual del archivo de configuración.

Puede ver la configuración del host virtual mencionada a continuación, el registro generado será personalizado para ese host virtual y el formato se combinará.

Registro combinado generado por Apache

Configure su primer servidor web de producción

1. Para tener un servidor web de producción en ejecución, necesita un servidor dedicado nodo (instancia física/virtual o en la nube) ejecutando Linux/Unix, Windows, MacOS etc.

2. El Servidor Web debe tener un conexión de red directa y Dirección IP estática configurado en él.

3. Necesita tener todos los módulos requerido para ejecutar páginas web. Si un servidor web procesa páginas PHP, debe tener habilitado el módulo PHP.

Configurar el servidor web de producción

  1. También necesita tener un buen Antivirus Aplicación configurada y en ejecución para proteger el servidor web contra ataques de malware o virus. También necesitas un mecanismo para actualización la aplicación antivirus/antimalware configurada de forma regular sin ninguna intervención manual para obtener el máximo beneficio de ellas.
  2. Si tiene cientos de dominios para alojar en su servidor web, debe implementar limitaciones en la cuota del sistema de archivos para cada dominio, cantidad de bases de datos que cada dominio puede crear, cantidad de email cuentas por dominio, etc.
  3. Si su servidor web ha sido configurado para servicios de alojamiento compartido, los usuarios de su servidor web deben estar restringidos. Un usuario de alojamiento compartido debe tener el mínimo privilegio de usuario para no dañar archivos importantes ni dañar todo el servidor. Apache no proporciona dicha funcionalidad y necesita diferentes aplicaciones de terceros y personalización del sistema operativo para lograrlo.
  4. Si está agregando un nuevo dominio en su servidor web, es necesario editar cientos de archivos de configuración para habilitar todas las funciones para el dominio agregado.
  5. Si uno de los dominios alojados requiere configuración PHP diferente que el resto de los dominios, implementar esto en el servidor web central Apache es muy sencillo.plex y necesita personalización de su servidor web en gran medida.
  6. Un servidor web de producción necesita un cortafuegos para bloquear el tráfico no deseado que podría causar una gran carga en su servidor. Implementar IPTABLE Las reglas con línea de comando son muy com.plex. Se necesita experiencia en el entorno central de Linux/Unix para escribir reglas de firewall efectivas para bloquear el tráfico no deseado. IPTABLE se basa en el módulo netfilter; Es un firewall a nivel de sistema operativo que permite a un administrador crear reglas para el tráfico entrante/saliente en el servidor.
  7. Un servidor web de producción requiere varias aplicaciones diferentes como Correo electrónico, FTP para cargar archivos, Sistema de nombres de dominio para dominios estacionados. Administrar todas estas aplicaciones en un sistema central Linux/Unix requiere experiencia en las tecnologías respectivas.

Entonces, se puede decir que administrar un servidor web para múltiples dominios es muy complicado.plex tarea y requiere editar cientos de archivos de configuración, personalizando cada aplicación para lograr el resultado deseado. Solucionar problemas de configuración errónea será muy difícil para los principiantes.

La solución usando Cpanel o software similar

Cpanel proporciona una forma gráfica de administrar su servidor web. Su objetivo es proporcionar servicios de alojamiento masivo que sean fáciles de usar y configurar. cPanel ha reducido las barreras técnicas de entrada al hosting y la gestión de servidores web. hace complex tarea más fácil, proporciona muchas interfaces web útiles y fáciles de usar que realizan tareas comunes de administración del sistema necesarias para operar un servidor web.

La solución usando Cpanel o software similar

cPanel compila su propia versión de software.

Si tiene que recompilar su servidor web, es decir, Apache en una plataforma Linux normal, debe seleccionar/buscar manualmente el módulo requerido. cPanel proporciona la funcionalidad Easyapache, que es un método de compilación de servidor web basado en scripts.

La solución usando Cpanel o software similar

No sólo le proporciona servicios web sino también Mail, DNS, FTP y muchos más servicios necesarios para su aplicación web.

Una tarea que requiere experiencia en alojamiento central basado en Linux/Unix, como instalar SSL, recompilar Apache con diferentes módulos PHP, actualizar la seguridad web, configurar reglas IPTABLE efectivas, agregar usuarios ftp, crear mail cuentas para cada dominio, escanear la raíz de sus documentos con antivirus y crear bases de datos son fáciles de completar con cPanel.

Proporciona una gran cantidad de scripts que reparan, instalan y solucionan problemas de tareas administrativas comunes.

Proporciona una funcionalidad de copia de seguridad y restauración, eliminando la necesidad de copiar archivos manualmente al almacenamiento de copia de seguridad. Si está haciendo una copia de seguridad de su dominio, cPanel creará un archivo tar que contendrá la carpeta raíz del documento, email cuentas y mails, cuentas ftp, bases de datos, registros DNS y otras aplicaciones.

También proporciona una documentación sólida y tiene una gran comunidad de usuarios donde puede discutir y obtener soluciones a sus problemas.

Entonces, uno puede decir que cPanel es la mejor aplicación para administrar su servidor web con las funciones requeridas. Le proporciona una interfaz fácil de usar para administrar su dominio y un mecanismo para evitar comunicaciones.plexidad de gestionar el servidor web central.

Hay muchos productos que compiten con cPanel como Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel, etc.