Apache HTTP Server

El servidor Apache HTTP , también llamado Apache, es un servidor web HTTP de código abierto para plataformas Unix-like (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual.

Este nos permite configurar un Hosting Virtual basado en IPs o en nombres, es decir, tener varios sitios web en un mismo equipo (por ejemplo: nombreweb1.com, nombreweb2.com,….) o como indicábamos, establecer distintos niveles de control de acceso a la información incluyendo el soporte a cifrado SSL utilizando protocolo seguro HTTPS.

¿Como funciona Apache HTTPS server?

Aunque llamamos a Apache un servidor web, no es un servidor físico, sino un software que se ejecuta en un servidor. Su trabajo es establecer una conexión entre un servidor y los navegadores de los visitantes del sitio web (Firefox, Google Chrome, Safari, etc.) mientras envían archivos entre ellos (estructura cliente-servidor). Apache es un software multiplataforma, por lo cual funciona tanto en servidores Unix como en Windows.

Cuando un visitante quiere cargar una página de tu sitio web, por ejemplo la página de inicio o tu página “Acerca de nosotros”, su navegador le envía una solicitud a tu servidor y Apache le devuelve una respuesta con todos los archivos solicitados (texto, imágenes, etc. ) El servidor y el cliente se comunican a través del protocolo HTTP y Apache es responsable de garantizar una comunicación fluida y segura entre las dos máquinas.

Como crear un LAMP

Infraestructura LAMP

Instalación de sistema de infraestructura de internet LAMP.

LAMP es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

  • Linux, el sistema operativo; En algunos casos también se refiere a LDAP.
  • Apache, el servidor web.
  • MySQL/MariaDB, el gestor de bases de datos.
  • Perl, PHP, o Python, los lenguajes de programación.

Apache

Para poder instalar Apache seguiremos estos pasos:

# yum install httpd

Configurar para que el servicio arranque al inicio del equipo

# chkconfig httpd on           (CentOS 6)
# systemctl enable httpd       (CentOS 7)

Iniciar el servicio de httpd

# service httpd start          (CentOS 6)
# systemctl start httpd        (CentOS 7)

MySQL (C6) o MariaDB (C7)

Instalación del servicio mysql:

# yum install mysql-server     (Centos 6)
# yum install mariadb-server   (Centos 7)

Configuración para que el servicio arranque al inicio del equipo:

# chkconfig mysqld on          (CentOS 6)
# systemctl enable mariadb     (CentOS 7)

Configuración para que el servicio arranque al inicio del equipo:

# service mysqld start         (CentOS 6)
# systemctl start mariadb      (CentOS 7)

Se Realiza una instalacion segura de MySQL:

# mysql_secure_installation
Enter current password for root (enter for none): <-- ENTER (Al tratarse de una configuracion nueva el pass esta en blanco)
Set root password? [Y/n] <-- Y
New password: <-- fill in your desired MySQL root password
Re-enter new password: <-- confirm that password
Remove anonymous users? [Y/n] <-- Y
Disallow root login remotely? [Y/n] <-- Y
Remove test database and access to it? [Y/n] <-- Y
Reload privilege tables now? [Y/n] <-- Y

Para probar la terminal de mysql, ingresaremos el siguiente comando:

# mysql -u root -p

Instalación de PHP

Modulo de PHP en apache

# yum install php

Instalación del soporte de MySQL y PHP:

# yum install -y php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-ldap

Reiniciar el servicio de Apache para que se vea reflejado:

# service httpd restart     (Centos6)
# systemctl restart httpd   (Centos7)

Cortafuegos

Iptables (Centos6)

Editar el archivo de las IPTABLES para poder visualizar la pagina

 # vi /etc/sysconfig/iptables

Agregar la siguiente linea

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEP
Sugerencia: ponerla debajo de la que abre el puerto 22

De este modo:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Por ultimo reiniciar el servicio de las IPTABLES:

# service iptables restart

Firewall (Centos7)

Agregar el servicio http

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload

Y ya hemos creado nuestro LAMP.

Ahora para poder ver PHP en nuestro servidor debemos de hacer los siguiente:

Creamos un nuevo archivo

sudo nano /var/www/html/info.php

y agregamos lo siguiente

<?php
phpinfo();
?>

guardamos y salimos y reiniciamos nuestro servidor para que se vean los cambios

sudo service httpd restart

ahora accedemos a http://12.34.56.789/info.php (la ip depende de tu equipo asi que asegura cambiarla) y nos mostrara la pagina con las caracteristicas de php